Ensure web task exited successfully
Web task should run to completion successfully while the `bad` task is retrying artifact downloads.
This commit is contained in:
parent
5ce26f82fe
commit
a739058fa3
|
@ -65,17 +65,16 @@ func TestAllocRunner_SimpleRun(t *testing.T) {
|
||||||
|
|
||||||
// TestAllocRuner_RetryArtifact ensures that if one task in a task group is
|
// TestAllocRuner_RetryArtifact ensures that if one task in a task group is
|
||||||
// retrying fetching an artifact, other tasks in the the group should be able
|
// retrying fetching an artifact, other tasks in the the group should be able
|
||||||
// to proceed. See #1558
|
// to proceed.
|
||||||
func TestAllocRunner_RetryArtifact(t *testing.T) {
|
func TestAllocRunner_RetryArtifact(t *testing.T) {
|
||||||
ctestutil.ExecCompatible(t)
|
ctestutil.ExecCompatible(t)
|
||||||
|
|
||||||
alloc := mock.Alloc()
|
alloc := mock.Alloc()
|
||||||
|
alloc.Job.Type = structs.JobTypeBatch
|
||||||
|
|
||||||
// Create a copy of the task for testing #1558
|
// Create a new task with a bad artifact
|
||||||
badtask := alloc.Job.TaskGroups[0].Tasks[0].Copy()
|
badtask := alloc.Job.TaskGroups[0].Tasks[0].Copy()
|
||||||
badtask.Name = "bad"
|
badtask.Name = "bad"
|
||||||
|
|
||||||
// Add a bad artifact to one of the tasks
|
|
||||||
badtask.Artifacts = []*structs.TaskArtifact{
|
badtask.Artifacts = []*structs.TaskArtifact{
|
||||||
{GetterSource: "http://127.1.1.111:12315/foo/bar/baz"},
|
{GetterSource: "http://127.1.1.111:12315/foo/bar/baz"},
|
||||||
}
|
}
|
||||||
|
@ -90,8 +89,12 @@ func TestAllocRunner_RetryArtifact(t *testing.T) {
|
||||||
return false, fmt.Errorf("Not enough updates")
|
return false, fmt.Errorf("Not enough updates")
|
||||||
}
|
}
|
||||||
last := upd.Allocs[upd.Count-1]
|
last := upd.Allocs[upd.Count-1]
|
||||||
if last.TaskStates["web"].State != structs.TaskStatePending {
|
webstate := last.TaskStates["web"]
|
||||||
return false, fmt.Errorf("expected web to be pending but found %q", last.TaskStates["web"].State)
|
if webstate.State != structs.TaskStateDead {
|
||||||
|
return false, fmt.Errorf("expected web to be dead but found %q", last.TaskStates["web"].State)
|
||||||
|
}
|
||||||
|
if !webstate.Successful() {
|
||||||
|
return false, fmt.Errorf("expected web to have exited successfully")
|
||||||
}
|
}
|
||||||
if last.TaskStates["bad"].State != structs.TaskStatePending {
|
if last.TaskStates["bad"].State != structs.TaskStatePending {
|
||||||
return false, fmt.Errorf("expected bad to be pending but found %q", last.TaskStates["web"].State)
|
return false, fmt.Errorf("expected bad to be pending but found %q", last.TaskStates["web"].State)
|
||||||
|
|
Loading…
Reference in New Issue