Skip to content

Commit 0c4be9e

Browse files
committed
[PEx] Cleanup disk tasks on exit, change defaults
Cleanup tasks/ directory on exiting Change default for schedules-per-task to 500 Change report wait time to 10 sec.
1 parent 9c84684 commit 0c4be9e

File tree

6 files changed

+25
-4
lines changed

6 files changed

+25
-4
lines changed

Src/PRuntimes/PExplicitRuntime/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,6 @@
103103
<groupId>commons-io</groupId>
104104
<artifactId>commons-io</artifactId>
105105
<version>2.11.0</version>
106-
<scope>test</scope>
107106
</dependency>
108107
<dependency>
109108
<groupId>org.apache.commons</groupId>

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/PExplicit.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import pexplicit.runtime.logger.PExplicitLogger;
99
import pexplicit.runtime.logger.StatWriter;
1010
import pexplicit.runtime.machine.PTestDriver;
11+
import pexplicit.runtime.scheduler.explicit.strategy.SearchTask;
1112
import pexplicit.utils.exceptions.BugFoundException;
1213
import pexplicit.utils.monitor.MemoryMonitor;
1314
import pexplicit.utils.monitor.TimeMonitor;
@@ -34,6 +35,7 @@ public static void main(String[] args) {
3435
PExplicitGlobal.setConfig(PExplicitOptions.ParseCommandlineArgs(args));
3536
PExplicitLogger.Initialize(PExplicitGlobal.getConfig().getVerbosity());
3637
ComputeHash.Initialize();
38+
SearchTask.Initialize();
3739

3840
// get reflections corresponding to the model
3941
Reflections reflections = new Reflections("pexplicit.model");

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/RuntimeExecutor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import pexplicit.runtime.logger.PExplicitLogger;
66
import pexplicit.runtime.logger.StatWriter;
77
import pexplicit.runtime.scheduler.explicit.ExplicitSearchScheduler;
8+
import pexplicit.runtime.scheduler.explicit.strategy.SearchTask;
89
import pexplicit.runtime.scheduler.replay.ReplayScheduler;
910
import pexplicit.utils.exceptions.BugFoundException;
1011
import pexplicit.utils.exceptions.MemoutException;
@@ -124,6 +125,7 @@ private static void process(boolean resume) throws Exception {
124125
future.cancel(true);
125126
executor.shutdownNow();
126127
scheduler.updateResult();
128+
SearchTask.Cleanup();
127129
printStats();
128130
PExplicitLogger.logEndOfRun(scheduler, Duration.between(TimeMonitor.getStart(), Instant.now()).getSeconds());
129131
}

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/commandline/PExplicitConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public class PExplicitConfig {
6161
SearchStrategyMode searchStrategyMode = SearchStrategyMode.Random;
6262
// max number of schedules per search task
6363
@Setter
64-
int maxSchedulesPerTask = 10;
64+
int maxSchedulesPerTask = 500;
6565
//max number of children search tasks
6666
@Setter
6767
int maxChildrenPerTask = 2;

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/runtime/scheduler/explicit/ExplicitSearchScheduler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ private void printProgressHeader(boolean consolePrint) {
659659
}
660660

661661
protected void printProgress(boolean forcePrint) {
662-
if (forcePrint || (TimeMonitor.findInterval(getLastReportTime()) > 5)) {
662+
if (forcePrint || (TimeMonitor.findInterval(getLastReportTime()) > 10)) {
663663
setLastReportTime(Instant.now());
664664
double newRuntime = TimeMonitor.getRuntime();
665665
printCurrentStatus(newRuntime);

Src/PRuntimes/PExplicitRuntime/src/main/java/pexplicit/runtime/scheduler/explicit/strategy/SearchTask.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package pexplicit.runtime.scheduler.explicit.strategy;
22

33
import lombok.Getter;
4+
import org.apache.commons.io.FileUtils;
45
import pexplicit.runtime.PExplicitGlobal;
56
import pexplicit.runtime.logger.PExplicitLogger;
67
import pexplicit.runtime.machine.PMachineId;
@@ -220,14 +221,31 @@ public void clearSearchUnit(int choiceNum) {
220221
searchUnits.remove(choiceNum);
221222
}
222223

224+
public static void Initialize() {
225+
String taskPath = PExplicitGlobal.getConfig().getOutputFolder() + "/tasks/";
226+
try {
227+
Files.createDirectories(Paths.get(taskPath));
228+
} catch (IOException e) {
229+
throw new RuntimeException("Failed to initialize tasks at " + taskPath, e);
230+
}
231+
}
232+
233+
public static void Cleanup() {
234+
String taskPath = PExplicitGlobal.getConfig().getOutputFolder() + "/tasks/";
235+
try {
236+
FileUtils.deleteDirectory(new File(taskPath));
237+
} catch (IOException e) {
238+
throw new RuntimeException("Failed to cleanup tasks at " + taskPath, e);
239+
}
240+
}
241+
223242
public void serializeTask() {
224243
assert (serializeFile == null);
225244
assert (prefixChoices != null);
226245
assert (searchUnits != null);
227246

228247
serializeFile = PExplicitGlobal.getConfig().getOutputFolder() + "/tasks/" + this + ".ser";
229248
try {
230-
Files.createDirectories(Paths.get(PExplicitGlobal.getConfig().getOutputFolder() + "/tasks/"));
231249
FileOutputStream fos = new FileOutputStream(serializeFile);
232250
ObjectOutputStream oos = new ObjectOutputStream(fos);
233251
oos.writeObject(this.prefixChoices);

0 commit comments

Comments
 (0)