blob: 8cc93e86477c2c92958869704904f1d1a0d6deed (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
package testing.examples;
import testing.*;
import java.util.Scanner;
public class InteractiveTest {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
HeadlessSimulationRunner runner = new HeadlessSimulationRunner();
System.out.println("=== Interactive Headless Test ===");
System.out.println("\nAvailable simulations:");
System.out.println("1. ping-pong.dat");
System.out.println("2. broadcast.dat");
System.out.println("3. berkeley.dat");
System.out.println("4. raft-working.dat");
System.out.print("\nEnter simulation filename (or full path): ");
String filename = scanner.nextLine();
// Add saved-simulations/ prefix if not present
if (!filename.contains("/")) {
filename = "saved-simulations/" + filename;
}
System.out.print("Run duration in ms (default 2000): ");
String durationStr = scanner.nextLine();
long duration = durationStr.isEmpty() ? 2000 : Long.parseLong(durationStr);
System.out.print("Pattern to search for (optional): ");
String pattern = scanner.nextLine();
try {
System.out.println("\nRunning simulation...");
SimulationResult result = runner.runSimulation(filename, duration);
System.out.println("\nResults:");
System.out.println("- Total logs: " + result.getAllLogs().size());
System.out.println("- Processes: " + result.getMetrics().getNumProcesses());
if (!pattern.isEmpty()) {
int count = result.countLogs(pattern);
System.out.println("- Pattern '" + pattern + "' found: " + count + " times");
if (count > 0) {
System.out.println("\nMatching logs:");
result.findAll(pattern).stream()
.limit(5)
.forEach(log -> System.out.println(" " + log));
}
}
System.out.println("\nFirst 10 logs:");
result.getAllLogs().stream()
.limit(10)
.forEach(log -> System.out.println(" [" + log.getTimestamp() + "] " +
log.getMessage()));
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
} finally {
runner.shutdown();
scanner.close();
}
}
}
|