1require 'test/unit'
2require "-test-/string/string"
3
4class Test_StrSetLen < Test::Unit::TestCase
5  def setup
6    @s0 = [*"a".."z"].join("").freeze
7    @s1 = Bug::String.new(@s0)
8  end
9
10  def teardown
11    orig = [*"a".."z"].join("")
12    assert_equal(orig, @s0)
13  end
14
15  def test_non_shared
16    @s1.modify!
17    assert_equal("abc", @s1.set_len(3))
18  end
19
20  def test_shared
21    assert_raise(RuntimeError) {
22      assert_equal("abc", @s1.set_len(3))
23    }
24  end
25end
26