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

[email protected] (NickSdot via GitHub) Tue, 4 Aug 2026 15:59:23 +0000
Newsgroups php.cvs
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