diff options
author | Jay Berkenbilt <ejb@ql.org> | 2009-02-20 03:27:36 +0100 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2009-02-20 03:27:36 +0100 |
commit | da7166bead13d09ad29f68ad64da5500c82d9be1 (patch) | |
tree | 8085419efe73273f6bfeef24103ceaea62b54fb4 /libtests | |
parent | 9f93c89ee59b2ebc04a15a9f24cdaf9f513a28c1 (diff) | |
download | qpdf-da7166bead13d09ad29f68ad64da5500c82d9be1.tar.zst |
fix problem with lzw decoder when run without early code change, now that we actually have test input
git-svn-id: svn+q:///qpdf/trunk@646 71b93d88-0707-0410-a8cf-f5a4172ac649
Diffstat (limited to 'libtests')
-rw-r--r-- | libtests/lzw.cc | 13 | ||||
-rw-r--r-- | libtests/qtest/lzw.test | 30 | ||||
-rw-r--r-- | libtests/qtest/lzw/lzw2.in | bin | 0 -> 38344 bytes | |||
-rw-r--r-- | libtests/qtest/lzw/lzw2.out | bin | 0 -> 143954 bytes |
4 files changed, 35 insertions, 8 deletions
diff --git a/libtests/lzw.cc b/libtests/lzw.cc index 09ded352..034c0bb9 100644 --- a/libtests/lzw.cc +++ b/libtests/lzw.cc @@ -3,13 +3,18 @@ #include <qpdf/Pl_StdioFile.hh> #include <iostream> #include <stdlib.h> +#include <string.h> -int main() +int main(int argc, char* argv[]) { + bool early_code_change = true; + if ((argc == 2) && (strcmp(argv[1], "--no-early-code-change") == 0)) + { + early_code_change = false; + } + Pl_StdioFile out("stdout", stdout); - // We don't exercise LZWDecoder with early code change false - // because we have no way to generate such an LZW stream. - Pl_LZWDecoder decode("decode", &out, true); + Pl_LZWDecoder decode("decode", &out, early_code_change); try { diff --git a/libtests/qtest/lzw.test b/libtests/qtest/lzw.test index abb412d4..649cd330 100644 --- a/libtests/qtest/lzw.test +++ b/libtests/qtest/lzw.test @@ -9,9 +9,31 @@ require TestDriver; my $td = new TestDriver('lzw'); -$td->runtest("decode", - {$td->COMMAND => "lzw < lzw1.in"}, - {$td->FILE => "lzw1.out", +cleanup(); + +$td->runtest("decode: early code change", + {$td->COMMAND => "lzw < lzw1.in > tmp"}, + {$td->STRING => "", + $td->EXIT_STATUS => 0}); + +$td->runtest("check output", + {$td->FILE => "tmp"}, + {$td->FILE => "lzw1.out"}); + +$td->runtest("decode: no early code change", + {$td->COMMAND => "lzw --no-early-code-change < lzw2.in > tmp"}, + {$td->STRING => "", $td->EXIT_STATUS => 0}); -$td->report(1); +$td->runtest("check output", + {$td->FILE => "tmp"}, + {$td->FILE => "lzw2.out"}); + +cleanup(); + +$td->report(4); + +sub cleanup +{ + unlink "tmp"; +} diff --git a/libtests/qtest/lzw/lzw2.in b/libtests/qtest/lzw/lzw2.in Binary files differnew file mode 100644 index 00000000..5109c45a --- /dev/null +++ b/libtests/qtest/lzw/lzw2.in diff --git a/libtests/qtest/lzw/lzw2.out b/libtests/qtest/lzw/lzw2.out Binary files differnew file mode 100644 index 00000000..ab105031 --- /dev/null +++ b/libtests/qtest/lzw/lzw2.out |