From da7166bead13d09ad29f68ad64da5500c82d9be1 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 20 Feb 2009 02:27:36 +0000 Subject: 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 --- libtests/lzw.cc | 13 +++++++++---- libtests/qtest/lzw.test | 30 ++++++++++++++++++++++++++---- libtests/qtest/lzw/lzw2.in | Bin 0 -> 38344 bytes libtests/qtest/lzw/lzw2.out | Bin 0 -> 143954 bytes 4 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 libtests/qtest/lzw/lzw2.in create mode 100644 libtests/qtest/lzw/lzw2.out (limited to 'libtests') 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 #include #include +#include -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 new file mode 100644 index 00000000..5109c45a Binary files /dev/null and b/libtests/qtest/lzw/lzw2.in differ diff --git a/libtests/qtest/lzw/lzw2.out b/libtests/qtest/lzw/lzw2.out new file mode 100644 index 00000000..ab105031 Binary files /dev/null and b/libtests/qtest/lzw/lzw2.out differ -- cgit v1.2.3-54-g00ecf