From 7102449f76cd9b3acf7455322c9a84b19a92f478 Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Tue, 4 Nov 2008 13:24:39 +0000 Subject: [PATCH] - sync tests with pecl --- ext/zip/tests/bug38943.inc | 16 ++++++++++++++ ext/zip/tests/bug38943_2.phpt | 38 +++++++++++++++++++++++++++++++++ ext/zip/tests/pecl12414.phpt | 39 ++++++++++++++++++++++++++++++++++ ext/zip/tests/pecl12414.zip | Bin 0 -> 17271 bytes 4 files changed, 93 insertions(+) create mode 100644 ext/zip/tests/bug38943.inc create mode 100644 ext/zip/tests/bug38943_2.phpt create mode 100644 ext/zip/tests/pecl12414.phpt create mode 100644 ext/zip/tests/pecl12414.zip diff --git a/ext/zip/tests/bug38943.inc b/ext/zip/tests/bug38943.inc new file mode 100644 index 0000000000..a6f45e8294 --- /dev/null +++ b/ext/zip/tests/bug38943.inc @@ -0,0 +1,16 @@ +testarray[] = 1; + var_dump($this->testarray); + } +} + +$z = new myZip; +$z->testp = "foobar"; +var_dump($z); + diff --git a/ext/zip/tests/bug38943_2.phpt b/ext/zip/tests/bug38943_2.phpt new file mode 100644 index 0000000000..1aaba37c12 --- /dev/null +++ b/ext/zip/tests/bug38943_2.phpt @@ -0,0 +1,38 @@ +--TEST-- +#38943, properties in extended class cannot be set (5.3) +--SKIPIF-- + +--FILE-- + +--EXPECTF-- +array(1) { + [0]=> + int(1) +} +object(myZip)#1 (%d) { + ["test":"myZip":private]=> + int(0) + ["testp"]=> + string(6) "foobar" + ["testarray":"myZip":private]=> + array(1) { + [0]=> + int(1) + } + ["status"]=> + int(0) + ["statusSys"]=> + int(0) + ["numFiles"]=> + int(0) + ["filename"]=> + string(0) "" + ["comment"]=> + string(0) "" +} diff --git a/ext/zip/tests/pecl12414.phpt b/ext/zip/tests/pecl12414.phpt new file mode 100644 index 0000000000..ab11d21a63 --- /dev/null +++ b/ext/zip/tests/pecl12414.phpt @@ -0,0 +1,39 @@ +--TEST-- +Bug #12414 ( extracting files from damaged archives) +--SKIPIF-- + +--FILE-- +open($zipname); +if ($res === TRUE) { + $finfo=$za->statName($filename); + $file_size=$finfo['size']; + + if($file_size>0) { + $contents=$za->getFromName($filename); + + echo "ZIP contents size: " . strlen($contents) . "\n"; + if(strlen($contents)!=$file_size) { + echo "zip_readfile recorded data does not match unpacked size: " . $zipname . " : " . $filename; + } + } else { + $contents=false; + echo "zip_readfile could not open stream from zero length file " . $zipname . " : " .$filename; + } + + $za->close(); +} else { + echo "zip_readfile could not read from " . $zipname . " : " . $filename; +} + +?> +--DONE-- +--EXPECTF-- +ZIP contents size: %d +zip_readfile recorded data does not match unpacked size: %specl12414.zip : MYLOGOV2.GFX diff --git a/ext/zip/tests/pecl12414.zip b/ext/zip/tests/pecl12414.zip new file mode 100644 index 0000000000000000000000000000000000000000..6cbc60f607d4c1860c3bf21796652868a00503ec GIT binary patch literal 17271 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 gw#ErUU#}HvQzgKg71)RYwKKUGjDhV