From 241902e7091a0ad514683488020011e827ad7750 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 29 May 2012 08:28:09 +0000 Subject: strftime.c: fix locale modifier partially borrowed from ext/date. * strftime.c (rb_strftime_with_timespec): check conversion with locale modifier. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_time.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'test/ruby/test_time.rb') diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb index a5087bcbfa..ae1221202b 100644 --- a/test/ruby/test_time.rb +++ b/test/ruby/test_time.rb @@ -613,6 +613,11 @@ class TestTime < Test::Unit::TestCase assert_equal(" 2", t.strftime("%_l")) end + def test_strftime_invalid_flags + t = Time.mktime(2001, 10, 1, 2, 0, 0) + assert_equal("%4^p", t.strftime("%4^p"), 'prec after flag') + end + def test_strftime_year t = Time.utc(1,1,4) assert_equal("0001", t.strftime("%Y")) @@ -728,6 +733,19 @@ class TestTime < Test::Unit::TestCase assert_equal("-000:55:00", t.strftime("%10::z"), bug6323) end + def test_strftime_invalid_modifier + t = T2000.getlocal("+09:00") + assert_equal("%:y", t.strftime("%:y"), 'invalid conversion after : modifier') + assert_equal("%:0z", t.strftime("%:0z"), 'flag after : modifier') + assert_equal("%:10z", t.strftime("%:10z"), 'prec after : modifier') + assert_equal("%Ob", t.strftime("%Ob"), 'invalid conversion after locale modifier') + assert_equal("%Eb", t.strftime("%Eb"), 'invalid conversion after locale modifier') + assert_equal("%O0y", t.strftime("%O0y"), 'flag after locale modifier') + assert_equal("%E0y", t.strftime("%E0y"), 'flag after locale modifier') + assert_equal("%O10y", t.strftime("%O10y"), 'prec after locale modifier') + assert_equal("%E10y", t.strftime("%E10y"), 'prec after locale modifier') + end + def test_delegate d1 = SimpleDelegator.new(t1 = Time.utc(2000)) d2 = SimpleDelegator.new(t2 = Time.utc(2001)) -- cgit v1.2.3