diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2020-01-06 12:57:33 +0100 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2020-01-06 13:12:54 +0100 |
commit | 8a44299b0072a8bedd1c0d74f92d258379c8447a (patch) | |
tree | 0ac7614ab80ca530f726bb83fa33fea76c9b5ab4 | |
parent | 88cc1f5da8ded831b15f4970e8877494d449a471 (diff) |
Increase freshness threshold in tests
5 files changed, 12 insertions, 4 deletions
diff --git a/build.gradle b/build.gradle index 9ef400c..01e8685 100644 --- a/build.gradle +++ b/build.gradle @@ -18,6 +18,10 @@ ext.hostname = { return System.getProperty("hostname") ?: "localhost" } +ext.freshnessPeriod = { + return System.getProperty("freshnessPeriod") ?: 60 * 1000 +} + repositories { // Use jcenter for resolving dependencies. // You can declare any Maven/Ivy/file repository here. @@ -56,6 +60,7 @@ task runAgent(type: JavaExec) { classpath = sourceSets.main.runtimeClasspath main = 'pl.edu.mimuw.cloudatlas.agent.Agent' systemProperty 'java.rmi.server.hostname', hostname() + systemProperty 'freshness_period', freshnessPeriod() } task runClient(type: JavaExec) { diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java index 0efa710..26f0e0b 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/Agent.java @@ -46,7 +46,8 @@ public class Agent { HashMap<ModuleType, Module> modules = new HashMap<ModuleType, Module>(); modules.put(ModuleType.TIMER_SCHEDULER, new TimerScheduler(ModuleType.TIMER_SCHEDULER)); modules.put(ModuleType.RMI, new Remik()); - modules.put(ModuleType.STATE, new Stanik()); + Long freshnessPeriod = new Long(System.getProperty("freshness_period")); + modules.put(ModuleType.STATE, new Stanik(freshnessPeriod)); modules.put(ModuleType.QUERY, new Qurnik()); // TODO add modules as we implement them return modules; diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java index 6c0f380..6761c94 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java @@ -94,6 +94,8 @@ public class Stanik extends Module { private boolean pruneZMI(ZMI zmi, ValueTime time) { Value timestamp = zmi.getAttributes().get("timestamp"); + boolean isLeaf = zmi.getSons().isEmpty(); + List<ZMI> sonsToRemove = new LinkedList(); if (ValueUtils.valueLower(timestamp, time.subtract(new ValueDuration(freshnessPeriod)))) { if (zmi.getFather() != null) { @@ -111,7 +113,7 @@ public class Stanik extends Module { zmi.removeSon(son); } - if (zmi.getSons().isEmpty()) { + if (!isLeaf && zmi.getSons().isEmpty()) { return true; } diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/agent/AgentIntegrationTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/agent/AgentIntegrationTest.java index e4684cd..f69ed8f 100644 --- a/src/test/java/pl/edu/mimuw/cloudatlas/agent/AgentIntegrationTest.java +++ b/src/test/java/pl/edu/mimuw/cloudatlas/agent/AgentIntegrationTest.java @@ -47,7 +47,7 @@ public class AgentIntegrationTest { public static void bindApi() throws Exception { registryProcess = Runtime.getRuntime().exec("./scripts/registry"); Thread.sleep(10000); - agentProcess = Runtime.getRuntime().exec("./gradlew runAgent -Dhostname=localhost"); + agentProcess = Runtime.getRuntime().exec("./gradlew runAgent -Dhostname=localhost -DfreshnessPeriod=10000000"); Thread.sleep(10000); registry = LocateRegistry.getRegistry("localhost"); diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java index 431122b..2bd63f6 100644 --- a/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java +++ b/src/test/java/pl/edu/mimuw/cloudatlas/client/ClientTest.java @@ -37,7 +37,7 @@ public class ClientTest { public static void bindApi() throws Exception { registryProcess = Runtime.getRuntime().exec("./scripts/registry"); Thread.sleep(10000); - agentProcess = Runtime.getRuntime().exec("./gradlew runAgent -Dhostname=localhost"); + agentProcess = Runtime.getRuntime().exec("./gradlew runAgent -Dhostname=localhost -DfreshnessPeriod=10000000"); Thread.sleep(10000); registry = LocateRegistry.getRegistry("localhost"); |