[php-src] master: ext/zip: applied fixers to improve test robustness (#23034)

NickSdot via GitHub <[email protected]>
Newsgroups gmane.comp.php.cvs.general
Message-ID <[email protected]>
Author: NickSdot (NickSdot)
Committer: GitHub (web-flow)
Pusher: LamentXU123
Date: 2026-08-04T23:59:20+08:00

Commit: https://github.com/php/php-src/commit/3fa8c166bd04c4d6414212fb32703e35d78f78c9
Raw diff: https://github.com/php/php-src/commit/3fa8c166bd04c4d6414212fb32703e35d78f78c9.diff

ext/zip: applied fixers to improve test robustness (#23034)

Changed paths:
  M  ext/zip/tests/ZipArchive_closeString_error.phpt
  M  ext/zip/tests/bug72434.phpt
  M  ext/zip/tests/bug_gh8781.phpt
  M  ext/zip/tests/doubleclose.phpt
  M  ext/zip/tests/gh19932.phpt
  M  ext/zip/tests/gh21682.phpt
  M  ext/zip/tests/gh21682_subclass_no_overrides.phpt
  M  ext/zip/tests/oo_addglob2.phpt
  M  ext/zip/tests/oo_getcomment.phpt
  M  ext/zip/tests/oo_getexternalattributesname_error.phpt
  M  ext/zip/tests/oo_open.phpt
  M  ext/zip/tests/oo_readonly_properties.phpt
  M  ext/zip/tests/oo_setcomment_error.phpt
  M  ext/zip/tests/oo_setcompression.phpt
  M  ext/zip/tests/oo_setcompression_64bit.phpt
  M  ext/zip/tests/zip_entry_close.phpt
  M  ext/zip/tests/zip_open_error.phpt


Diff:

diff --git a/ext/zip/tests/ZipArchive_closeString_error.phpt b/ext/zip/tests/ZipArchive_closeString_error.phpt
index d5dca14a97fc..34309078727d 100644
--- a/ext/zip/tests/ZipArchive_closeString_error.phpt
+++ b/ext/zip/tests/ZipArchive_closeString_error.phpt
@@ -11,7 +11,7 @@ var_dump($zip->open(__DIR__ . '/test.zip'));
 try {
 	$zip->closeString();
 } catch (Error $e) {
-	echo $e->getMessage() . "\n";
+	echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 echo "2.\n";
@@ -21,7 +21,7 @@ echo $zip->getStatusString() . "\n";
 try {
 	$zip->closeString();
 } catch (Error $e) {
-	echo $e->getMessage() . "\n";
+	echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 echo "3.\n";
@@ -31,17 +31,17 @@ echo gettype($zip->closeString()) . "\n";
 try {
 	$zip->closeString();
 } catch (Error $e) {
-	echo $e->getMessage() . "\n";
+	echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 ?>
 --EXPECT--
 1.
 bool(true)
-ZipArchive::closeString can only be called on an archive opened with ZipArchive::openString
+Error: ZipArchive::closeString can only be called on an archive opened with ZipArchive::openString
 2.
 Not a zip archive
-Invalid or uninitialized Zip object
+ValueError: Invalid or uninitialized Zip object
 3.
 string
-Invalid or uninitialized Zip object
+ValueError: Invalid or uninitialized Zip object
diff --git a/ext/zip/tests/bug72434.phpt b/ext/zip/tests/bug72434.phpt
index e2ccebad3754..842ad2aa2b89 100644
--- a/ext/zip/tests/bug72434.phpt
+++ b/ext/zip/tests/bug72434.phpt
@@ -10,8 +10,8 @@ try {
     $unserialized_payload = unserialize($serialized_payload);
     var_dump($unserialized_payload);
 } catch (Exception $e) {
-    echo $e->getMessage() . "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-Unserialization of 'ZipArchive' is not allowed, override __serialize() and __unserialize() to implement it
+Exception: Unserialization of 'ZipArchive' is not allowed, override __serialize() and __unserialize() to implement it
diff --git a/ext/zip/tests/bug_gh8781.phpt b/ext/zip/tests/bug_gh8781.phpt
index 31fac9bc6133..196e11630ef9 100644
--- a/ext/zip/tests/bug_gh8781.phpt
+++ b/ext/zip/tests/bug_gh8781.phpt
@@ -16,4 +16,3 @@ var_dump(is_file($file));
 --EXPECT--
 bool(true)
 bool(false)
-
diff --git a/ext/zip/tests/doubleclose.phpt b/ext/zip/tests/doubleclose.phpt
index 611a3b713f84..6ea24e270f57 100644
--- a/ext/zip/tests/doubleclose.phpt
+++ b/ext/zip/tests/doubleclose.phpt
@@ -14,7 +14,7 @@ var_dump(zip_close($zip));
 try {
     var_dump(zip_close($zip));
 } catch (TypeError $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 echo "Object\n";
@@ -27,7 +27,7 @@ if ($zip->status == ZIPARCHIVE::ER_OK) {
     try {
         $zip->close();
     } catch (ValueError $err) {
-        echo $err->getMessage(), PHP_EOL;
+        echo $err::class, ': ', $err->getMessage(), PHP_EOL;
     }
 } else {
     die("Failure");
@@ -44,8 +44,8 @@ Deprecated: Function zip_close() is deprecated since 8.0, use ZipArchive::close(
 NULL
 
 Deprecated: Function zip_close() is deprecated since 8.0, use ZipArchive::close() instead in %s on line %d
-zip_close(): supplied resource is not a valid Zip Directory resource
+TypeError: zip_close(): supplied resource is not a valid Zip Directory resource
 Object
 bool(true)
-Invalid or uninitialized Zip object
+ValueError: Invalid or uninitialized Zip object
 Done
diff --git a/ext/zip/tests/gh19932.phpt b/ext/zip/tests/gh19932.phpt
index 760fa1c9e766..766ed38b991b 100644
--- a/ext/zip/tests/gh19932.phpt
+++ b/ext/zip/tests/gh19932.phpt
@@ -22,4 +22,3 @@ echo "OK";
 ?>
 --EXPECT--
 OK
-
diff --git a/ext/zip/tests/gh21682.phpt b/ext/zip/tests/gh21682.phpt
index ee09c73e5c4d..cee4e8732b1d 100644
--- a/ext/zip/tests/gh21682.phpt
+++ b/ext/zip/tests/gh21682.phpt
@@ -9,8 +9,8 @@ try {
     serialize($a);
     echo "ERROR: should have thrown\n";
 } catch (\Exception $e) {
-    echo $e->getMessage() . "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-Serialization of 'ZipArchive' is not allowed, override __serialize() and __unserialize() to implement it
+Exception: Serialization of 'ZipArchive' is not allowed, override __serialize() and __unserialize() to implement it
diff --git a/ext/zip/tests/gh21682_subclass_no_overrides.phpt b/ext/zip/tests/gh21682_subclass_no_overrides.phpt
index 04fb49d9848e..ff06a668da26 100644
--- a/ext/zip/tests/gh21682_subclass_no_overrides.phpt
+++ b/ext/zip/tests/gh21682_subclass_no_overrides.phpt
@@ -11,16 +11,16 @@ try {
     serialize($zip);
     echo "ERROR: should have thrown\n";
 } catch (\Exception $e) {
-    echo $e->getMessage() . "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 try {
     unserialize('O:5:"MyZip":0:{}');
     echo "ERROR: should have thrown\n";
 } catch (\Exception $e) {
-    echo $e->getMessage() . "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-Serialization of 'MyZip' is not allowed, override __serialize() and __unserialize() to implement it
-Unserialization of 'MyZip' is not allowed, override __serialize() and __unserialize() to implement it
+Exception: Serialization of 'MyZip' is not allowed, override __serialize() and __unserialize() to implement it
+Exception: Unserialization of 'MyZip' is not allowed, override __serialize() and __unserialize() to implement it
diff --git a/ext/zip/tests/oo_addglob2.phpt b/ext/zip/tests/oo_addglob2.phpt
index a98a22271205..298041cc0650 100644
--- a/ext/zip/tests/oo_addglob2.phpt
+++ b/ext/zip/tests/oo_addglob2.phpt
@@ -41,7 +41,7 @@ $options = [
 try {
 	$zip->addGlob($dirname. 'bar.*', GLOB_BRACE, $options);
 } catch (\ValueError $e) {
-	echo $e->getMessage(), PHP_EOL;
+	echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 $options['comp_flags'] = 65536;
@@ -49,7 +49,7 @@ $options['comp_flags'] = 65536;
 try {
 	$zip->addGlob($dirname. 'bar.*', GLOB_BRACE, $options);
 } catch (\ValueError $e) {
-	echo $e->getMessage(), PHP_EOL;
+	echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 $options['comp_flags'] = 5;
diff --git a/ext/zip/tests/oo_getcomment.phpt b/ext/zip/tests/oo_getcomment.phpt
index a43c5ae38a53..62915841e036 100644
--- a/ext/zip/tests/oo_getcomment.phpt
+++ b/ext/zip/tests/oo_getcomment.phpt
@@ -20,7 +20,7 @@ var_dump($zip->getCommentIndex($idx));
 try {
     echo $zip->getCommentName('') . "\n";
 } catch (\ValueError $e) {
-    echo $e->getMessage() . \PHP_EOL;
+    echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 $zip->close();
@@ -30,4 +30,4 @@ $zip->close();
 Zip archive comment
 string(11) "foo comment"
 string(11) "foo comment"
-ZipArchive::getCommentName(): Argument #1 ($name) must not be empty
+ValueError: ZipArchive::getCommentName(): Argument #1 ($name) must not be empty
diff --git a/ext/zip/tests/oo_getexternalattributesname_error.phpt b/ext/zip/tests/oo_getexternalattributesname_error.phpt
index 175fdc4b7bb8..40dc24308292 100644
--- a/ext/zip/tests/oo_getexternalattributesname_error.phpt
+++ b/ext/zip/tests/oo_getexternalattributesname_error.phpt
@@ -16,8 +16,8 @@ $b = ZipArchive::OPSYS_DEFAULT;
 try {
     $zip->getExternalAttributesName("", $a, $b);
 } catch(ValueError $e) {
-    echo $e->getMessage();
+    echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 ?>
 --EXPECT--
-ZipArchive::getExternalAttributesName(): Argument #1 ($name) must not be empty
+ValueError: ZipArchive::getExternalAttributesName(): Argument #1 ($name) must not be empty
diff --git a/ext/zip/tests/oo_open.phpt b/ext/zip/tests/oo_open.phpt
index 44fa46a9a6ea..7352d6fc20f2 100644
--- a/ext/zip/tests/oo_open.phpt
+++ b/ext/zip/tests/oo_open.phpt
@@ -26,7 +26,7 @@ $zip = new ZipArchive;
 try {
     $zip->open('');
 } catch (\ValueError $e) {
-    echo $e->getMessage() . \PHP_EOL;
+    echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 if (!$zip->open($dirname . 'test.zip')) {
@@ -42,5 +42,5 @@ if ($zip->status == ZIPARCHIVE::ER_OK) {
 --EXPECT--
 ER_OPEN: ok
 create: ok
-ZipArchive::open(): Argument #1 ($filename) must not be empty
+ValueError: ZipArchive::open(): Argument #1 ($filename) must not be empty
 OK
diff --git a/ext/zip/tests/oo_readonly_properties.phpt b/ext/zip/tests/oo_readonly_properties.phpt
index 40eb29f68a7c..385b7de0e850 100644
--- a/ext/zip/tests/oo_readonly_properties.phpt
+++ b/ext/zip/tests/oo_readonly_properties.phpt
@@ -10,13 +10,13 @@ $zip = new ZipArchive();
 try {
     $zip->lastId = 1;
 } catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 try {
     $zip->lastId += 1;
 } catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 var_dump($zip->lastId);
@@ -24,7 +24,7 @@ var_dump($zip->lastId);
 try {
     $zip->status = 1;
 } catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 var_dump($zip->status);
@@ -32,7 +32,7 @@ var_dump($zip->status);
 try {
     $zip->statusSys = 1;
 } catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 var_dump($zip->statusSys);
@@ -40,7 +40,7 @@ var_dump($zip->statusSys);
 try {
     $zip->numFiles = 1;
 } catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 var_dump($zip->numFiles);
@@ -48,7 +48,7 @@ var_dump($zip->numFiles);
 try {
     $zip->filename = "a";
 } catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 var_dump($zip->filename);
@@ -56,23 +56,23 @@ var_dump($zip->filename);
 try {
     $zip->comment = "a";
 } catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 var_dump($zip->comment);
 
 ?>
 --EXPECT--
-Cannot write read-only property ZipArchive::$lastId
-Cannot write read-only property ZipArchive::$lastId
+Error: Cannot write read-only property ZipArchive::$lastId
+Error: Cannot write read-only property ZipArchive::$lastId
 int(-1)
-Cannot write read-only property ZipArchive::$status
+Error: Cannot write read-only property ZipArchive::$status
 int(0)
-Cannot write read-only property ZipArchive::$statusSys
+Error: Cannot write read-only property ZipArchive::$statusSys
 int(0)
-Cannot write read-only property ZipArchive::$numFiles
+Error: Cannot write read-only property ZipArchive::$numFiles
 int(0)
-Cannot write read-only property ZipArchive::$filename
+Error: Cannot write read-only property ZipArchive::$filename
 string(0) ""
-Cannot write read-only property ZipArchive::$comment
+Error: Cannot write read-only property ZipArchive::$comment
 string(0) ""
diff --git a/ext/zip/tests/oo_setcomment_error.phpt b/ext/zip/tests/oo_setcomment_error.phpt
index 82b718ee1872..f94ba2282520 100644
--- a/ext/zip/tests/oo_setcomment_error.phpt
+++ b/ext/zip/tests/oo_setcomment_error.phpt
@@ -21,25 +21,25 @@ $longComment = str_repeat('a', 0x10000);
 try {
     var_dump($zip->setArchiveComment($longComment));
 } catch (\ValueError $e) {
-    echo $e->getMessage() . \PHP_EOL;
+    echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 try {
     var_dump($zip->setCommentName('entry1.txt', $longComment));
 } catch (\ValueError $e) {
-    echo $e->getMessage() . \PHP_EOL;
+    echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 try {
     var_dump($zip->setCommentIndex(1, $longComment));
 } catch (\ValueError $e) {
-    echo $e->getMessage() . \PHP_EOL;
+    echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 $zip->close();
 ?>
 --EXPECT--
-ZipArchive::setArchiveComment(): Argument #1 ($comment) must be less than 65535 bytes
-ZipArchive::setCommentName(): Argument #2 ($comment) must be less than 65535 bytes
-ZipArchive::setCommentIndex(): Argument #2 ($comment) must be less than 65535 bytes
+ValueError: ZipArchive::setArchiveComment(): Argument #1 ($comment) must be less than 65535 bytes
+ValueError: ZipArchive::setCommentName(): Argument #2 ($comment) must be less than 65535 bytes
+ValueError: ZipArchive::setCommentIndex(): Argument #2 ($comment) must be less than 65535 bytes
 --CLEAN--
 <?php
 @unlink(__DIR__ . '/__tmp_oo_set_comment_error.zip');
diff --git a/ext/zip/tests/oo_setcompression.phpt b/ext/zip/tests/oo_setcompression.phpt
index 1b7e817688dd..663345ef16a5 100644
--- a/ext/zip/tests/oo_setcompression.phpt
+++ b/ext/zip/tests/oo_setcompression.phpt
@@ -31,13 +31,13 @@ var_dump($zip->setCompressionName('entry4.txt', ZipArchive::CM_DEFLATE));
 try {
 	$zip->setCompressionName('entry5.txt', PHP_INT_MIN);
 } catch (\ValueError $e) {
-	echo $e->getMessage(), PHP_EOL;
+	echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 try {
 	$zip->setCompressionIndex(4, PHP_INT_MIN);
 } catch (\ValueError $e) {
-	echo $e->getMessage(), PHP_EOL;
+	echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 var_dump($zip->setCompressionIndex(4, ZipArchive::CM_STORE));
@@ -69,8 +69,8 @@ unlink($tmpfile);
 bool(true)
 bool(true)
 bool(true)
-ZipArchive::setCompressionName(): Argument #2 ($method) must be between -1 and %d
-ZipArchive::setCompressionIndex(): Argument #2 ($method) must be between -1 and %d
+ValueError: ZipArchive::setCompressionName(): Argument #2 ($method) must be between -1 and %d
+ValueError: ZipArchive::setCompressionIndex(): Argument #2 ($method) must be between -1 and %d
 bool(true)
 bool(true)
 bool(true)
diff --git a/ext/zip/tests/oo_setcompression_64bit.phpt b/ext/zip/tests/oo_setcompression_64bit.phpt
index cb093e8ccfc9..70de8fade443 100644
--- a/ext/zip/tests/oo_setcompression_64bit.phpt
+++ b/ext/zip/tests/oo_setcompression_64bit.phpt
@@ -14,16 +14,16 @@ $zip = new ZipArchive;
 try {
 	$zip->setCompressionName('entry5.txt', PHP_INT_MAX);
 } catch (\ValueError $e) {
-	echo $e->getMessage(), PHP_EOL;
+	echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 try {
 	$zip->setCompressionIndex(4, PHP_INT_MAX);
 } catch (\ValueError $e) {
-	echo $e->getMessage(), PHP_EOL;
+	echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 ?>
 --EXPECTF--
-ZipArchive::setCompressionName(): Argument #2 ($method) must be between -1 and %d
-ZipArchive::setCompressionIndex(): Argument #2 ($method) must be between -1 and %d
+ValueError: ZipArchive::setCompressionName(): Argument #2 ($method) must be between -1 and %d
+ValueError: ZipArchive::setCompressionIndex(): Argument #2 ($method) must be between -1 and %d
diff --git a/ext/zip/tests/zip_entry_close.phpt b/ext/zip/tests/zip_entry_close.phpt
index 8e05c762f771..bdfbeea67831 100644
--- a/ext/zip/tests/zip_entry_close.phpt
+++ b/ext/zip/tests/zip_entry_close.phpt
@@ -11,7 +11,7 @@ echo "entry_close: "; var_dump(zip_entry_close($entry));
 try {
     echo "entry_close: "; var_dump(zip_entry_close($entry));
 } catch (TypeError $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 zip_close($zip);
 ?>
@@ -28,7 +28,7 @@ Deprecated: Function zip_entry_close() is deprecated since 8.0 in %s on line %d
 bool(true)
 entry_close: 
 Deprecated: Function zip_entry_close() is deprecated since 8.0 in %s on line %d
-zip_entry_close(): supplied resource is not a valid Zip Entry resource
+TypeError: zip_entry_close(): supplied resource is not a valid Zip Entry resource
 
 Deprecated: Function zip_close() is deprecated since 8.0, use ZipArchive::close() instead in %s on line %d
 Done
diff --git a/ext/zip/tests/zip_open_error.phpt b/ext/zip/tests/zip_open_error.phpt
index 2e43ac29713b..24f049647f0f 100644
--- a/ext/zip/tests/zip_open_error.phpt
+++ b/ext/zip/tests/zip_open_error.phpt
@@ -11,7 +11,7 @@ echo "Test case 1:";
 try {
     $zip = zip_open("");
 } catch (\ValueError $e) {
-    echo $e->getMessage() . \PHP_EOL;
+    echo $e::class, ': ', $e->getMessage(), PHP_EOL;
 }
 
 echo "Test case 2:\n";
@@ -21,7 +21,7 @@ echo is_resource($zip) ? "OK" : "Failure";
 --EXPECTF--
 Test case 1:
 Deprecated: Function zip_open() is deprecated since 8.0, use ZipArchive::open() instead in %s on line %d
-zip_open(): Argument #1 ($filename) must not be empty
+ValueError: zip_open(): Argument #1 ($filename) must not be empty
 Test case 2:
 
 Deprecated: Function zip_open() is deprecated since 8.0, use ZipArchive::open() instead in %s on line %d
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.