From dac0598b94c877bec92a1edd78ae00021cfa1638 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 23 Aug 2019 19:54:08 -0400 Subject: Add ability to set zlib compression level globally --- zlib-flate/qtest/1.compressed-1 | Bin 0 -> 193 bytes zlib-flate/qtest/1.compressed-9 | Bin 0 -> 193 bytes zlib-flate/qtest/zf.test | 24 +++++++++++++++--------- zlib-flate/zlib-flate.cc | 17 +++++++++++++++-- 4 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 zlib-flate/qtest/1.compressed-1 create mode 100644 zlib-flate/qtest/1.compressed-9 (limited to 'zlib-flate') diff --git a/zlib-flate/qtest/1.compressed-1 b/zlib-flate/qtest/1.compressed-1 new file mode 100644 index 00000000..11150cf3 Binary files /dev/null and b/zlib-flate/qtest/1.compressed-1 differ diff --git a/zlib-flate/qtest/1.compressed-9 b/zlib-flate/qtest/1.compressed-9 new file mode 100644 index 00000000..25f4647b Binary files /dev/null and b/zlib-flate/qtest/1.compressed-9 differ diff --git a/zlib-flate/qtest/zf.test b/zlib-flate/qtest/zf.test index 39271e16..2b188eb2 100644 --- a/zlib-flate/qtest/zf.test +++ b/zlib-flate/qtest/zf.test @@ -7,15 +7,21 @@ require TestDriver; my $td = new TestDriver('zlib-flate'); -$td->runtest("compress", - {$td->COMMAND => "zlib-flate -compress < 1.uncompressed"}, - {$td->FILE => "1.compressed", - $td->EXIT_STATUS => 0}); +foreach my $level ('', '=1', '=9') +{ + my $f = $level; + $f =~ s/=/-/; + $td->runtest("compress", + {$td->COMMAND => + "zlib-flate -compress$level < 1.uncompressed"}, + {$td->FILE => "1.compressed$f", + $td->EXIT_STATUS => 0}); -$td->runtest("uncompress", - {$td->COMMAND => "zlib-flate -uncompress < 1.compressed"}, - {$td->FILE => "1.uncompressed", - $td->EXIT_STATUS => 0}); + $td->runtest("uncompress", + {$td->COMMAND => "zlib-flate -uncompress < 1.compressed"}, + {$td->FILE => "1.uncompressed", + $td->EXIT_STATUS => 0}); +} $td->runtest("error", {$td->COMMAND => "zlib-flate -uncompress < 1.uncompressed"}, @@ -23,4 +29,4 @@ $td->runtest("error", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); -$td->report(3); +$td->report(7); diff --git a/zlib-flate/zlib-flate.cc b/zlib-flate/zlib-flate.cc index d1c74d4d..c2613202 100644 --- a/zlib-flate/zlib-flate.cc +++ b/zlib-flate/zlib-flate.cc @@ -12,8 +12,14 @@ static char const* whoami = 0; void usage() { - std::cerr << "Usage: " << whoami << " { -uncompress | -compress }" - << std::endl; + std::cerr << "Usage: " << whoami << " { -uncompress | -compress[=n] }" + << std::endl + << "If n is specified with -compress, it is a" + << " zlib compression level from" << std::endl + << "1 to 9 where lower numbers are faster and" + << " less compressed and higher" << std::endl + << "numbers are slower and more compresed" + << std::endl; exit(2); } @@ -43,6 +49,7 @@ int main(int argc, char* argv[]) { usage(); } + // QXXXQ level Pl_Flate::action_e action = Pl_Flate::a_inflate; @@ -54,6 +61,12 @@ int main(int argc, char* argv[]) { action = Pl_Flate::a_deflate; } + else if ((strncmp(argv[1], "-compress=", 10) == 0)) + { + action = Pl_Flate::a_deflate; + int level = QUtil::string_to_int(argv[1] + 10); + Pl_Flate::setCompressionLevel(level); + } else { usage(); -- cgit v1.2.3-70-g09d2