diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-27 15:23:17 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-27 15:23:17 +0200 |
| commit | 69c5dbf50c36ae622c02b943cc6c471254bb2fa9 (patch) | |
| tree | 01173b3404af9b2f156c78a7aff72367b074cb39 /src/test/java/core | |
| parent | ca9d7633d76871cb0ea00dd46af351daf8ef4895 (diff) | |
Strengthen replay schedule regression checks
Diffstat (limited to 'src/test/java/core')
| -rw-r--r-- | src/test/java/core/VSTaskManagerCrashRecoveryIntegrationTest.java | 40 |
1 files changed, 37 insertions, 3 deletions
diff --git a/src/test/java/core/VSTaskManagerCrashRecoveryIntegrationTest.java b/src/test/java/core/VSTaskManagerCrashRecoveryIntegrationTest.java index 81ceeb8..7bb6038 100644 --- a/src/test/java/core/VSTaskManagerCrashRecoveryIntegrationTest.java +++ b/src/test/java/core/VSTaskManagerCrashRecoveryIntegrationTest.java @@ -75,12 +75,46 @@ class VSTaskManagerCrashRecoveryIntegrationTest { loadedSimulatorToStop = loaded.getSimulator(); VSSimulatorVisualization visualization = loaded.getVisualization(); - runUntil(visualization, 20); + assertFalse(visualization.getProcess(0).isCrashed(), + "process 0 should start alive after replay load"); + assertFalse(visualization.getProcess(1).isCrashed(), + "process 1 should start alive after replay load"); + + runUntil(visualization, 4); + assertFalse(visualization.getProcess(0).isCrashed(), + "process 0 should stay alive before its crash point"); + assertFalse(visualization.getProcess(1).isCrashed(), + "process 1 should stay alive before process 0 crashes"); + + runUntil(visualization, 6); + assertTrue(visualization.getProcess(0).isCrashed(), + "process 0 should crash immediately after its scheduled crash point"); + assertFalse(visualization.getProcess(1).isCrashed(), + "process 1 should still be alive while process 0 is crashed"); + + runUntil(visualization, 10); + assertTrue(visualization.getProcess(0).isCrashed(), + "process 0 should remain crashed before its recover point"); + assertFalse(visualization.getProcess(1).isCrashed(), + "process 1 should still be alive before its later crash"); + + runUntil(visualization, 11); + assertFalse(visualization.getProcess(0).isCrashed(), + "process 0 should recover immediately after its scheduled recover point"); + assertFalse(visualization.getProcess(1).isCrashed(), + "process 1 should still be alive before its crash point"); + + runUntil(visualization, 15); + assertFalse(visualization.getProcess(0).isCrashed(), + "process 0 should stay recovered before process 1 crashes"); + assertFalse(visualization.getProcess(1).isCrashed(), + "process 1 should stay alive before its later crash point"); + runUntil(visualization, 16); assertFalse(visualization.getProcess(0).isCrashed(), - "process 0 should recover after replay load"); + "process 0 should remain recovered after replay load"); assertTrue(visualization.getProcess(1).isCrashed(), - "process 1 should still crash later in the replay"); + "process 1 should crash immediately after its later replay point"); } @Test |
