From e89bebdab448f20555a322d84ef42eea531c51cc Mon Sep 17 00:00:00 2001 From: akr Date: Fri, 23 Dec 2011 01:15:35 +0000 Subject: [PATCH] * test/thread/test_queue.rb (test_thr_kill): show the number of loop run when the test failed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ test/thread/test_queue.rb | 35 +++++++++++++++++++++++------------ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index 973c38c12f..b6e85c0421 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Dec 23 10:14:47 2011 Tanaka Akira + + * test/thread/test_queue.rb (test_thr_kill): show the number of loop + run when the test failed. + Fri Dec 23 09:23:48 2011 Tanaka Akira * test/test_pty.rb (test_pty_check_default): call PTY.check until diff --git a/test/thread/test_queue.rb b/test/thread/test_queue.rb index e54decdafc..4f3eff00a0 100644 --- a/test/thread/test_queue.rb +++ b/test/thread/test_queue.rb @@ -1,5 +1,6 @@ require 'test/unit' require 'thread' +require 'tmpdir' require_relative '../ruby/envutil' class TestQueue < Test::Unit::TestCase @@ -57,18 +58,28 @@ class TestQueue < Test::Unit::TestCase def test_thr_kill bug5343 = '[ruby-core:39634]' - assert_normal_exit(<<-'_eom', bug5343, {:timeout => 20}) - require "thread" - 2000.times do - queue = Queue.new - r, w = IO.pipe - th = Thread.start { - queue.push(nil) - r.read 1 - } - queue.pop - th.kill.join + Dir.mktmpdir {|d| + timeout = 20 + total_loop = 2000 + begin + assert_normal_exit(<<-"_eom", bug5343, {:timeout => timeout, :chdir=>d}) + require "thread" + #{total_loop}.times do |i| + open("test_thr_kill_count", "w") {|f| f.puts i } + queue = Queue.new + r, w = IO.pipe + th = Thread.start { + queue.push(nil) + r.read 1 + } + queue.pop + th.kill.join + end + _eom + rescue Timeout::Error + count = File.read("#{d}/test_thr_kill_count").to_i + flunk "only #{count} times looped in #{timeout} seconds. (should run #{total_loop} times)" end - _eom + } end end