func TestTaskRunner_Update(t *testing.T) { ctestutil.ExecCompatible(t) _, tr := testTaskRunner() // Change command to ensure we run for a bit tr.task.Config["command"] = "/bin/sleep" tr.task.Config["args"] = "10" go tr.Run() defer tr.Destroy() defer tr.ctx.AllocDir.Destroy() // Update the task definition newTask := new(structs.Task) *newTask = *tr.task newTask.Driver = "foobar" tr.Update(newTask) // Wait for update to take place testutil.WaitForResult(func() (bool, error) { return tr.task == newTask, nil }, func(err error) { t.Fatalf("err: %v", err) }) }