use of il.ac.bgu.cs.bp.bpjs.execution.BProgramRunner in project BPjs by bThink-BGU.
the class FailedAssertionTest method testNoAssertion.
@Test
public void testNoAssertion() throws InterruptedException {
final SingleResourceBProgram bprog = new SingleResourceBProgram("FailedAssertionTest.js");
BProgramRunner sut = new BProgramRunner(bprog);
sut.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = sut.addListener(new InMemoryEventLoggingListener());
System.out.println("About to start program");
bprog.putInGlobalScope("shouldFail", false);
sut.run();
assertEquals(Arrays.asList("piff", "puff", "poof!", "peff"), eventLogger.eventNames());
assertFalse(sut.hasFailedAssertion());
}
use of il.ac.bgu.cs.bp.bpjs.execution.BProgramRunner in project BPjs by bThink-BGU.
the class InterruptTest method superStepTest.
@Test
public void superStepTest() throws InterruptedException {
BProgramRunner sut = new BProgramRunner(new SingleResourceBProgram("Interrupt.js"));
sut.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = sut.addListener(new InMemoryEventLoggingListener());
sut.run();
eventLogger.getEvents().forEach(e -> System.out.println(e));
final BEvent breakingEvent = new BEvent("breaking");
assertEquals(Arrays.asList(breakingEvent, breakingEvent), eventLogger.getEvents());
}
use of il.ac.bgu.cs.bp.bpjs.execution.BProgramRunner in project BPjs by bThink-BGU.
the class DfsBProgramVerifierTest method testAAABRun.
@Test
public void testAAABRun() throws Exception {
BProgram program = new SingleResourceBProgram("AAABTrace.js");
BProgramRunner rnr = new BProgramRunner(program);
rnr.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = rnr.addListener(new InMemoryEventLoggingListener());
rnr.run();
eventLogger.getEvents().forEach(System.out::println);
assertTrue(eventNamesString(eventLogger.getEvents(), "").matches("^(AAAB)+$"));
}
use of il.ac.bgu.cs.bp.bpjs.execution.BProgramRunner in project BPjs by bThink-BGU.
the class DfsBProgramVerifierTest method deadlockRun.
@Test
public void deadlockRun() throws Exception {
BProgram program = new SingleResourceBProgram("deadlocking.js");
BProgramRunner rnr = new BProgramRunner(program);
rnr.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = rnr.addListener(new InMemoryEventLoggingListener());
rnr.run();
eventLogger.getEvents().forEach(System.out::println);
assertTrue(eventNamesString(eventLogger.getEvents(), "").matches("^A$"));
}
use of il.ac.bgu.cs.bp.bpjs.execution.BProgramRunner in project BPjs by bThink-BGU.
the class AddingBthreadsTest method superStepTest.
@Test
public void superStepTest() throws InterruptedException {
final BEvent parentDone = new BEvent("parentDone");
final BEvent kidADone = new BEvent("kidADone");
final BEvent kidBDone = new BEvent("kidBDone");
BProgramRunner sut = new BProgramRunner(new SingleResourceBProgram("AddingBthreads.js"));
sut.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = sut.addListener(new InMemoryEventLoggingListener());
sut.run();
EventSet kiddies = il.ac.bgu.cs.bp.bpjs.model.eventsets.ComposableEventSet.anyOf(kidADone, kidBDone);
EventPattern expected = new EventPattern().append(kiddies).append(kiddies).append(parentDone).append(kiddies).append(kiddies).append(parentDone);
System.out.println("Actual events:");
eventLogger.getEvents().forEach(System.out::println);
System.out.println("/Actual events");
assertTrue(expected.matches(eventLogger.getEvents()));
}
Aggregations