pajoye Wed Nov 12 11:24:49 2008 UTC Added files: /php-src/ext/zip/tests bug14962.phpt
Modified files: /php-src/ext/zip php_zip.c php_zip.h /php-src/ext/zip/tests bug38943.inc bug38943_2.phpt bug38943.phpt bug38944.phpt bug7658.phpt Log: - fix #14962 (makes 2nd argument really optional) - replace ZEND_ENGINE_2_1 test with PHP_ZIP_USE_OO, version independent - sync tests with 5.3
http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.c?r1=1.65&r2=1.66&diff_format=u Index: php-src/ext/zip/php_zip.c diff -u php-src/ext/zip/php_zip.c:1.65 php-src/ext/zip/php_zip.c:1.66 --- php-src/ext/zip/php_zip.c:1.65 Sun Nov 2 21:10:12 2008 +++ php-src/ext/zip/php_zip.c Wed Nov 12 11:24:48 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_zip.c,v 1.65 2008/11/02 21:10:12 felipe Exp $ */ +/* $Id: php_zip.c,v 1.66 2008/11/12 11:24:48 pajoye Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -135,7 +135,7 @@ } /* }}} */ -#ifdef ZEND_ENGINE_2_1 +#ifdef PHP_ZIP_USE_OO /* {{{ php_zip_extract_file */ static int php_zip_extract_file(struct zip * za, char *dest, char *file, int file_len TSRMLS_DC) { @@ -740,7 +740,7 @@ /* }}} */ /* {{{ ZE2 OO definitions */ -#ifdef ZEND_ENGINE_2_1 +#ifdef PHP_ZIP_USE_OO static zend_class_entry *zip_class_entry; static zend_object_handlers zip_object_handlers; @@ -760,7 +760,7 @@ #endif /* }}} */ -#ifdef ZEND_ENGINE_2_1 +#ifdef PHP_ZIP_USE_OO static void php_zip_register_prop_handler(HashTable *prop_handler, char *name, zip_read_int_t read_int_func, zip_read_const_char_t read_char_func, zip_read_const_char_from_ze_t read_char_from_obj_func, int rettype TSRMLS_DC) /* {{{ */ { zip_prop_handler hnd; @@ -1423,7 +1423,7 @@ } /* }}} */ -#ifdef ZEND_ENGINE_2_1 +#ifdef PHP_ZIP_USE_OO /* {{{ proto mixed ZipArchive::open(string source [, int flags]) U Create new zip using source uri for output, return TRUE on success or the error code */ static ZIPARCHIVE_METHOD(open) @@ -2413,15 +2413,15 @@ RETURN_FALSE; } - if (php_stream_stat_path(pathto, &ssb) < 0) { - ret = php_stream_mkdir(pathto, 0777, PHP_STREAM_MKDIR_RECURSIVE, NULL); - if (!ret) { - RETURN_FALSE; - } - } + if (php_stream_stat_path(pathto, &ssb) < 0) { + ret = php_stream_mkdir(pathto, 0777, PHP_STREAM_MKDIR_RECURSIVE, NULL); + if (!ret) { + RETURN_FALSE; + } + } ZIP_FROM_OBJECT(intern, this); - if (zval_files) { + if (zval_files && (Z_TYPE_P(zval_files) != IS_NULL)) { switch (Z_TYPE_P(zval_files)) { case IS_UNICODE: if (FAILURE == php_stream_path_param_encode(&zval_files, &file, &file_len, REPORT_ERRORS, FG(default_context))) { @@ -2443,6 +2443,7 @@ RETURN_FALSE; } break; + case IS_ARRAY: nelems = zend_hash_num_elements(Z_ARRVAL_P(zval_files)); if (nelems == 0 ) { @@ -2476,7 +2477,7 @@ } } break; - case IS_LONG: + default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid argument, expect string or array of strings"); break; @@ -2659,7 +2660,7 @@ /* {{{ PHP_MINIT_FUNCTION */ static PHP_MINIT_FUNCTION(zip) { -#ifdef ZEND_ENGINE_2_1 +#ifdef PHP_ZIP_USE_OO zend_class_entry ce; memcpy(&zip_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); @@ -2742,7 +2743,7 @@ */ static PHP_MSHUTDOWN_FUNCTION(zip) { -#ifdef ZEND_ENGINE_2_1 +#ifdef PHP_ZIP_USE_OO zend_hash_destroy(&zip_prop_handlers); php_unregister_url_stream_wrapper("zip" TSRMLS_CC); #endif @@ -2757,7 +2758,7 @@ php_info_print_table_start(); php_info_print_table_row(2, "Zip", "enabled"); - php_info_print_table_row(2, "Extension Version","$Id: php_zip.c,v 1.65 2008/11/02 21:10:12 felipe Exp $"); + php_info_print_table_row(2, "Extension Version","$Id: php_zip.c,v 1.66 2008/11/12 11:24:48 pajoye Exp $"); php_info_print_table_row(2, "Zip version", PHP_ZIP_VERSION_STRING); php_info_print_table_row(2, "Libzip version", "0.9.0"); http://cvs.php.net/viewvc.cgi/php-src/ext/zip/php_zip.h?r1=1.18&r2=1.19&diff_format=u Index: php-src/ext/zip/php_zip.h diff -u php-src/ext/zip/php_zip.h:1.18 php-src/ext/zip/php_zip.h:1.19 --- php-src/ext/zip/php_zip.h:1.18 Fri Aug 8 18:13:55 2008 +++ php-src/ext/zip/php_zip.h Wed Nov 12 11:24:48 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_zip.h,v 1.18 2008/08/08 18:13:55 pajoye Exp $ */ +/* $Id: php_zip.h,v 1.19 2008/11/12 11:24:48 pajoye Exp $ */ #ifndef PHP_ZIP_H #define PHP_ZIP_H @@ -42,6 +42,10 @@ #endif /* }}} */ +#if ((PHP_MAJOR_VERSION >= 5 && PHP_MINOR_VERSION >= 2) || PHP_MAJOR_VERSION >= 6) +# define PHP_ZIP_USE_OO 1 +#endif + typedef struct _ze_zip_rsrc { struct zip *za; int index_current; http://cvs.php.net/viewvc.cgi/php-src/ext/zip/tests/bug38943.inc?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/zip/tests/bug38943.inc diff -u /dev/null php-src/ext/zip/tests/bug38943.inc:1.2 --- /dev/null Wed Nov 12 11:24:49 2008 +++ php-src/ext/zip/tests/bug38943.inc Wed Nov 12 11:24:48 2008 @@ -0,0 +1,16 @@ +<?php +class myZip extends ZipArchive { + private $test = 0; + public $testp = 1; + private $testarray = array(); + + public function __construct() { + $this->testarray[] = 1; + var_dump($this->testarray); + } +} + +$z = new myZip; +$z->testp = "foobar"; +var_dump($z); + http://cvs.php.net/viewvc.cgi/php-src/ext/zip/tests/bug38943_2.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/zip/tests/bug38943_2.phpt diff -u /dev/null php-src/ext/zip/tests/bug38943_2.phpt:1.2 --- /dev/null Wed Nov 12 11:24:49 2008 +++ php-src/ext/zip/tests/bug38943_2.phpt Wed Nov 12 11:24:48 2008 @@ -0,0 +1,38 @@ +--TEST-- +#38943, properties in extended class cannot be set (5.3) +--SKIPIF-- +<?php +/* $Id: bug38943_2.phpt,v 1.2 2008/11/12 11:24:48 pajoye Exp $ */ +if(!extension_loaded('zip')) die('skip'); +if (!defined('PHP_VERSION_MAJOR')) die('skip test for5.3+ only'); +?> +--FILE-- +<?php +include 'bug38943.inc'; +?> +--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) "" +} http://cvs.php.net/viewvc.cgi/php-src/ext/zip/tests/bug38943.phpt?r1=1.3&r2=1.4&diff_format=u Index: php-src/ext/zip/tests/bug38943.phpt diff -u php-src/ext/zip/tests/bug38943.phpt:1.3 php-src/ext/zip/tests/bug38943.phpt:1.4 --- php-src/ext/zip/tests/bug38943.phpt:1.3 Tue May 27 02:55:52 2008 +++ php-src/ext/zip/tests/bug38943.phpt Wed Nov 12 11:24:48 2008 @@ -2,25 +2,12 @@ #38943, properties in extended class cannot be set --SKIPIF-- <?php -/* $Id: bug38943.phpt,v 1.3 2008/05/27 02:55:52 felipe Exp $ */ +/* $Id: bug38943.phpt,v 1.4 2008/11/12 11:24:48 pajoye Exp $ */ if(!extension_loaded('zip')) die('skip'); ?> --FILE-- <?php -class myZip extends ZipArchive { - private $test = 0; - public $testp = 1; - private $testarray = array(); - - public function __construct() { - $this->testarray[] = 1; - var_dump($this->testarray); - } -} - -$z = new myZip; -$z->testp = "foobar"; -var_dump($z); +include dirname(__FILE__) . '/bug38943.inc'; ?> --EXPECTF-- array(1) { @@ -37,14 +24,14 @@ [0]=> int(1) } - [u"status"]=> + ["status"]=> int(0) - [u"statusSys"]=> + ["statusSys"]=> int(0) - [u"numFiles"]=> + ["numFiles"]=> int(0) - [u"filename"]=> + ["filename"]=> string(0) "" - [u"comment"]=> + ["comment"]=> string(0) "" } http://cvs.php.net/viewvc.cgi/php-src/ext/zip/tests/bug38944.phpt?r1=1.3&r2=1.4&diff_format=u Index: php-src/ext/zip/tests/bug38944.phpt diff -u php-src/ext/zip/tests/bug38944.phpt:1.3 php-src/ext/zip/tests/bug38944.phpt:1.4 --- php-src/ext/zip/tests/bug38944.phpt:1.3 Tue May 27 02:55:52 2008 +++ php-src/ext/zip/tests/bug38944.phpt Wed Nov 12 11:24:48 2008 @@ -26,15 +26,15 @@ string(0) "" string(0) "" object(ZipArchive)#1 (5) { - [u"status"]=> + ["status"]=> int(0) - [u"statusSys"]=> + ["statusSys"]=> int(0) - [u"numFiles"]=> + ["numFiles"]=> int(0) - [u"filename"]=> + ["filename"]=> string(0) "" - [u"comment"]=> + ["comment"]=> string(0) "" } Done http://cvs.php.net/viewvc.cgi/php-src/ext/zip/tests/bug7658.phpt?r1=1.4&r2=1.5&diff_format=u Index: php-src/ext/zip/tests/bug7658.phpt diff -u php-src/ext/zip/tests/bug7658.phpt:1.4 php-src/ext/zip/tests/bug7658.phpt:1.5 --- php-src/ext/zip/tests/bug7658.phpt:1.4 Sat Aug 30 16:26:11 2008 +++ php-src/ext/zip/tests/bug7658.phpt Wed Nov 12 11:24:48 2008 @@ -2,11 +2,28 @@ Bug #7658 (modify archive with general bit flag 3 set) --SKIPIF-- <?php -/* $Id: bug7658.phpt,v 1.4 2008/08/30 16:26:11 pajoye Exp $ */ +/* $Id: bug7658.phpt,v 1.5 2008/11/12 11:24:48 pajoye Exp $ */ if(!extension_loaded('zip')) die('skip'); ?> --FILE-- <?php +$expect = array( + "mimetype", + "Configurations2/statusbar/", + "Configurations2/accelerator/current.xml", + "Configurations2/floater/", + "Configurations2/popupmenu/", + "Configurations2/progressbar/", + "Configurations2/menubar/", + "Configurations2/toolbar/", + "Configurations2/images/Bitmaps/", + "content.xml", + "styles.xml", + "meta.xml", + "Thumbnails/thumbnail.png", + "settings.xml", + "META-INF/manifest.xml", +); $dirname = dirname(__FILE__) . '/'; include $dirname . 'utils.inc'; $file = $dirname . '__tmp_bug7658.odt'; @@ -16,46 +33,23 @@ echo 'failed'; } -dump_entries_name($zip); $zip->deleteName('content.xml'); $zip->addFile($dirname . "bug7658.xml","content.xml"); $zip->close(); echo "\n"; $zip->open($file); -dump_entries_name($zip); + +for($i=0; $i < $zip->numFiles; $i++) { + $sb = $zip->statIndex($i); + $found[] = $sb['name']; +} +$ar = array_diff($found, $expect); + +var_dump($ar); unset($zip); unlink($file); ?> ---EXPECT-- -0 mimetype -1 Configurations2/statusbar/ -2 Configurations2/accelerator/current.xml -3 Configurations2/floater/ -4 Configurations2/popupmenu/ -5 Configurations2/progressbar/ -6 Configurations2/menubar/ -7 Configurations2/toolbar/ -8 Configurations2/images/Bitmaps/ -9 content.xml -10 styles.xml -11 meta.xml -12 Thumbnails/thumbnail.png -13 settings.xml -14 META-INF/manifest.xml - -0 mimetype -1 Configurations2/statusbar/ -2 Configurations2/accelerator/current.xml -3 Configurations2/floater/ -4 Configurations2/popupmenu/ -5 Configurations2/progressbar/ -6 Configurations2/menubar/ -7 Configurations2/toolbar/ -8 Configurations2/images/Bitmaps/ -9 styles.xml -10 meta.xml -11 Thumbnails/thumbnail.png -12 settings.xml -13 META-INF/manifest.xml -14 content.xml +--EXPECTF-- +array(0) { +} \ No newline at end of file http://cvs.php.net/viewvc.cgi/php-src/ext/zip/tests/bug14962.phpt?view=markup&rev=1.1 Index: php-src/ext/zip/tests/bug14962.phpt +++ php-src/ext/zip/tests/bug14962.phpt --TEST-- Bug #14962 (::extractTo second argument is not really optional) --SKIPIF-- <?php /* $Id: bug14962.phpt,v 1.1 2008/11/12 11:24:48 pajoye Exp $ */ if(!extension_loaded('zip')) die('skip'); ?> --FILE-- <?php $dir = dirname(__FILE__); $file = '__tmp14962.txt'; $fullpath = $dir . '/' . $file; $za = new ZipArchive; $za->open($dir . '/__14962.zip', ZIPARCHIVE::CREATE); $za->addFromString($file, '1234'); $za->close(); if (!is_file($dir . "/__14962.zip")) { die('failed to create the archive'); } $za = new ZipArchive; $za->open($dir . '/__14962.zip'); $za->extractTo($dir, NULL); $za->close(); if (is_file($fullpath)) { unlink($fullpath); echo "Ok"; } unlink($dir . '/' . '__14962.zip'); ?> --EXPECT-- Ok
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php