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>