diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/-ext-/struct/test_duplicate.rb | 22 | ||||
-rw-r--r-- | test/ruby/test_struct.rb | 7 |
2 files changed, 29 insertions, 0 deletions
diff --git a/test/-ext-/struct/test_duplicate.rb b/test/-ext-/struct/test_duplicate.rb new file mode 100644 index 0000000000..77d61988b6 --- /dev/null +++ b/test/-ext-/struct/test_duplicate.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: false +require 'test/unit' +require "-test-/struct" + +class Bug::Struct::Test_Duplicate < Test::Unit::TestCase + def test_new_dupilicate + bug12291 = '[ruby-core:74971] [Bug #12291]' + assert_raise_with_message(ArgumentError, /duplicate member/, bug12291) { + Bug::Struct.new_duplicate(nil, "a") + } + assert_raise_with_message(ArgumentError, /duplicate member/, bug12291) { + Bug::Struct.new_duplicate("X", "a") + } + end + + def test_new_dupilicate_under + bug12291 = '[ruby-core:74971] [Bug #12291]' + assert_raise_with_message(ArgumentError, /duplicate member/, bug12291) { + Bug::Struct.new_duplicate_under("x", "a") + } + end +end diff --git a/test/ruby/test_struct.rb b/test/ruby/test_struct.rb index 38632a1981..1223d4b816 100644 --- a/test/ruby/test_struct.rb +++ b/test/ruby/test_struct.rb @@ -367,6 +367,13 @@ module TestStruct assert_nil(o.dig(:b, 0)) end + def test_new_dupilicate + bug12291 = '[ruby-core:74971] [Bug #12291]' + assert_raise_with_message(ArgumentError, /duplicate member/, bug12291) { + @Struct.new(:a, :a) + } + end + class TopStruct < Test::Unit::TestCase include TestStruct |