From 0863013b967b5d9c97c739a0311c3c0d9a3f6b5f Mon Sep 17 00:00:00 2001 From: mame Date: Tue, 2 Dec 2008 17:26:31 +0000 Subject: [PATCH] * test/ruby/test_string.rb: add some tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ test/ruby/test_string.rb | 43 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5876e0309c..9dc53e888e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Wed Dec 3 02:26:07 2008 Yusuke Endoh + + * test/ruby/test_string.rb: add some tests. + Wed Dec 3 02:04:21 2008 Yusuke Endoh * ext/pty/pty.c (Init_pty): fix typo. diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index cd32709658..eba0256439 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -1714,4 +1714,47 @@ class TestString < Test::Unit::TestCase def test_gsub_enumerator assert_normal_exit %q{"abc".gsub(/./).next}, "[ruby-dev:34828]" end + + def test_clear_nonasciicompat + assert_equal("", "\u3042".encode("ISO-2022-JP").clear) + end + + def test_try_convert + assert_equal(nil, String.try_convert(1)) + assert_equal("foo", String.try_convert("foo")) + end + + def test_substr_negative_begin + assert_equal("\u3042", ("\u3042" * 100)[-1]) + end + + def test_compare_different_encoding_string + s1 = "\xff".force_encoding("UTF-8") + s2 = "\xff".force_encoding("ISO-2022-JP") + #assert_equal([-1, 1], [s1 <=> s2, s2 <=> s1].sort) + end + + def test_casecmp + assert_equal(1, "\u3042B".casecmp("\u3042a")) + end + + def test_upcase2 + assert_equal("\u3042AB", "\u3042aB".upcase) + end + + def test_downcase2 + assert_equal("\u3042ab", "\u3042aB".downcase) + end + + def test_rstrip + assert_equal("\u3042", "\u3042 ".rstrip) + assert_raise(Encoding::CompatibilityError) { "\u3042".encode("ISO-2022-JP").rstrip } + end + + def test_symbol_table_overflow + return + assert_in_out_err([], <<-INPUT, [], /symbol table overflow \(symbol [a-z]{8}\) \(RuntimeError\)/) + ("aaaaaaaa".."zzzzzzzz").each {|s| s.to_sym } + INPUT + end end