summaryrefslogtreecommitdiff
path: root/src/test/java/core
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-27 15:23:17 +0200
committerPaul Buetow <paul@buetow.org>2026-03-27 15:23:17 +0200
commit69c5dbf50c36ae622c02b943cc6c471254bb2fa9 (patch)
tree01173b3404af9b2f156c78a7aff72367b074cb39 /src/test/java/core
parentca9d7633d76871cb0ea00dd46af351daf8ef4895 (diff)
Strengthen replay schedule regression checks
Diffstat (limited to 'src/test/java/core')
-rw-r--r--src/test/java/core/VSTaskManagerCrashRecoveryIntegrationTest.java40
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