Skip to content

Commit f16143f

Browse files
committed
missing tests for bug #53437
1 parent 18403e4 commit f16143f

File tree

5 files changed

+251
-0
lines changed

5 files changed

+251
-0
lines changed

ext/date/tests/bug53437_var1.phpt

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
--TEST--
2+
Bug #53437 (Crash when using unserialized DatePeriod instance), variation 2
3+
--FILE--
4+
<?php
5+
$s = 'O:10:"DatePeriod":0:{}';
6+
7+
$dp = unserialize($s);
8+
9+
var_dump($dp);
10+
?>
11+
==DONE==
12+
--EXPECTF--
13+
Fatal error: Invalid serialization data for DatePeriod object in %sbug53437_var1.php on line %d

ext/date/tests/bug53437_var2.phpt

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
--TEST--
2+
Bug #53437 DateInterval basic serialization
3+
--FILE--
4+
<?php
5+
$di0 = new DateInterval('P2Y4DT6H8M');
6+
7+
$s = serialize($di0);
8+
9+
$di1 = unserialize($s);
10+
11+
var_dump($di0, $di1);
12+
13+
?>
14+
==DONE==
15+
--EXPECT--
16+
object(DateInterval)#1 (15) {
17+
["y"]=>
18+
int(2)
19+
["m"]=>
20+
int(0)
21+
["d"]=>
22+
int(4)
23+
["h"]=>
24+
int(6)
25+
["i"]=>
26+
int(8)
27+
["s"]=>
28+
int(0)
29+
["weekday"]=>
30+
int(0)
31+
["weekday_behavior"]=>
32+
int(0)
33+
["first_last_day_of"]=>
34+
int(0)
35+
["invert"]=>
36+
int(0)
37+
["days"]=>
38+
bool(false)
39+
["special_type"]=>
40+
int(0)
41+
["special_amount"]=>
42+
int(0)
43+
["have_weekday_relative"]=>
44+
int(0)
45+
["have_special_relative"]=>
46+
int(0)
47+
}
48+
object(DateInterval)#2 (15) {
49+
["y"]=>
50+
int(2)
51+
["m"]=>
52+
int(0)
53+
["d"]=>
54+
int(4)
55+
["h"]=>
56+
int(6)
57+
["i"]=>
58+
int(8)
59+
["s"]=>
60+
int(0)
61+
["weekday"]=>
62+
int(0)
63+
["weekday_behavior"]=>
64+
int(0)
65+
["first_last_day_of"]=>
66+
int(0)
67+
["invert"]=>
68+
int(0)
69+
["days"]=>
70+
int(0)
71+
["special_type"]=>
72+
int(0)
73+
["special_amount"]=>
74+
int(0)
75+
["have_weekday_relative"]=>
76+
int(0)
77+
["have_special_relative"]=>
78+
int(0)
79+
}
80+
==DONE==

ext/date/tests/bug53437_var3.phpt

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
--TEST--
2+
Bug #53437 DateInterval unserialize bad data, 32 bit
3+
--SKIPIF--
4+
<?php if (PHP_INT_SIZE != 4) { die('skip 32 bit only'); } ?>
5+
--FILE--
6+
<?php
7+
$s = 'O:12:"DateInterval":15:{s:1:"y";s:1:"2";s:1:"m";s:1:"0";s:1:"d";s:3:"bla";s:1:"h";s:1:"6";s:1:"i";s:1:"8";s:1:"s";s:1:"0";s:7:"weekday";i:10;s:16:"weekday_behavior";i:10;s:17:"first_last_day_of";i:0;s:6:"invert";i:0;s:4:"days";s:4:"aoeu";s:12:"special_type";i:0;s:14:"special_amount";s:21:"234523452345234532455";s:21:"have_weekday_relative";i:21474836489;s:21:"have_special_relative";s:3:"bla";}';
8+
9+
$di = unserialize($s);
10+
var_dump($di);
11+
12+
?>
13+
==DONE==
14+
--EXPECT--
15+
object(DateInterval)#1 (15) {
16+
["y"]=>
17+
int(2)
18+
["m"]=>
19+
int(0)
20+
["d"]=>
21+
int(0)
22+
["h"]=>
23+
int(6)
24+
["i"]=>
25+
int(8)
26+
["s"]=>
27+
int(0)
28+
["weekday"]=>
29+
int(10)
30+
["weekday_behavior"]=>
31+
int(10)
32+
["first_last_day_of"]=>
33+
int(0)
34+
["invert"]=>
35+
int(0)
36+
["days"]=>
37+
int(0)
38+
["special_type"]=>
39+
int(0)
40+
["special_amount"]=>
41+
int(-1)
42+
["have_weekday_relative"]=>
43+
int(9)
44+
["have_special_relative"]=>
45+
int(0)
46+
}
47+
==DONE==

