From 4c16cc3c4da7bbf8375d7951185db1761eb396bf Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sun, 22 Jun 2025 16:45:17 +0300 Subject: Remove all Raft protocol code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed all Raft-related code as it was not working properly: - Removed VSRaftProtocol.java implementation - Removed all Raft test files - Removed Raft example/demo files - Removed Raft documentation - Removed Raft simulation files (.dat) - Removed Raft scripts - Updated VSRegisteredEvents to remove Raft registration - Updated SimulationBuilder to remove RAFT constant - Updated SimulationFactory to remove Raft methods - Updated SimulationBuilderTest to remove Raft tests - Updated pom.xml to remove Raft test configurations The protocol had issues with leader election not completing in GUI mode. 🤖 Generated with Claude Code https://claude.ai/code Co-Authored-By: Claude --- src/test/java/simulator/SimpleRaftGUITest.java | 66 ---------------------- .../simulator/builder/SimulationBuilderTest.java | 44 +-------------- 2 files changed, 1 insertion(+), 109 deletions(-) delete mode 100644 src/test/java/simulator/SimpleRaftGUITest.java (limited to 'src/test/java/simulator') diff --git a/src/test/java/simulator/SimpleRaftGUITest.java b/src/test/java/simulator/SimpleRaftGUITest.java deleted file mode 100644 index 3697db2..0000000 --- a/src/test/java/simulator/SimpleRaftGUITest.java +++ /dev/null @@ -1,66 +0,0 @@ -package simulator; - -import org.junit.jupiter.api.*; -import static org.junit.jupiter.api.Assertions.*; - -import core.*; -import prefs.*; -import events.*; -import serialize.VSSerialize; - -import java.io.File; -import java.lang.reflect.*; - -/** - * Simple GUI test for Raft simulation to verify it loads and runs. - */ -public class SimpleRaftGUITest { - - @Test - @DisplayName("Test loading Raft simulation file") - public void testLoadRaftSimulation() throws Exception { - // Initialize - VSDefaultPrefs prefs = new VSDefaultPrefs(); - prefs.fillWithDefaults(); - VSRegisteredEvents.init(prefs); - - // Check if simulation file exists - File simFile = new File("saved-simulations/raft-working.dat"); - assertTrue(simFile.exists(), "Raft simulation file should exist"); - - // Load simulation - VSSimulatorFrame frame = new VSSimulatorFrame(prefs, null); - VSSerialize serialize = new VSSerialize(); - VSSimulator simulator = serialize.openSimulator(simFile.getAbsolutePath(), frame); - - assertNotNull(simulator, "Simulator should be loaded"); - - // Access visualization - Field vizField = VSSimulator.class.getDeclaredField("simulatorVisualization"); - vizField.setAccessible(true); - VSSimulatorVisualization viz = (VSSimulatorVisualization) vizField.get(simulator); - - // Verify basic properties - assertTrue(viz.getNumProcesses() >= 5, "Should have at least 5 processes"); - - // Check task manager - VSTaskManager taskManager = viz.getTaskManager(); - assertNotNull(taskManager, "Task manager should exist"); - - // Get task count using reflection - Field tasksField = VSTaskManager.class.getDeclaredField("tasks"); - tasksField.setAccessible(true); - Object taskQueue = tasksField.get(taskManager); - Method sizeMethod = taskQueue.getClass().getMethod("size"); - int taskCount = (Integer) sizeMethod.invoke(taskQueue); - - assertTrue(taskCount > 0, "Should have scheduled tasks"); - - frame.dispose(); - - System.out.println("\n=== Test Results ==="); - System.out.println("✓ Raft simulation loads successfully"); - System.out.println("✓ Processes: " + viz.getNumProcesses()); - System.out.println("✓ Scheduled tasks: " + taskCount); - } -} \ No newline at end of file diff --git a/src/test/java/simulator/builder/SimulationBuilderTest.java b/src/test/java/simulator/builder/SimulationBuilderTest.java index 82860f0..5061477 100644 --- a/src/test/java/simulator/builder/SimulationBuilderTest.java +++ b/src/test/java/simulator/builder/SimulationBuilderTest.java @@ -29,43 +29,6 @@ class SimulationBuilderTest { } } - @Test - void testCreateBasicRaftSimulation() throws Exception { - String filename = TEST_DIR + "test-raft.dat"; - - // Create a basic Raft simulation - new SimulationBuilder() - .withProcesses(3) - .withProtocol(SimulationBuilder.Protocols.RAFT) - .activateServers(0, 1, 2) - .save(filename); - - // Verify file was created - File file = new File(filename); - assertTrue(file.exists(), "Simulation file should be created"); - assertTrue(file.length() > 1000, "File should have content"); - - // Verify it contains Raft protocol - String content = Files.readString(file.toPath()); - assertTrue(content.contains("VSRaftProtocol"), "Should contain Raft protocol classname"); - } - - @Test - void testCreateRaftWithClients() throws Exception { - String filename = TEST_DIR + "test-raft-clients.dat"; - - // Use factory method - SimulationFactory.createRaftSimulation(3, 2) - .save(filename); - - // Verify file was created - File file = new File(filename); - assertTrue(file.exists(), "Simulation file should be created"); - - // Should have 5 processes (3 servers + 2 clients) - String content = Files.readString(file.toPath()); - assertTrue(content.contains("VSRaftProtocol"), "Should contain Raft protocol"); - } @Test void testCreatePingPongSimulation() throws Exception { @@ -88,7 +51,7 @@ class SimulationBuilderTest { // Create a complex simulation with events new SimulationBuilder() .withProcesses(5) - .withProtocol(SimulationBuilder.Protocols.RAFT) + .withProtocol(SimulationBuilder.Protocols.TWO_PHASE_COMMIT) .withDuration(30000) .activateServers(0, 1, 2) .activateClients(1000, 3, 4) @@ -109,7 +72,6 @@ class SimulationBuilderTest { void testAllProtocolTypes() throws Exception { // Test that all protocol constants work String[] protocols = { - SimulationBuilder.Protocols.RAFT, SimulationBuilder.Protocols.PING_PONG, SimulationBuilder.Protocols.BERKLEY_TIME, SimulationBuilder.Protocols.BROADCAST, @@ -136,10 +98,6 @@ class SimulationBuilderTest { @Test void testInvalidConfiguration() { // Test that invalid configurations throw exceptions - assertThrows(IllegalArgumentException.class, () -> { - SimulationFactory.createRaftSimulation(2, 0); // Too few servers - }); - assertThrows(IllegalArgumentException.class, () -> { SimulationFactory.createBerkeleyTimeSimulation(1); // Too few processes }); -- cgit v1.2.3