use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram in project BPjs by bThink-BGU.
the class BProgramSyncSnapshotClonerTest method testSerialization.
@Test
public void testSerialization() throws Exception {
System.out.println("\nSTART Serialization test");
BProgram bprog = new SingleResourceBProgram("BProgramSyncSnapshotClonerTest.js");
BProgramSyncSnapshot cur = bprog.setup();
ExecutorService exSvc = ExecutorServiceMaker.makeWithName("test");
cur = cur.start(exSvc);
cur.triggerEvent(cur.getStatements().stream().flatMap(s -> s.getRequest().stream()).findFirst().get(), exSvc, emptySet());
BProgramSyncSnapshotIO io = new BProgramSyncSnapshotIO(bprog);
byte[] out = io.serialize(cur);
System.out.println("de-serializing\n");
io.deserialize(out);
System.out.println("END Serialization test\n");
}
use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram 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()));
}
use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram in project BPjs by bThink-BGU.
the class GetTimeTest method test.
@Test
public void test() throws InterruptedException {
BProgram sut = new SingleResourceBProgram("getTimeTest.js");
long timePre = System.currentTimeMillis();
new BProgramRunner(sut).run();
long timePost = System.currentTimeMillis();
Long actual = sut.getFromGlobalScope("theTime", Long.class).get();
assertTrue((actual >= timePre) && (actual <= timePost));
}
use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram in project BPjs by bThink-BGU.
the class InterruptHandlerTest method echoEventTest.
@Test
public void echoEventTest() throws InterruptedException {
BProgramRunner sut = new BProgramRunner(new SingleResourceBProgram("InterruptHandler.js"));
sut.addListener(new PrintBProgramRunnerListener());
InMemoryEventLoggingListener eventLogger = sut.addListener(new InMemoryEventLoggingListener());
sut.run();
eventLogger.getEvents().forEach(e -> System.out.println(e));
EventPattern expected = new EventPattern().append(new BEvent("boom")).append(new BEvent("boom")).append(new BEvent("internalValue"));
assertTrue(expected.matches(eventLogger.getEvents()));
}
use of il.ac.bgu.cs.bp.bpjs.model.SingleResourceBProgram in project BPjs by bThink-BGU.
the class InterruptHandlerTest method illegalBsyncTest.
@Test(expected = BProgramException.class)
public void illegalBsyncTest() throws InterruptedException {
BProgramRunner sut = new BProgramRunner(new SingleResourceBProgram("InterruptHandler_illegal.js"));
sut.addListener(new PrintBProgramRunnerListener());
sut.run();
fail("Program should have terminated in error.");
}
Aggregations