Skip to content

Commit

Permalink
Merge pull request #3787 from fluent/try-to-fix-unstable-child-proces…
Browse files Browse the repository at this point in the history
…s-tests

test_child_process: Try to fix unstable tests
  • Loading branch information
ashie authored Jun 15, 2022
2 parents a22a8e1 + 60417a9 commit 56ac09e
Showing 1 changed file with 16 additions and 4 deletions.
20 changes: 16 additions & 4 deletions test/plugin_helper/test_child_process.rb
Original file line number Diff line number Diff line change
Expand Up @@ -321,28 +321,40 @@ def configure(conf)
ary = []
arguments = ["okay"]
Timeout.timeout(TEST_DEADLOCK_TIMEOUT) do
start_time = Fluent::Clock.now
@d.child_process_execute(:t5, "echo", arguments: arguments, interval: 1, mode: [:read]) do |io|
ary << io.read.split("\n").map(&:chomp).join
end
sleep 2.9 # 2sec(second invocation) + 0.9sec
1.upto(2) do |i|
sleep 0.1 while ary.size < i
elapsed = Fluent::Clock.now - start_time
assert_equal(i, ary.size)
assert_true(elapsed > i && elapsed < i + 0.5,
"actual elapsed: #{elapsed}")
end
assert_equal [], @d.log.out.logs
@d.stop
assert_equal [], @d.log.out.logs
@d.shutdown; @d.close; @d.terminate
assert_equal 2, ary.size
end
end

test 'can execute external command many times, with leading once executed immediately' do
ary = []
arguments = ["okay"]
Timeout.timeout(TEST_DEADLOCK_TIMEOUT) do
start_time = Fluent::Clock.now
@d.child_process_execute(:t6, "echo", arguments: arguments, interval: 1, immediate: true, mode: [:read]) do |io|
ary << io.read.split("\n").map(&:chomp).join
end
sleep 1.9 # 1sec(second invocation) + 0.9sec
0.upto(1) do |i|
sleep 0.1 while ary.size < i + 1
elapsed = Fluent::Clock.now - start_time
assert_equal(i + 1, ary.size)
assert_true(elapsed > i && elapsed < i + 0.5,
"actual elapsed: #{elapsed}")
end
@d.stop; @d.shutdown; @d.close; @d.terminate
assert_equal 2, ary.size
assert_equal [], @d.log.out.logs
end
end
Expand Down

0 comments on commit 56ac09e

Please sign in to comment.