diff --git a/runner.go b/runner.go index 66956fc..27d3952 100644 --- a/runner.go +++ b/runner.go @@ -80,13 +80,13 @@ type RunAllResult struct { Skipped int } -// Success returns true if all non-skipped specs passed. +// Success returns true if every spec completed successfully. // // Example: // // if result.Success() { ... } func (r RunAllResult) Success() bool { - return r.Failed == 0 + return r.Failed == 0 && r.Skipped == 0 } // RunAll executes specs respecting dependencies, parallelising where possible. @@ -144,10 +144,10 @@ func (r *Runner) RunAll(ctx context.Context, specs []RunSpec) (*RunAllResult, er // Keep the output aligned with the input order. for name := range remaining { results[indexMap[name]] = RunResult{ - Name: name, - Spec: remaining[name], - ExitCode: 1, - Error: coreerr.E("Runner.RunAll", "circular dependency or missing dependency", nil), + Name: name, + Spec: remaining[name], + Skipped: true, + Error: coreerr.E("Runner.RunAll", "circular dependency or missing dependency", nil), } } break diff --git a/runner_test.go b/runner_test.go index 97fe0a9..25c6ec3 100644 --- a/runner_test.go +++ b/runner_test.go @@ -179,11 +179,11 @@ func TestRunner_RunAll_CircularDeps(t *testing.T) { require.NoError(t, err) assert.False(t, result.Success()) - assert.Equal(t, 2, result.Failed) - assert.Equal(t, 0, result.Skipped) + assert.Equal(t, 0, result.Failed) + assert.Equal(t, 2, result.Skipped) for _, res := range result.Results { - assert.False(t, res.Skipped) - assert.Equal(t, 1, res.ExitCode) + assert.True(t, res.Skipped) + assert.Equal(t, 0, res.ExitCode) assert.Error(t, res.Error) } }) @@ -197,11 +197,11 @@ func TestRunner_RunAll_CircularDeps(t *testing.T) { require.NoError(t, err) assert.False(t, result.Success()) - assert.Equal(t, 1, result.Failed) - assert.Equal(t, 0, result.Skipped) + assert.Equal(t, 0, result.Failed) + assert.Equal(t, 1, result.Skipped) require.Len(t, result.Results, 1) - assert.False(t, result.Results[0].Skipped) - assert.Equal(t, 1, result.Results[0].ExitCode) + assert.True(t, result.Results[0].Skipped) + assert.Equal(t, 0, result.Results[0].ExitCode) assert.Error(t, result.Results[0].Error) }) }