use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram in project BPjs by bThink-BGU.
the class VerificationResultOptionsTest method testDeadlockedProgram.
@Test
public void testDeadlockedProgram() throws Exception {
final SingleResourceBProgram bprog = new SingleResourceBProgram("VerificationResultOptions.js");
bprog.putInGlobalScope("addWaiter", false);
bprog.putInGlobalScope("createDeadlock", true);
bprog.putInGlobalScope("createFailedAssertion", false);
DfsBProgramVerifier vfr = new DfsBProgramVerifier();
final VerificationResult res = vfr.verify(bprog);
assertEquals(VerificationResult.ViolationType.Deadlock, res.getViolationType());
assertTrue(res.isCounterExampleFound());
}
use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram in project BPjs by bThink-BGU.
the class VerificationResultOptionsTest method testOKProgram.
@Test
public void testOKProgram() throws Exception {
final SingleResourceBProgram bprog = new SingleResourceBProgram("VerificationResultOptions.js");
bprog.putInGlobalScope("addWaiter", false);
bprog.putInGlobalScope("createDeadlock", false);
bprog.putInGlobalScope("createFailedAssertion", false);
DfsBProgramVerifier vfr = new DfsBProgramVerifier();
final VerificationResult res = vfr.verify(bprog);
assertEquals(VerificationResult.ViolationType.None, res.getViolationType());
assertFalse(res.isCounterExampleFound());
}
use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram in project BPjs by bThink-BGU.
the class NamedArgsHotNColdTest method superStepTest.
@Test
public void superStepTest() throws InterruptedException {
BProgramRunner sut = new BProgramRunner(new SingleResourceBProgram("NamedArgsHotNCold.js"));
sut.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = sut.addListener(new InMemoryEventLoggingListener());
sut.run();
eventLogger.getEvents().forEach(e -> System.out.println(e));
final BEvent hotEvent = new BEvent("hotEvent");
final BEvent coldEvent = new BEvent("coldEvent");
final BEvent allDoneEvent = new BEvent("allDone");
EventPattern expected = new EventPattern().append(coldEvent).append(hotEvent).append(coldEvent).append(hotEvent).append(coldEvent).append(hotEvent).append(allDoneEvent);
assertTrue(expected.matches(eventLogger.getEvents()));
}
use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram in project BPjs by bThink-BGU.
the class EventsArraysTest method testEventsWithData.
@Test
public void testEventsWithData() throws Exception {
BProgramRunner bpr = new BProgramRunner(new SingleResourceBProgram("EventArrays.js"));
bpr.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener events = bpr.addListener(new InMemoryEventLoggingListener());
bpr.run();
assertEquals(Arrays.asList("e11", "e21"), events.getEvents().stream().map(BEvent::getName).collect(toList()));
}
use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram 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());
}
Aggregations