derick Sun Jul 3 10:36:59 2005 EDT
Added files:
/php-src/ext/date/tests bug20382-1.phpt bug21966.phpt bug27719.phpt
mktime-1.phpt mktime-2.phpt
Removed files:
/php-src/ext/standard/tests/time 003.phpt bug21966.phpt
bug27719.phpt mktime.phpt
/php-src/ext/date/tests bug20382.phpt
Modified files:
/php-src/ext/date php_date.c
Log:
- Move mktime/gmmktime related tests from ext/standard to ext/date.
http://cvs.php.net/diff.php/php-src/ext/date/php_date.c?r1=1.21&r2=1.22&ty=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.21 php-src/ext/date/php_date.c:1.22
--- php-src/ext/date/php_date.c:1.21 Sun Jul 3 10:27:31 2005
+++ php-src/ext/date/php_date.c Sun Jul 3 10:36:59 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_date.c,v 1.21 2005/07/03 14:27:31 derick Exp $ */
+/* $Id: php_date.c,v 1.22 2005/07/03 14:36:59 derick Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -470,6 +470,7 @@
if (dst == 0 && tmp_offset->is_dst == 1) {
adjust_seconds = +3600;
}
+ timelib_time_offset_dtor(tmp_offset);
}
}
/* Clean up and return */
http://cvs.php.net/co.php/php-src/ext/date/tests/bug20382-1.phpt?r=1.1&p=1
Index: php-src/ext/date/tests/bug20382-1.phpt
+++ php-src/ext/date/tests/bug20382-1.phpt
--TEST--
Bug #20382 [1] (strtotime ("Monday", $date) produces wrong result on DST
changeover)
--FILE--
<?php
putenv("TZ=Europe/Amsterdam");
$tStamp = mktime (17, 17, 17, 10, 27, 2004);
echo "tStamp=". date("l Y-m-d H:i:s T", $tStamp). "\n";
$strtotime_timestamp = strtotime ("Monday", $tStamp);
echo "result=". date("l Y-m-d H:i:s T", $strtotime_timestamp). "\n";
echo "wanted=Monday 2004-11-01 00:00:00 CET\n";
?>
--EXPECT--
tStamp=Wednesday 2004-10-27 17:17:17 CEST
result=Monday 2004-11-01 00:00:00 CET
wanted=Monday 2004-11-01 00:00:00 CET
http://cvs.php.net/co.php/php-src/ext/date/tests/bug21966.phpt?r=1.1&p=1
Index: php-src/ext/date/tests/bug21966.phpt
+++ php-src/ext/date/tests/bug21966.phpt
--TEST--
Bug #21966 (date() or mktime() returning bad value for mktime month param of
'2')
--FILE--
<?php
putenv("TZ=Europe/London");
echo '27/3/04 = ' . strval(mktime(0,0,0,3,27,2004)) . "\n"; // 1080345600
echo '28/3/04 = ' . strval(mktime(0,0,0,3,28,2004)) . "\n"; // -3662 -
should be 108043200
echo '28/3/04 = ' . strval(mktime(2,0,0,3,28,2004)) . "\n"; // 1080435600
echo '29/3/04 = ' . strval(mktime(0,0,0,3,29,2004)) . "\n"; // 1080514800
echo '30/3/04 = ' . strval(mktime(0,0,0,3,30,2004)) . "\n"; // 1080601200
?>
--EXPECT--
27/3/04 = 1080345600
28/3/04 = 1080432000
28/3/04 = 1080435600
29/3/04 = 1080514800
30/3/04 = 1080601200
http://cvs.php.net/co.php/php-src/ext/date/tests/bug27719.phpt?r=1.1&p=1
Index: php-src/ext/date/tests/bug27719.phpt
+++ php-src/ext/date/tests/bug27719.phpt
--TEST--
Bug #27719 (mktime returns incorrect timestamp for dst days)
--INI--
error_reporting=2047
--FILE--
<?php /* $Id: bug27719.phpt,v 1.1 2005/07/03 14:36:59 derick Exp $ */
putenv("TZ=EST"); // No DST
$a = mktime(0, 0, 0, 4, 4, 2004, 0);
$b = mktime(0, 0, 0, 4, 4, 2004, 1);
$c = mktime(0, 0, 0, 4, 4, 2004, -1);
echo "$a ".date("m/d/y h:i:s\n",$a);
echo "$b ".date("m/d/y h:i:s\n",$b);
echo "$c ".date("m/d/y h:i:s\n",$c);
echo "\n";
putenv("TZ=EST5EDT"); // DST not in effect
$a = mktime(0, 0, 0, 2, 4, 2004, 0);
$b = mktime(0, 0, 0, 2, 4, 2004, 1);
$c = mktime(0, 0, 0, 2, 4, 2004, -1);
echo "$a ".date("m/d/y h:i:s\n",$a);
echo "$b ".date("m/d/y h:i:s\n",$b);
echo "$c ".date("m/d/y h:i:s\n",$c);
echo "\n";
putenv("TZ=EST5EDT"); // Just before DST changeover
$a = mktime(0, 0, 0, 4, 4, 2004, 0);
$b = mktime(0, 0, 0, 4, 4, 2004, 1);
$c = mktime(0, 0, 0, 4, 4, 2004, -1);
echo "$a ".date("m/d/y h:i:s\n",$a);
echo "$b ".date("m/d/y h:i:s\n",$b);
echo "$c ".date("m/d/y h:i:s\n",$c);
echo "\n";
putenv("TZ=EST5EDT"); // Just after DST changeover
$a = mktime(3, 0, 0, 4, 4, 2004, 0);
$b = mktime(3, 0, 0, 4, 4, 2004, 1);
$c = mktime(3, 0, 0, 4, 4, 2004, -1);
echo "$a ".date("m/d/y h:i:s\n",$a);
echo "$b ".date("m/d/y h:i:s\n",$b);
echo "$c ".date("m/d/y h:i:s\n",$c);
echo "\n";
putenv("TZ=EST5EDT"); // DST in effect
$a = mktime(0, 0, 0, 6, 4, 2004, 0);
$b = mktime(0, 0, 0, 6, 4, 2004, 1);
$c = mktime(0, 0, 0, 6, 4, 2004, -1);
echo "$a ".date("m/d/y h:i:s\n",$a);
echo "$b ".date("m/d/y h:i:s\n",$b);
echo "$c ".date("m/d/y h:i:s\n",$c);
echo "\n";
?>
--EXPECTF--
1081054800 04/04/04 12:00:00
%s
1081054800 04/04/04 12:00:00
1075870800 02/04/04 12:00:00
1075867200 02/03/04 11:00:00
1075870800 02/04/04 12:00:00
1081054800 04/04/04 12:00:00
1081051200 04/03/04 11:00:00
1081054800 04/04/04 12:00:00
1081065600 04/04/04 04:00:00
1081062000 04/04/04 03:00:00
1081062000 04/04/04 03:00:00
1086325200 06/04/04 01:00:00
1086321600 06/04/04 12:00:00
1086321600 06/04/04 12:00:00
http://cvs.php.net/co.php/php-src/ext/date/tests/mktime-1.phpt?r=1.1&p=1
Index: php-src/ext/date/tests/mktime-1.phpt
+++ php-src/ext/date/tests/mktime-1.phpt
--TEST--
Check for mktime with out-of-range parameters
--INI--
error_reporting=2047
--FILE--
<?php
# MacOS/X libc implementation doesn't treat out-of-range values
# the same way other unices do (Bug# 10686) so some extra code
# was added to datetime.c to take care of this
echo date("Y-m-d", mktime( 12, 0, 0, 3, 0, 2000)) ."\n";
echo date("Y-m-d", mktime( 12, 0, 0, 3, -1, 2000)) ."\n";
echo date("Y-m-d", mktime( 12, 0, 0, 2, 29, 2000)) ."\n";
echo date("Y-m-d", mktime( 12, 0, 0, 3, 0, 2001)) ."\n";
echo date("Y-m-d", mktime( 12, 0, 0, 2, 29, 2001)) ."\n";
echo date("Y-m-d", mktime( 12, 0, 0, 0, 0, 2000)) ."\n";
putenv("TZ=Europe/London");
echo date("Y-m-d H:i:s", mktime(12,0,0,3,+90,2000,-1))."\n";
echo date("Y-m-d H:i:s", mktime(12,0,0,3,+90,2000,0))."\n";
echo date("Y-m-d H:i:s", mktime(12,0,0,3,+90,2000,1))."\n";
echo date("Y-m-d H:i:s", mktime(12,0,0,5,-90,2000,-1))."\n";
echo date("Y-m-d H:i:s", mktime(12,0,0,5,-90,2000,0))."\n";
echo date("Y-m-d H:i:s", mktime(12,0,0,5,-90,2000,1))."\n";
echo date("Y-m-d H:i:s", mktime(12,0,0,5,-1,2000,-1))."\n";
echo date("Y-m-d H:i:s", mktime(12,0,0,5,-1,2000,0))."\n";
echo date("Y-m-d H:i:s", mktime(12,0,0,5,-1,2000,1))."\n";
?>
--EXPECT--
2000-02-29
2000-02-28
2000-02-29
2001-02-28
2001-03-01
1999-11-30
2000-05-29 12:00:00
2000-05-29 13:00:00
2000-05-29 12:00:00
2000-01-31 12:00:00
2000-01-31 12:00:00
2000-01-31 11:00:00
2000-04-29 12:00:00
2000-04-29 13:00:00
2000-04-29 12:00:00
http://cvs.php.net/co.php/php-src/ext/date/tests/mktime-2.phpt?r=1.1&p=1
Index: php-src/ext/date/tests/mktime-2.phpt
+++ php-src/ext/date/tests/mktime-2.phpt
--TEST--
mktime()
--INI--
error_reporting=2047
--FILE--
<?php /* $Id: mktime-2.phpt,v 1.1 2005/07/03 14:36:59 derick Exp $ */
$timezones = array(
'GMT0',
'Europe/London'
);
foreach($timezones as $timezone)
{
putenv('TZ='.$timezone);
/* status of daylight saving time unknown */
var_dump(mktime(0, 0, 0, 1, 1, 2002));
/* status of daylight saving time unknown */
var_dump(mktime(0, 0, 0, 1, 1, 2002, -1));
/* daylight saving time is not in effect */
var_dump(mktime(0, 0, 0, 1, 1, 2002, 0));
/* daylight saving time is in effect */
var_dump(mktime(0, 0, 0, 1, 1, 2002, 1));
/* status of daylight saving time unknown */
var_dump(mktime(0, 0, 0, 7, 1, 2002));
/* status of daylight saving time unknown */
var_dump(mktime(0, 0, 0, 7, 1, 2002, -1));
/* daylight saving time is not in effect */
var_dump(mktime(0, 0, 0, 7, 1, 2002, 0));
/* daylight saving time is in effect */
var_dump(mktime(0, 0, 0, 7, 1, 2002, 1));
}
?>
--EXPECTF--
int(1009843200)
int(1009843200)
int(1009843200)
int(%s)
int(1025481600)
int(1025481600)
int(1025481600)
int(%s)
int(1009843200)
int(1009843200)
int(1009843200)
int(1009839600)
int(1025478000)
int(1025478000)
int(1025481600)
int(1025478000)
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php