PATH:
opt
/
alt
/
tests
/
alt-php52-pecl-igbinary_2.0.8-1.el8
/
tests
--TEST-- Should not call __destruct if __wakeup throws an exception --SKIPIF-- <?php if (PHP_MAJOR_VERSION < 7) { print "skip not able to set gc flags"; } ?> --INI-- igbinary.compact_strings = On --FILE-- <?php class Thrower { public $id; public $throws; public $dynamic; public function __construct($id, $throws = false) { $this->id = $id; $this->throws = $throws; $this->dynamic = "original"; } public function __wakeup() { printf("Calling __wakeup %s\n", $this->id); $this->dynamic = "copy"; if ($this->throws) { throw new Exception("__wakeup threw"); } } public function __destruct() { printf("Calling __destruct %s dynamic=%s\n", $this->id, $this->dynamic); } } function main() { $a = new Thrower("a", true); $serialized = igbinary_serialize($a); try { igbinary_unserialize($serialized); } catch (Exception $e) { printf("Caught %s\n", $e->getMessage()); } $a = null; print("Done a\n"); $b = new Thrower("b", false); $serialized = igbinary_serialize($b); $bCopy = igbinary_unserialize($serialized); print("Unserialized b\n"); var_dump($bCopy); $bCopy = null; $b = null; print("Done b\n"); } main(); --EXPECT-- Calling __wakeup a Caught __wakeup threw Calling __destruct a dynamic=original Done a Calling __wakeup b Unserialized b object(Thrower)#2 (3) { ["id"]=> string(1) "b" ["throws"]=> bool(false) ["dynamic"]=> string(4) "copy" } Calling __destruct b dynamic=copy Calling __destruct b dynamic=original Done b
[-] igbinary_015c.phpt
[edit]
[-] igbinary_043.phpt
[edit]
[-] igbinary_057.phpt
[edit]
[-] igbinary_bug72134.phpt
[edit]
[-] igbinary_045.phpt
[edit]
[-] igbinary_045b.phpt
[edit]
[-] igbinary_063.phpt
[edit]
[-] igbinary_069.phpt
[edit]
[-] igbinary_052.phpt
[edit]
[-] igbinary_004.phpt
[edit]
[-] igbinary_017.phpt
[edit]
[-] igbinary_053.phpt
[edit]
[-] igbinary_032.phpt
[edit]
[-] igbinary_058.phpt
[edit]
[-] igbinary_005.phpt
[edit]
[-] igbinary_046b.phpt
[edit]
[-] igbinary_063_php72.phpt
[edit]
[-] igbinary_064.phpt
[edit]
[-] igbinary_044.phpt
[edit]
[-] igbinary_033.phpt
[edit]
[-] igbinary_040.phpt
[edit]
[-] igbinary_046c.phpt
[edit]
[-] igbinary_049b.phpt
[edit]
[-] igbinary_006.phpt
[edit]
[-] igbinary_054.phpt
[edit]
[-] igbinary_063_php7.phpt
[edit]
[-] igbinary_046d.phpt
[edit]
[-] igbinary_046.phpt
[edit]
[-] igbinary_021.phpt
[edit]
[-] igbinary_034.phpt
[edit]
[-] igbinary_059.phpt
[edit]
[-] igbinary_068.phpt
[edit]
[-] igbinary_029.phpt
[edit]
[-] igbinary_014.phpt
[edit]
[-] igbinary_025.phpt
[edit]
[-] igbinary_016.phpt
[edit]
[-] igbinary_048b.phpt
[edit]
[-] igbinary_024.phpt
[edit]
[-] igbinary_055.phpt
[edit]
[-] igbinary_048.phpt
[edit]
[-] igbinary_009.phpt
[edit]
[-] igbinary_051.phpt
[edit]
[-] igbinary_023.phpt
[edit]
[-] igbinary_012.phpt
[edit]
[-] igbinary_030.phpt
[edit]
[-] igbinary_058b.phpt
[edit]
[-] igbinary_065.phpt
[edit]
[-] igbinary_018.phpt
[edit]
[-] igbinary_015.phpt
[edit]
[-] igbinary_030_php7.phpt
[edit]
[-] igbinary_062.phpt
[edit]
[-] igbinary_042.phpt
[edit]
[-] igbinary_026b.phpt
[edit]
[-] igbinary_002.phpt
[edit]
[-] igbinary_041.phpt
[edit]
[-] igbinary_031.phpt
[edit]
[-] igbinary_027.phpt
[edit]
[-] igbinary_020.phpt
[edit]
[-] igbinary_022.phpt
[edit]
[-] igbinary_030_php72.phpt
[edit]
[-] igbinary_015b.phpt
[edit]
[-] igbinary_007.phpt
[edit]
[-] igbinary_049.phpt
[edit]
[-] igbinary_050.phpt
[edit]
[+]
..
[-] igbinary_013.phpt
[edit]
[-] igbinary_010.phpt
[edit]
[-] igbinary_028.phpt
[edit]
[-] igbinary_045c.phpt
[edit]
[-] igbinary_001.phpt
[edit]
[-] igbinary_003.phpt
[edit]
[-] igbinary_066.phpt
[edit]
[-] igbinary_008.phpt
[edit]
[-] igbinary_009b.phpt
[edit]
[-] igbinary_026.phpt
[edit]
[-] igbinary_047.phpt
[edit]