diff options
| author | Paul Buetow <paul@buetow.org> | 2025-06-21 20:10:38 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2025-06-21 20:10:38 +0300 |
| commit | 695adc1f6bfb0a0eeef4dd6c035475ea2826871f (patch) | |
| tree | 945fc0552d4f7f1ef1f468f6030e9925970fa72b /src/main/java/simulator/VSSimulatorVisualization.java | |
| parent | d3b697218773eaa5a3dd368705184726dbc0fa38 (diff) | |
Complete GUI decoupling implementation for headless testing
- Implement MessageHandler pattern to decouple message sending from visualization
- Add HeadlessLoader to load simulations without GUI components
- Create HeadlessProtocolRunner for clean protocol test execution
- Update VSInternalProcess to use MessageHandler for message routing
- Add null checks in VSSimulator for headless mode compatibility
- Update VSSimulatorVisualization paint() to check for headless mode
- Remove obsolete test scripts and documentation
- Update test-protocols.sh to remove GUI error suppression options
- Consolidate testing documentation in docs/testing-guide.md
All protocol tests now run cleanly in headless mode without GUI errors,
enabling proper CI/CD integration and automated testing.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'src/main/java/simulator/VSSimulatorVisualization.java')
| -rw-r--r-- | src/main/java/simulator/VSSimulatorVisualization.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/simulator/VSSimulatorVisualization.java b/src/main/java/simulator/VSSimulatorVisualization.java index 2dc4a64..53cf391 100644 --- a/src/main/java/simulator/VSSimulatorVisualization.java +++ b/src/main/java/simulator/VSSimulatorVisualization.java @@ -3,6 +3,7 @@ package simulator; import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics2D; +import java.awt.GraphicsEnvironment; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -867,6 +868,13 @@ public class VSSimulatorVisualization extends Canvas * Paints the simulator. */ public void paint() { + // Skip painting in headless mode to avoid GUI errors + if (GraphicsEnvironment.isHeadless() || + Boolean.getBoolean("ds.sim.headless") || + !isDisplayable()) { + return; + } + while (getBufferStrategy() == null) { createBufferStrategy(3); strategy = getBufferStrategy(); |
