diff options
| author | BMatajsz <90217645+BMatajsz@users.noreply.github.com> | 2024-12-03 09:34:00 -0500 |
|---|---|---|
| committer | BMatajsz <90217645+BMatajsz@users.noreply.github.com> | 2024-12-03 09:34:00 -0500 |
| commit | 44df5df0b65df279aaf471fa8258da218ed7c522 (patch) | |
| tree | e0b2bc04e5f68d08043fb36b43a80fba1e9e075f /src/main/java/derms | |
| parent | d6067d28ce2a22c64cb595af6bca48c81b1664da (diff) | |
| download | soen423-44df5df0b65df279aaf471fa8258da218ed7c522.zip | |
Added expected test results
Diffstat (limited to 'src/main/java/derms')
| -rw-r--r-- | src/main/java/derms/ReplicaManager.java | 7 | ||||
| -rw-r--r-- | src/main/java/derms/client/ResponderClient.java | 7 | ||||
| -rw-r--r-- | src/main/java/derms/frontend/DERMSServerImpl.java | 5 | ||||
| -rw-r--r-- | src/main/java/derms/frontend/FE.java | 4 | ||||
| -rw-r--r-- | src/main/java/derms/replica1/Replica1.java | 2 | ||||
| -rw-r--r-- | src/main/java/derms/replica2/Replica2.java | 2 | ||||
| -rw-r--r-- | src/main/java/derms/replica3/Replica3.java | 2 | ||||
| -rw-r--r-- | src/main/java/derms/util/LogComparator.java | 16 |
8 files changed, 36 insertions, 9 deletions
diff --git a/src/main/java/derms/ReplicaManager.java b/src/main/java/derms/ReplicaManager.java index 1e89969..64ceb04 100644 --- a/src/main/java/derms/ReplicaManager.java +++ b/src/main/java/derms/ReplicaManager.java @@ -112,7 +112,7 @@ public class ReplicaManager { informFrontEndRmIsDown(replica.getId()); replica.restart(); - TestLogger.log("REPLICA " + replicaId + ": {RESTARTED}"); + //TestLogger.log("REPLICA " + replicaId + ": {RESTARTED}"); } try { Thread.sleep(5000); // Example 5 seconds. @@ -139,7 +139,7 @@ public class ReplicaManager { replica.restart(); informFrontEndRmHasBug(replica.getId()); - TestLogger.log("REPLICA " + replicaId + ": {RESTARTED}"); + //TestLogger.log("REPLICA " + replicaId + ": {RESTARTED}"); } private void informFrontEndRmIsDown(int replicaId) { @@ -148,6 +148,7 @@ public class ReplicaManager { out.writeObject("RM_DOWN:" + replicaId); } catch (IOException e) { log.severe("Failed to inform FE that RM is down: " + e.getMessage()); + TestLogger.log("[FAILED TO INFORM FE (RM IS DOWN)]"); } } @@ -157,6 +158,7 @@ public class ReplicaManager { out.writeObject("RM_BUG:" + replicaId); } catch (IOException e) { log.severe("Failed to inform FE that RM has a bug: " + e.getMessage()); + TestLogger.log("[FAILED TO INFORM FE (RM HAS A BUG)]"); } } @@ -176,6 +178,7 @@ public class ReplicaManager { System.out.println("ReplicaManager " + replicaId + " is running."); } catch (IOException e) { System.err.println("Failed to start ReplicaManager: " + e.getMessage()); + TestLogger.log("[FAILED TO START RM]"); e.printStackTrace(); } } diff --git a/src/main/java/derms/client/ResponderClient.java b/src/main/java/derms/client/ResponderClient.java index ec599b4..43be3f3 100644 --- a/src/main/java/derms/client/ResponderClient.java +++ b/src/main/java/derms/client/ResponderClient.java @@ -1,8 +1,10 @@ package derms.client; import derms.frontend.DERMSInterface; +import derms.util.TestLogger; import java.net.MalformedURLException; +import java.util.Objects; public class ResponderClient extends CLI { public static final String usage = "Usage: java derms.client.ResponderClient <FE host>"; @@ -60,6 +62,11 @@ public class ResponderClient extends CLI { } String response = server.addResource(resourceID, resourceName, duration); System.out.println(response); + if (response.contains("Fail")) { + TestLogger.log("[FAILED: " + response + "]"); + } else { + TestLogger.log("[SUCCESS: " + response + "]"); + } } catch (NumberFormatException e) { System.out.println("invalid duration: " + durationStr); } diff --git a/src/main/java/derms/frontend/DERMSServerImpl.java b/src/main/java/derms/frontend/DERMSServerImpl.java index 1877cef..2a5dfa9 100644 --- a/src/main/java/derms/frontend/DERMSServerImpl.java +++ b/src/main/java/derms/frontend/DERMSServerImpl.java @@ -5,10 +5,6 @@ package derms.frontend; //import model.Resource; import java.util.*; import java.util.stream.Collectors; -import java.util.Optional; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -23,6 +19,7 @@ import javax.jws.soap.SOAPBinding.Style; //import interfaces.DERMSInterface; import derms.Request; import derms.Response; +import derms.util.TestLogger; @WebService(endpointInterface = "derms.frontend.DERMSInterface") public class DERMSServerImpl implements DERMSInterface { diff --git a/src/main/java/derms/frontend/FE.java b/src/main/java/derms/frontend/FE.java index ee0a323..b3e100f 100644 --- a/src/main/java/derms/frontend/FE.java +++ b/src/main/java/derms/frontend/FE.java @@ -52,7 +52,7 @@ public class FE { System.out.println("Rm:" + RmNumber + "has bug"); // sendMulticastFaultMessageToRms(errorMessage); sendUnicastToSequencer(errorMessage); - TestLogger.log("FE: {BYZANTINE: REPLICA" + RmNumber + "}"); + //TestLogger.log("FE: {BYZANTINE: INFORM REPLICA" + RmNumber + "}"); } @Override @@ -62,7 +62,7 @@ public class FE { System.out.println("Rm:" + RmNumber + "is down"); // sendMulticastFaultMessageToRms(errorMessage); sendUnicastToSequencer(errorMessage); - TestLogger.log("FE: {CRASH: REPLICA" + RmNumber + "}"); + //TestLogger.log("FE: {CRASH: INFORM REPLICA" + RmNumber + "}"); } @Override diff --git a/src/main/java/derms/replica1/Replica1.java b/src/main/java/derms/replica1/Replica1.java index 64565e6..dd5b545 100644 --- a/src/main/java/derms/replica1/Replica1.java +++ b/src/main/java/derms/replica1/Replica1.java @@ -5,6 +5,7 @@ import derms.ReplicaManager; import derms.Request; import derms.Response; import derms.replica2.DermsLogger; +import derms.util.TestLogger; import derms.util.ThreadPool; import java.io.IOException; @@ -94,6 +95,7 @@ public class Replica1 implements Replica { log.info("Finished shutting down."); // [TEST] Restart process without byzantine failure or crash + TestLogger.log("REPLICA 1: {RESTARTED}"); startProcess(0, 0); } diff --git a/src/main/java/derms/replica2/Replica2.java b/src/main/java/derms/replica2/Replica2.java index 73a66b2..cf21d74 100644 --- a/src/main/java/derms/replica2/Replica2.java +++ b/src/main/java/derms/replica2/Replica2.java @@ -1,6 +1,7 @@ package derms.replica2; import derms.*; +import derms.util.TestLogger; import derms.util.ThreadPool; import sun.reflect.generics.reflectiveObjects.NotImplementedException; @@ -177,6 +178,7 @@ public class Replica2 implements Replica { shutdown(); // [TEST] Restart process without byzantine failure or crash + TestLogger.log("REPLICA 2: {RESTARTED}"); startProcess(0, 0); } diff --git a/src/main/java/derms/replica3/Replica3.java b/src/main/java/derms/replica3/Replica3.java index b7cf8ef..9e262e3 100644 --- a/src/main/java/derms/replica3/Replica3.java +++ b/src/main/java/derms/replica3/Replica3.java @@ -13,6 +13,7 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import derms.replica3.Logger; +import derms.util.TestLogger; public class Replica3 implements Replica{ static final InetSocketAddress announceGroup = new InetSocketAddress("225.5.5.5", 5555); @@ -130,6 +131,7 @@ public class Replica3 implements Replica{ shutdown(); // [TEST] Restart process without byzantine failure or crash + TestLogger.log("REPLICA 3: {RESTARTED}"); startProcess(0, 0); } diff --git a/src/main/java/derms/util/LogComparator.java b/src/main/java/derms/util/LogComparator.java index 6b629a6..da3736c 100644 --- a/src/main/java/derms/util/LogComparator.java +++ b/src/main/java/derms/util/LogComparator.java @@ -7,7 +7,21 @@ public class LogComparator { public static boolean compareLineCounts(String actualFilePath, String expectedFilePath) throws IOException { long actualLineCount = Files.lines(Paths.get(actualFilePath)).count(); long expectedLineCount = Files.lines(Paths.get(expectedFilePath)).count(); - + System.out.println("XXXXXXXXX ACTUAL LINE: " + actualLineCount); + System.out.println("XXXXXXXXX EXPECTED: " + expectedLineCount); return actualLineCount == expectedLineCount; } +public static boolean containsSuccess(String filePath) throws IOException { + return Files.lines(Paths.get(filePath)).anyMatch(line -> line.contains("SUCCESS")); +} + +public static boolean compareFiles(String actualFilePath, String expectedFilePath) throws IOException { + boolean lineCountsMatch = compareLineCounts(actualFilePath, expectedFilePath); + boolean actualContainsSuccess = containsSuccess(actualFilePath); + System.out.println("XXXXXXXXX ACTUAL SUCCESS: " + actualContainsSuccess); + boolean expectedContainsSuccess = containsSuccess(expectedFilePath); + System.out.println("XXXXXXXXX EXPECTED SUCCESS: " + expectedContainsSuccess); + + return lineCountsMatch && actualContainsSuccess && expectedContainsSuccess; +} }
\ No newline at end of file |