ext/date/tests/bug53437_var4.phpt

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
--TEST--
2+
Bug #53437 (Check that var_dump out is the same using the whole object or it's single properties), variation 4
3+
--INI--
4+
date.timezone = Europe/Berlin
5+
--FILE--
6+
<?php
7+
$dt = new DateTime('2009-10-11');
8+
9+
$df = $dt->diff(new DateTime('2009-10-13'));
10+
11+
var_dump($df,
12+
$df->y,
13+
$df->m,
14+
$df->d,
15+
$df->h,
16+
$df->i,
17+
$df->s,
18+
$df->invert,
19+
$df->days);
20+
21+
?>
22+
==DONE==
23+
--EXPECTF--
24+
object(DateInterval)#%d (15) {
25+
["y"]=>
26+
int(0)
27+
["m"]=>
28+
int(0)
29+
["d"]=>
30+
int(2)
31+
["h"]=>
32+
int(0)
33+
["i"]=>
34+
int(0)
35+
["s"]=>
36+
int(0)
37+
["weekday"]=>
38+
int(0)
39+
["weekday_behavior"]=>
40+
int(0)
41+
["first_last_day_of"]=>
42+
int(0)
43+
["invert"]=>
44+
int(0)
45+
["days"]=>
46+
int(2)
47+
["special_type"]=>
48+
int(0)
49+
["special_amount"]=>
50+
int(0)
51+
["have_weekday_relative"]=>
52+
int(0)
53+
["have_special_relative"]=>
54+
int(0)
55+
}
56+
int(0)
57+
int(0)
58+
int(2)
59+
int(0)
60+
int(0)
61+
int(0)
62+
int(0)
63+
int(2)
64+
==DONE==

ext/date/tests/bug53437_var5.phpt

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
--TEST--
2+
Bug #53437 DateInterval unserialize bad data, 64 bit
3+
--SKIPIF--
4+
<?php if (PHP_INT_SIZE != 8) { die('skip true 64 bit only'); } ?>
5+
--FILE--
6+
<?php
7+
$s = 'O:12:"DateInterval":15:{s:1:"y";s:1:"2";s:1:"m";s:1:"0";s:1:"d";s:3:"bla";s:1:"h";s:1:"6";s:1:"i";s:1:"8";s:1:"s";s:1:"0";s:7:"weekday";i:10;s:16:"weekday_behavior";i:10;s:17:"first_last_day_of";i:0;s:6:"invert";i:0;s:4:"days";s:4:"aoeu";s:12:"special_type";i:0;s:14:"special_amount";s:21:"234523452345234532455";s:21:"have_weekday_relative";i:21474836489;s:21:"have_special_relative";s:3:"bla";}';
8+
9+
$di = unserialize($s);
10+
var_dump($di);
11+
12+
?>
13+
==DONE==
14+
--EXPECT--
15+
object(DateInterval)#1 (15) {
16+
["y"]=>
17+
int(2)
18+
["m"]=>
19+
int(0)
20+
["d"]=>
21+
int(0)
22+
["h"]=>
23+
int(6)
24+
["i"]=>
25+
int(8)
26+
["s"]=>
27+
int(0)
28+
["weekday"]=>
29+
int(10)
30+
["weekday_behavior"]=>
31+
int(10)
32+
["first_last_day_of"]=>
33+
int(0)
34+
["invert"]=>
35+
int(0)
36+
["days"]=>
37+
int(0)
38+
["special_type"]=>
39+
int(0)
40+
["special_amount"]=>
41+
int(9223372036854775807)
42+
["have_weekday_relative"]=>
43+
int(9)
44+
["have_special_relative"]=>
45+
int(0)
46+
}
47+
==DONE==

0 commit comments

Comments
 (0)