From fa8c16de1d283fd4ba68b3879d71cfd7f3c901e9 Mon Sep 17 00:00:00 2001 From: AgnesToulet <35176601+AgnesToulet@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:05:55 +0100 Subject: [PATCH 1/4] Add ExecutionStatusMarkedAsFailed --- internal/execution/scheduler.go | 6 ++++++ lib/execution.go | 1 + 2 files changed, 7 insertions(+) diff --git a/internal/execution/scheduler.go b/internal/execution/scheduler.go index 6367033f98..b141c4bc71 100644 --- a/internal/execution/scheduler.go +++ b/internal/execution/scheduler.go @@ -451,6 +451,12 @@ func (e *Scheduler) Run(globalCtx, runCtx context.Context, samplesOut chan<- met e.initProgress.Modify(pb.WithConstProgress(1, "Starting test...")) e.state.MarkStarted() defer func() { + isMarkedAsFailed := e.state.Test.TestPreInitState.TestStatus.Failed() + if isMarkedAsFailed { + e.state.SetExecutionStatus(lib.ExecutionStatusMarkedAsFailed) + return + } + isAborted := GetCancelReasonIfTestAborted(runCtx) != nil if !isAborted { e.state.MarkEnded() diff --git a/lib/execution.go b/lib/execution.go index b42a70e5f8..6132372ff8 100644 --- a/lib/execution.go +++ b/lib/execution.go @@ -47,6 +47,7 @@ const ( ExecutionStatusTeardown ExecutionStatusEnded ExecutionStatusInterrupted + ExecutionStatusMarkedAsFailed ) // ExecutionState contains a few different things: From 1401fbb462b0095a4d38309b80de3aa5d0d2f8aa Mon Sep 17 00:00:00 2001 From: AgnesToulet <35176601+AgnesToulet@users.noreply.github.com> Date: Tue, 18 Nov 2025 11:57:02 +0100 Subject: [PATCH 2/4] fix linter issue --- internal/execution/scheduler.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/execution/scheduler.go b/internal/execution/scheduler.go index b141c4bc71..e3112f9d3e 100644 --- a/internal/execution/scheduler.go +++ b/internal/execution/scheduler.go @@ -451,7 +451,7 @@ func (e *Scheduler) Run(globalCtx, runCtx context.Context, samplesOut chan<- met e.initProgress.Modify(pb.WithConstProgress(1, "Starting test...")) e.state.MarkStarted() defer func() { - isMarkedAsFailed := e.state.Test.TestPreInitState.TestStatus.Failed() + isMarkedAsFailed := e.state.Test.TestStatus.Failed() if isMarkedAsFailed { e.state.SetExecutionStatus(lib.ExecutionStatusMarkedAsFailed) return From e5df0c7fcb3af91dcbdd7308513e88178bd13b1f Mon Sep 17 00:00:00 2001 From: AgnesToulet <35176601+AgnesToulet@users.noreply.github.com> Date: Tue, 18 Nov 2025 15:47:12 +0100 Subject: [PATCH 3/4] run make generate --- lib/execution_status_gen.go | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/execution_status_gen.go b/lib/execution_status_gen.go index e1a4dbeb5a..ffdbdddb50 100644 --- a/lib/execution_status_gen.go +++ b/lib/execution_status_gen.go @@ -6,9 +6,9 @@ import ( "fmt" ) -const _ExecutionStatusName = "CreatedInitVUsInitExecutorsInitDonePausedBeforeRunStartedSetupRunningTeardownEndedInterrupted" +const _ExecutionStatusName = "CreatedInitVUsInitExecutorsInitDonePausedBeforeRunStartedSetupRunningTeardownEndedInterruptedMarkedAsFailed" -var _ExecutionStatusIndex = [...]uint8{0, 7, 14, 27, 35, 50, 57, 62, 69, 77, 82, 93} +var _ExecutionStatusIndex = [...]uint8{0, 7, 14, 27, 35, 50, 57, 62, 69, 77, 82, 93, 107} func (i ExecutionStatus) String() string { if i >= ExecutionStatus(len(_ExecutionStatusIndex)-1) { @@ -17,20 +17,21 @@ func (i ExecutionStatus) String() string { return _ExecutionStatusName[_ExecutionStatusIndex[i]:_ExecutionStatusIndex[i+1]] } -var _ExecutionStatusValues = []ExecutionStatus{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} +var _ExecutionStatusValues = []ExecutionStatus{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} var _ExecutionStatusNameToValueMap = map[string]ExecutionStatus{ - _ExecutionStatusName[0:7]: 0, - _ExecutionStatusName[7:14]: 1, - _ExecutionStatusName[14:27]: 2, - _ExecutionStatusName[27:35]: 3, - _ExecutionStatusName[35:50]: 4, - _ExecutionStatusName[50:57]: 5, - _ExecutionStatusName[57:62]: 6, - _ExecutionStatusName[62:69]: 7, - _ExecutionStatusName[69:77]: 8, - _ExecutionStatusName[77:82]: 9, - _ExecutionStatusName[82:93]: 10, + _ExecutionStatusName[0:7]: 0, + _ExecutionStatusName[7:14]: 1, + _ExecutionStatusName[14:27]: 2, + _ExecutionStatusName[27:35]: 3, + _ExecutionStatusName[35:50]: 4, + _ExecutionStatusName[50:57]: 5, + _ExecutionStatusName[57:62]: 6, + _ExecutionStatusName[62:69]: 7, + _ExecutionStatusName[69:77]: 8, + _ExecutionStatusName[77:82]: 9, + _ExecutionStatusName[82:93]: 10, + _ExecutionStatusName[93:107]: 11, } // ExecutionStatusString retrieves an enum value from the enum constants string name. From 7a7d3fe3543631dce3d0b37e1074871d4b773750 Mon Sep 17 00:00:00 2001 From: AgnesToulet <35176601+AgnesToulet@users.noreply.github.com> Date: Thu, 20 Nov 2025 11:58:41 +0100 Subject: [PATCH 4/4] fix nil pointer panic --- internal/execution/scheduler.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/execution/scheduler.go b/internal/execution/scheduler.go index e3112f9d3e..0a381e7e9c 100644 --- a/internal/execution/scheduler.go +++ b/internal/execution/scheduler.go @@ -451,8 +451,7 @@ func (e *Scheduler) Run(globalCtx, runCtx context.Context, samplesOut chan<- met e.initProgress.Modify(pb.WithConstProgress(1, "Starting test...")) e.state.MarkStarted() defer func() { - isMarkedAsFailed := e.state.Test.TestStatus.Failed() - if isMarkedAsFailed { + if e.state.Test.TestStatus != nil && e.state.Test.TestStatus.Failed() { e.state.SetExecutionStatus(lib.ExecutionStatusMarkedAsFailed) return }