Don't use 1906 to test strptime/mktime because it yields a negative time_t value
authorPaul "LeoNerd" Evans <leonerd@leonerd.org.uk>
Sat, 28 Jan 2012 15:02:48 +0000 (15:02 +0000)
committerÆvar Arnfjörð Bjarmason <avar@cpan.org>
Sat, 11 Feb 2012 22:22:24 +0000 (22:22 +0000)
ext/POSIX/t/time.t

index 15605bf..3d38610 100644 (file)
@@ -74,8 +74,9 @@ is_deeply(\@time, [56, 34, 12, 18, 12-1, 2011-1900, 0, 351, 0], 'strptime() all
 @time = POSIX::strptime("2011-12-18", "%Y-%m-%d", 1, 23, 4);
 is_deeply(\@time, [1, 23, 4, 18, 12-1, 2011-1900, 0, 351, 0], 'strptime() all date fields with passed time');
 
-@time = POSIX::strptime("12:34:56", "%H:%M:%S", 1, 2, 3, 4, 5, 6);
-is_deeply(\@time, [56, 34, 12, 4, 5, 6, 1, 154, 0], 'strptime() all date fields with passed time');
+# tm_year == 6 => 1906, which is a negative time_t. Lets use 106 as 2006 instead
+@time = POSIX::strptime("12:34:56", "%H:%M:%S", 1, 2, 3, 4, 5, 106);
+is_deeply(\@time, [56, 34, 12, 4, 5, 106, 0, 154, 1], 'strptime() all date fields with passed time');
 
 @time = POSIX::strptime("July 4", "%b %d");
 is_deeply([@time[3,4]], [4, 7-1], 'strptime() partial yields correct mday/mon');