xref: /PHP-7.4/ext/date/tests/bug52808.phpt (revision 55626549)
1--TEST--
2Bug #52808 (Segfault when specifying interval as two dates)
3--FILE--
4<?php
5date_default_timezone_set('Europe/Oslo');
6$intervals = array(
7	"2008-05-11T15:30:00Z/2007-03-01T13:00:00Z",
8	"2007-05-11T15:30:00Z/2008-03-01T13:00:00Z",
9	"2007-05-11T15:30:00Z 2008-03-01T13:00:00Z",
10	"2007-05-11T15:30:00Z/",
11	"2007-05-11T15:30:00Z",
12	"2007-05-11T15:30:00Z/:00Z",
13);
14foreach($intervals as $iv) {
15    try
16    {
17    	$di = new DateInterval($iv);
18    	var_dump($di);
19    }
20    catch ( Exception $e )
21    {
22    	echo $e->getMessage(), "\n";
23    }
24}
25echo "==DONE==\n";
26?>
27--EXPECTF--
28object(DateInterval)#%d (16) {
29  ["y"]=>
30  int(1)
31  ["m"]=>
32  int(2)
33  ["d"]=>
34  int(10)
35  ["h"]=>
36  int(2)
37  ["i"]=>
38  int(30)
39  ["s"]=>
40  int(0)
41  ["f"]=>
42  float(0)
43  ["weekday"]=>
44  int(0)
45  ["weekday_behavior"]=>
46  int(0)
47  ["first_last_day_of"]=>
48  int(0)
49  ["invert"]=>
50  int(1)
51  ["days"]=>
52  int(437)
53  ["special_type"]=>
54  int(0)
55  ["special_amount"]=>
56  int(0)
57  ["have_weekday_relative"]=>
58  int(0)
59  ["have_special_relative"]=>
60  int(0)
61}
62object(DateInterval)#%d (16) {
63  ["y"]=>
64  int(0)
65  ["m"]=>
66  int(9)
67  ["d"]=>
68  int(18)
69  ["h"]=>
70  int(21)
71  ["i"]=>
72  int(30)
73  ["s"]=>
74  int(0)
75  ["f"]=>
76  float(0)
77  ["weekday"]=>
78  int(0)
79  ["weekday_behavior"]=>
80  int(0)
81  ["first_last_day_of"]=>
82  int(0)
83  ["invert"]=>
84  int(0)
85  ["days"]=>
86  int(294)
87  ["special_type"]=>
88  int(0)
89  ["special_amount"]=>
90  int(0)
91  ["have_weekday_relative"]=>
92  int(0)
93  ["have_special_relative"]=>
94  int(0)
95}
96object(DateInterval)#%d (16) {
97  ["y"]=>
98  int(0)
99  ["m"]=>
100  int(9)
101  ["d"]=>
102  int(18)
103  ["h"]=>
104  int(21)
105  ["i"]=>
106  int(30)
107  ["s"]=>
108  int(0)
109  ["f"]=>
110  float(0)
111  ["weekday"]=>
112  int(0)
113  ["weekday_behavior"]=>
114  int(0)
115  ["first_last_day_of"]=>
116  int(0)
117  ["invert"]=>
118  int(0)
119  ["days"]=>
120  int(294)
121  ["special_type"]=>
122  int(0)
123  ["special_amount"]=>
124  int(0)
125  ["have_weekday_relative"]=>
126  int(0)
127  ["have_special_relative"]=>
128  int(0)
129}
130DateInterval::__construct(): Failed to parse interval (2007-05-11T15:30:00Z/)
131DateInterval::__construct(): Failed to parse interval (2007-05-11T15:30:00Z)
132DateInterval::__construct(): Unknown or bad format (2007-05-11T15:30:00Z/:00Z)
133==DONE==
134