aboutsummaryrefslogtreecommitdiffstats
path: root/libtests
diff options
context:
space:
mode:
Diffstat (limited to 'libtests')
-rw-r--r--libtests/buffer.cc59
-rw-r--r--libtests/logger_c.c5
-rw-r--r--libtests/qtest/flate.test10
-rw-r--r--libtests/qtest/logger/c-exp-savebin799 -> 774 bytes
4 files changed, 68 insertions, 6 deletions
diff --git a/libtests/buffer.cc b/libtests/buffer.cc
index e62a37ca..1b87bb7d 100644
--- a/libtests/buffer.cc
+++ b/libtests/buffer.cc
@@ -35,6 +35,21 @@ main()
assert(bc2p != bc1p);
assert(bc2p[0] == 'R');
assert(bc2p[1] == 'W');
+
+ // Test Buffer(std:string&&)
+ Buffer bc3("QW");
+ unsigned char* bc3p = bc3.getBuffer();
+ Buffer bc4(bc3.copy());
+ bc3p[0] = 'R';
+ unsigned char* bc4p = bc4.getBuffer();
+ assert(bc4p != bc3p);
+ assert(bc4p[0] == 'Q');
+ assert(bc4p[1] == 'W');
+ bc4 = bc3.copy();
+ bc4p = bc4.getBuffer();
+ assert(bc4p != bc3p);
+ assert(bc4p[0] == 'R');
+ assert(bc4p[1] == 'W');
}
#ifdef _MSC_VER
@@ -62,6 +77,37 @@ main()
assert(bc2p != bc1p);
assert(bc2p[0] == 'R');
assert(bc2p[1] == 'W');
+
+ // Test Buffer(std:string&&)
+ Buffer bc3("QW");
+ unsigned char* bc3p = bc3.getBuffer();
+ Buffer bc4(bc3);
+ bc3p[0] = 'R';
+ unsigned char* bc4p = bc4.getBuffer();
+ assert(bc4p != bc3p);
+ assert(bc4p[0] == 'Q');
+ assert(bc4p[1] == 'W');
+ bc4 = bc3;
+ bc4p = bc4.getBuffer();
+ assert(bc4p != bc3p);
+ assert(bc2p[0] == 'R');
+ assert(bc2p[1] == 'W');
+
+ // Test Buffer(std:string&)
+ std::string s{"QW"};
+ Buffer bc5(s);
+ unsigned char* bc5p = bc5.getBuffer();
+ Buffer bc6(bc5);
+ bc5p[0] = 'R';
+ unsigned char* bc6p = bc6.getBuffer();
+ assert(bc6p != bc5p);
+ assert(bc6p[0] == 'Q');
+ assert(bc6p[1] == 'W');
+ bc6 = bc5;
+ bc6p = bc6.getBuffer();
+ assert(bc6p != bc5p);
+ assert(bc2p[0] == 'R');
+ assert(bc2p[1] == 'W');
}
#if (defined(__GNUC__) || defined(__clang__))
# pragma GCC diagnostic pop
@@ -82,6 +128,19 @@ main()
Buffer bm3 = std::move(bm2);
unsigned char* bm3p = bm3.getBuffer();
assert(bm3p == bm2p);
+
+ // Test Buffer(dtd::string&&)
+ Buffer bm4("QW");
+ unsigned char* bm4p = bm4.getBuffer();
+ Buffer bm5(std::move(bm4));
+ bm4p[0] = 'R';
+ unsigned char* bm5p = bm5.getBuffer();
+ assert(bm5p == bm4p);
+ assert(bm5p[0] == 'R');
+
+ Buffer bm6 = std::move(bm5);
+ unsigned char* bm6p = bm6.getBuffer();
+ assert(bm6p == bm5p);
}
try {
diff --git a/libtests/logger_c.c b/libtests/logger_c.c
index 4e9883a7..8f44864d 100644
--- a/libtests/logger_c.c
+++ b/libtests/logger_c.c
@@ -60,6 +60,7 @@ main()
do_run(
"{\"inputFile\": \"normal.pdf\","
" \"staticId\": \"\","
+ " \"streamData\": \"uncompress\","
" \"outputFile\": \"-\"}",
qpdf_exit_success);
@@ -75,9 +76,7 @@ main()
do_run("{\"inputFile\": \"2pages.pdf\", \"showNpages\": \"\"}", qpdf_exit_success);
do_run("{\"inputFile\": \"warning.pdf\", \"showNpages\": \"\"}", qpdf_exit_warning);
- do_run(
-
- "{\"inputFile\": \"missing.pdf\", \"showNpages\": \"\"}", qpdf_exit_error);
+ do_run("{\"inputFile\": \"missing.pdf\", \"showNpages\": \"\"}", qpdf_exit_error);
do_run(
"{\"inputFile\": \"attach.pdf\","
" \"showAttachment\": \"a\"}",
diff --git a/libtests/qtest/flate.test b/libtests/qtest/flate.test
index 3d99bc3a..c32b15b1 100644
--- a/libtests/qtest/flate.test
+++ b/libtests/qtest/flate.test
@@ -39,9 +39,13 @@ $td->runtest("run driver",
check_file("farbage", "a6449c61db5b0645c0693b7560b77a60");
-$td->runtest("compressed file correct",
- {$td->FILE => "farbage.1"},
- {$td->FILE => "compressed"});
+my $size_uncompressed = (stat("farbage"))[7];
+my $size_compressed = (stat("farbage.1"))[7];
+$td->runtest("compressed is smaller",
+ {$td->STRING =>
+ ($size_compressed < $size_uncompressed
+ ? "YES\n" : "$size_compressed $size_uncompressed\n")},
+ {$td->STRING => "YES\n"});
$td->runtest("uncompress filter works",
{$td->FILE => "farbage"},
diff --git a/libtests/qtest/logger/c-exp-save b/libtests/qtest/logger/c-exp-save
index b8c692ed..2636d712 100644
--- a/libtests/qtest/logger/c-exp-save
+++ b/libtests/qtest/logger/c-exp-save
Binary files differ