From db446bbabff9da26ba9ac33d951359dc4a1aab04 Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Tue, 24 Jan 2017 09:40:13 -0800 Subject: [PATCH] Fix flaky test --- client/task_runner_test.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/client/task_runner_test.go b/client/task_runner_test.go index ca709b570..cbe9f08da 100644 --- a/client/task_runner_test.go +++ b/client/task_runner_test.go @@ -679,7 +679,25 @@ func TestTaskRunner_SignalFailure(t *testing.T) { go ctx.tr.Run() defer ctx.Cleanup() - time.Sleep(100 * time.Millisecond) + // Wait for the task to start + testutil.WaitForResult(func() (bool, error) { + if l := len(ctx.upd.events); l < 2 { + return false, fmt.Errorf("Expect two events; got %v", l) + } + + if ctx.upd.events[0].Type != structs.TaskReceived { + return false, fmt.Errorf("First Event was %v; want %v", ctx.upd.events[0].Type, structs.TaskReceived) + } + + if ctx.upd.events[1].Type != structs.TaskStarted { + return false, fmt.Errorf("Second Event was %v; want %v", ctx.upd.events[1].Type, structs.TaskStarted) + } + + return true, nil + }, func(err error) { + t.Fatalf("err: %v", err) + }) + if err := ctx.tr.Signal("test", "test", syscall.SIGINT); err == nil { t.Fatalf("Didn't receive error") }