diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | test/ruby/test_array.rb | 10 |
2 files changed, 14 insertions, 2 deletions
@@ -1,3 +1,9 @@ +Tue Mar 8 23:37:07 2016 Charles Oliver Nutter <headius@headius.com> + + * test/ruby/test_array.rb: split out the test for no stack error + on large input for test_permutation, test_repeated_permutation, + and test_repeated_combination, and make them all timeout:30. + Tue Mar 8 17:20:21 2016 NARUSE, Yui <naruse@ruby-lang.org> * intern.h (rb_divmod): assume compilers `/` and `%` comply C99 diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index dc276e035b..9364a2731a 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -1819,7 +1819,9 @@ class TestArray < Test::Unit::TestCase bug3708 = '[ruby-dev:42067]' assert_equal(b, @cls[0, 1, 2, 3, 4][1, 4].permutation.to_a, bug3708) + end + def test_permutation_stack_error bug9932 = '[ruby-core:63103] [Bug #9932]' assert_separately([], <<-"end;", timeout: 30) # do assert_nothing_raised(SystemStackError, "#{bug9932}") do @@ -1851,8 +1853,10 @@ class TestArray < Test::Unit::TestCase a = @cls[0, 1, 2, 3, 4][1, 4].repeated_permutation(2) assert_empty(a.reject {|x| !x.include?(0)}) + end - assert_separately([], <<-"end;") # do + def test_repeated_permutation_stack_error + assert_separately([], <<-"end;", timeout: 30) # do assert_nothing_raised(SystemStackError) do assert_equal(:ok, Array.new(100_000, nil).repeated_permutation(500_000) {break :ok}) end @@ -1886,8 +1890,10 @@ class TestArray < Test::Unit::TestCase a = @cls[0, 1, 2, 3, 4][1, 4].repeated_combination(2) assert_empty(a.reject {|x| !x.include?(0)}) + end - assert_separately([], <<-"end;") # do + def test_repeated_combination_stack_error + assert_separately([], <<-"end;", timeout: 20) # do assert_nothing_raised(SystemStackError) do assert_equal(:ok, Array.new(100_000, nil).repeated_combination(500_000) {break :ok}) end |