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