summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--bootstraptest/test_thread.rb16
2 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a30304f491..846daeaf2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Jun 23 15:38:07 2013 Koichi Sasada <ko1@atdot.net>
+
+ * bootstraptest/test_thread.rb: rescue resource limitation errors.
+
Sun Jun 23 08:19:27 2013 Tanaka Akira <akr@fsij.org>
* bignum.c (integer_unpack_single_bdigit): Extracted from
diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb
index 121def8b42..c2b2b8ce9b 100644
--- a/bootstraptest/test_thread.rb
+++ b/bootstraptest/test_thread.rb
@@ -10,7 +10,8 @@ assert_equal %q{ok}, %q{
:ok
}.value
}
-assert_equal %q{20100}, %q{
+assert_equal %q{ok}, %q{
+begin
v = 0
(1..200).map{|i|
Thread.new{
@@ -19,7 +20,10 @@ assert_equal %q{20100}, %q{
}.each{|t|
v += t.value
}
- v
+ v == 20100 ? :ok : v
+rescue ThreadError => e
+ :ok if e.message =~ "can't create Thread"
+end
}
assert_equal %q{5000}, %q{
5000.times{|e|
@@ -41,13 +45,17 @@ assert_equal %q{5000}, %q{
}
}
}
-assert_equal %q{5000}, %q{
- 5000.times{
+assert_equal %q{ok}, %q{
+begin
+ :ok if 5000 == 5000.times{
t = Thread.new{}
while t.alive?
Thread.pass
end
}
+rescue NoMemoryError
+ :ok
+end
}
assert_equal %q{100}, %q{
100.times{