summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authornaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-02-17 03:21:35 +0000
committernaruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-02-17 03:21:35 +0000
commitd46e2aea718920f535c1dc701cbd6b85a8e1fcac (patch)
tree3921a08d4b5ab5f3334abf34b3e4670f7486107f /test
parenta8f43986020ff906a99ba453521ab7c8b3f7e0d2 (diff)
* string.c (rb_str_init): introduce String.new(capacity: size)
[Feature #12024] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/-ext-/string/test_capacity.rb19
-rw-r--r--test/ruby/test_string.rb12
2 files changed, 28 insertions, 3 deletions
diff --git a/test/-ext-/string/test_capacity.rb b/test/-ext-/string/test_capacity.rb
index 54f3caf32e..48d2deadee 100644
--- a/test/-ext-/string/test_capacity.rb
+++ b/test/-ext-/string/test_capacity.rb
@@ -4,16 +4,29 @@ require '-test-/string'
require 'rbconfig/sizeof'
class Test_StringCapacity < Test::Unit::TestCase
+ def capa(str)
+ Bug::String.capacity(str)
+ end
+
def test_capacity_embeded
size = RbConfig::SIZEOF['void*'] * 3 - 1
- assert_equal size, Bug::String.capacity('foo')
+ assert_equal size, capa('foo')
end
def test_capacity_shared
- assert_equal 0, Bug::String.capacity(:abcdefghijklmnopqrstuvwxyz.to_s)
+ assert_equal 0, capa(:abcdefghijklmnopqrstuvwxyz.to_s)
end
def test_capacity_normal
- assert_equal 128, Bug::String.capacity('1'*128)
+ assert_equal 128, capa('1'*128)
+ end
+
+ def test_s_new_capacity
+ assert_equal("", String.new(capacity: 1000))
+ assert_equal(String, String.new(capacity: 1000).class)
+ assert_equal(10000, capa(String.new(capacity: 10000)))
+
+ assert_equal("", String.new(capacity: -1000))
+ assert_equal(capa(String.new(capacity: -10000)), capa(String.new(capacity: -1000)))
end
end
diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb
index f1633e3d7b..339e8728ab 100644
--- a/test/ruby/test_string.rb
+++ b/test/ruby/test_string.rb
@@ -45,6 +45,18 @@ class TestString < Test::Unit::TestCase
src.force_encoding("euc-jp")
assert_equal(src, S(src, encoding: "utf-8"))
assert_equal(Encoding::UTF_8, S(src, encoding: "utf-8").encoding)
+
+ assert_equal("", S(capacity: 1000))
+ assert_equal(Encoding::ASCII_8BIT, S(capacity: 1000).encoding)
+
+ assert_equal("", S(capacity: 1000, encoding: "euc-jp"))
+ assert_equal(Encoding::EUC_JP, S(capacity: 1000, encoding: "euc-jp").encoding)
+
+ assert_equal("", S("", capacity: 1000))
+ assert_equal(__ENCODING__, S("", capacity: 1000).encoding)
+
+ assert_equal("", S("", capacity: 1000, encoding: "euc-jp"))
+ assert_equal(Encoding::EUC_JP, S("", capacity: 1000, encoding: "euc-jp").encoding)
end
def test_AREF # '[]'