diff --git a/spec/datadog/profiling/crashtracker_spec.rb b/spec/datadog/profiling/crashtracker_spec.rb index 59137e85ef..32030fa418 100644 --- a/spec/datadog/profiling/crashtracker_spec.rb +++ b/spec/datadog/profiling/crashtracker_spec.rb @@ -8,8 +8,13 @@ before do skip_if_profiling_not_supported(self) - crash_tracker_pids = `pgrep -f libdatadog-crashtracking-receiver` - expect(crash_tracker_pids).to be_empty, "No crash tracker process should be running, found #{crash_tracker_pids}" + # No crash tracker process should still be running at the start of each testcase + wait_for { `pgrep -f libdatadog-crashtracking-receiver` }.to be_empty + end + + after do + # No crash tracker process should still be running at the end of each testcase + wait_for { `pgrep -f libdatadog-crashtracking-receiver` }.to be_empty end let(:exporter_configuration) { [:agent, 'http://localhost:6006'] } @@ -59,7 +64,7 @@ it 'starts the crash tracker' do start - expect(`pgrep -f libdatadog-crashtracking-receiver`).to_not be_empty + wait_for { `pgrep -f libdatadog-crashtracking-receiver` }.to_not be_empty crashtracker.stop end @@ -68,7 +73,7 @@ it 'only starts the crash tracker once' do 3.times { crashtracker.start } - expect(`pgrep -f libdatadog-crashtracking-receiver`.lines.size).to be 1 + wait_for { `pgrep -f libdatadog-crashtracking-receiver`.lines.size }.to be 1 crashtracker.stop end @@ -95,13 +100,15 @@ it 'starts a second crash tracker for the fork' do expect_in_fork do + wait_for { `pgrep -f libdatadog-crashtracking-receiver`.lines.size }.to be 1 + crashtracker.reset_after_fork - expect(`pgrep -f libdatadog-crashtracking-receiver`.lines.size).to be 2 + wait_for { `pgrep -f libdatadog-crashtracking-receiver`.lines.size }.to be 2 crashtracker.stop - expect(`pgrep -f libdatadog-crashtracking-receiver`.lines.size).to be 1 + wait_for { `pgrep -f libdatadog-crashtracking-receiver`.lines.size }.to be 1 end end end @@ -124,7 +131,7 @@ stop - expect(`pgrep -f libdatadog-crashtracking-receiver`).to be_empty + wait_for { `pgrep -f libdatadog-crashtracking-receiver` }.to be_empty end end