Annotation of embedaddon/php/ext/date/tests/bug53437.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
1.1.1.2 ! misho 2: Bug #53437 (Crash when using unserialized DatePeriod instance), variation 1
1.1 misho 3: --FILE--
4: <?php
5: $dp = new DatePeriod(new DateTime('2010-01-01 UTC'), new DateInterval('P1D'), 2);
6:
7: echo "Original:\r\n";
8: foreach($dp as $dt) {
9: echo $dt->format('Y-m-d H:i:s')."\r\n";
10: }
11: echo "\r\n";
12: var_dump($dp);
13:
14: $ser = serialize($dp); // $ser is: O:10:"DatePeriod":0:{}
15:
16: // Create dangerous instance
17: $dpu = unserialize($ser); // $dpu has invalid values???
18: var_dump($dpu);
19:
20: echo "Unserialized:\r\n";
21: foreach($dpu as $dt) {
22: echo $dt->format('Y-m-d H:i:s')."\r\n";
23: }
24: ?>
1.1.1.2 ! misho 25: ==DONE==
1.1 misho 26: --EXPECT--
1.1.1.2 ! misho 27: Original:
! 28: 2010-01-01 00:00:00
! 29: 2010-01-02 00:00:00
! 30: 2010-01-03 00:00:00
! 31:
! 32: object(DatePeriod)#1 (6) {
! 33: ["start"]=>
! 34: object(DateTime)#2 (3) {
! 35: ["date"]=>
! 36: string(19) "2010-01-01 00:00:00"
! 37: ["timezone_type"]=>
! 38: int(3)
! 39: ["timezone"]=>
! 40: string(3) "UTC"
! 41: }
! 42: ["current"]=>
! 43: object(DateTime)#4 (3) {
! 44: ["date"]=>
! 45: string(19) "2010-01-04 00:00:00"
! 46: ["timezone_type"]=>
! 47: int(3)
! 48: ["timezone"]=>
! 49: string(3) "UTC"
! 50: }
! 51: ["end"]=>
! 52: NULL
! 53: ["interval"]=>
! 54: object(DateInterval)#5 (15) {
! 55: ["y"]=>
! 56: int(0)
! 57: ["m"]=>
! 58: int(0)
! 59: ["d"]=>
! 60: int(1)
! 61: ["h"]=>
! 62: int(0)
! 63: ["i"]=>
! 64: int(0)
! 65: ["s"]=>
! 66: int(0)
! 67: ["weekday"]=>
! 68: int(0)
! 69: ["weekday_behavior"]=>
! 70: int(0)
! 71: ["first_last_day_of"]=>
! 72: int(0)
! 73: ["invert"]=>
! 74: int(0)
! 75: ["days"]=>
! 76: bool(false)
! 77: ["special_type"]=>
! 78: int(0)
! 79: ["special_amount"]=>
! 80: int(0)
! 81: ["have_weekday_relative"]=>
! 82: int(0)
! 83: ["have_special_relative"]=>
! 84: int(0)
! 85: }
! 86: ["recurrences"]=>
! 87: int(3)
! 88: ["include_start_date"]=>
! 89: bool(true)
! 90: }
! 91: object(DatePeriod)#5 (6) {
! 92: ["start"]=>
! 93: object(DateTime)#10 (3) {
! 94: ["date"]=>
! 95: string(19) "2010-01-01 00:00:00"
! 96: ["timezone_type"]=>
! 97: int(3)
! 98: ["timezone"]=>
! 99: string(3) "UTC"
! 100: }
! 101: ["current"]=>
! 102: object(DateTime)#7 (3) {
! 103: ["date"]=>
! 104: string(19) "2010-01-04 00:00:00"
! 105: ["timezone_type"]=>
! 106: int(3)
! 107: ["timezone"]=>
! 108: string(3) "UTC"
! 109: }
! 110: ["end"]=>
! 111: NULL
! 112: ["interval"]=>
! 113: object(DateInterval)#8 (15) {
! 114: ["y"]=>
! 115: int(0)
! 116: ["m"]=>
! 117: int(0)
! 118: ["d"]=>
! 119: int(1)
! 120: ["h"]=>
! 121: int(0)
! 122: ["i"]=>
! 123: int(0)
! 124: ["s"]=>
! 125: int(0)
! 126: ["weekday"]=>
! 127: int(0)
! 128: ["weekday_behavior"]=>
! 129: int(0)
! 130: ["first_last_day_of"]=>
! 131: int(0)
! 132: ["invert"]=>
! 133: int(0)
! 134: ["days"]=>
! 135: int(0)
! 136: ["special_type"]=>
! 137: int(0)
! 138: ["special_amount"]=>
! 139: int(0)
! 140: ["have_weekday_relative"]=>
! 141: int(0)
! 142: ["have_special_relative"]=>
! 143: int(0)
! 144: }
! 145: ["recurrences"]=>
! 146: int(3)
! 147: ["include_start_date"]=>
! 148: bool(true)
! 149: }
! 150: Unserialized:
! 151: 2010-01-01 00:00:00
! 152: 2010-01-02 00:00:00
! 153: 2010-01-03 00:00:00
! 154: ==DONE==
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>