summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--ext/date/date_core.c2
-rw-r--r--test/date/test_date_parse.rb6
-rw-r--r--test/date/test_date_strptime.rb6
4 files changed, 17 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index a548c98d62..7f726d5408 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Aug 22 19:41:19 2012 Tadayoshi Funaba <tadf@dotrb.org>
+
+ * ext/date/date_core.c: [ruby-core:47226].
+
Wed Aug 22 16:57:04 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/mkmf.rb (configuration): extact least ruby headers list as
diff --git a/ext/date/date_core.c b/ext/date/date_core.c
index 762a0b7472..3a2fbb28d8 100644
--- a/ext/date/date_core.c
+++ b/ext/date/date_core.c
@@ -7976,7 +7976,7 @@ dt_new_by_frags(VALUE klass, VALUE hash, VALUE sg)
set_hash("min", INT2FIX(0));
if (NIL_P(ref_hash("sec")))
set_hash("sec", INT2FIX(0));
- else if (f_gt_p(ref_hash("sec"), INT2FIX(59)))
+ else if (f_eqeq_p(ref_hash("sec"), INT2FIX(60)))
set_hash("sec", INT2FIX(59));
}
else {
diff --git a/test/date/test_date_parse.rb b/test/date/test_date_parse.rb
index 1504473938..f2cfb6f8e6 100644
--- a/test/date/test_date_parse.rb
+++ b/test/date/test_date_parse.rb
@@ -664,6 +664,12 @@ class TestDateParse < Test::Unit::TestCase
assert_raise(ArgumentError) do
DateTime.parse('2001-02-29T23:59:60')
end
+ assert_nothing_raised(ArgumentError) do
+ DateTime.parse('2001-03-01T23:59:60')
+ end
+ assert_raise(ArgumentError) do
+ DateTime.parse('2001-03-01T23:59:61')
+ end
assert_raise(ArgumentError) do
Date.parse('23:55')
end
diff --git a/test/date/test_date_strptime.rb b/test/date/test_date_strptime.rb
index ceb649031f..1924c4b78e 100644
--- a/test/date/test_date_strptime.rb
+++ b/test/date/test_date_strptime.rb
@@ -467,6 +467,12 @@ class TestDateStrptime < Test::Unit::TestCase
assert_raise(ArgumentError) do
DateTime.strptime('2001-02-29T23:59:60', '%FT%T')
end
+ assert_nothing_raised(ArgumentError) do
+ DateTime.strptime('2001-03-01T23:59:60', '%FT%T')
+ end
+ assert_raise(ArgumentError) do
+ DateTime.strptime('2001-03-01T23:59:61', '%FT%T')
+ end
assert_raise(ArgumentError) do
Date.strptime('23:55', '%H:%M')
end