package javax.safetycritical.test;
import javax.realtime.PeriodicParameters;
import javax.realtime.PriorityParameters;
import javax.realtime.RelativeTime;
import javax.safetycritical.Frame;
import javax.safetycritical.Mission;
import javax.safetycritical.PeriodicEventHandler;
import javax.safetycritical.StorageParameters;
import javax.safetycritical.TestPortal;
import javax.scj.util.Const;
import test.BasicJMLTest;
import unitTest.TestCase;
import unitTest.TestResult;
import unitTest.TestSuite;
public class TckTestFrame1 extends BasicJMLTest {
public static void main(String[] args) {
Const.setDefaultErrorReporter();
TestSuite suite = new TestSuite();
TestResult result = new TestResult();
int numberOfCases = TestFrame1.testCount;
TestCase test = new TestFrame1(result, numberOfCases);
suite.addTest(test);
suite.run(result);
result.print(test.getClass().getName(), numberOfCases);
if (result.JMLerrorCount() + result.errorCount() == 0)
{
args = null;
}
}
@Override
public String getJMLAnnotationCommand() {
return "java -jar WORKSPACE/OpenJMLTest/lib/openjml.jar -cp ICECAPSDK/bin/ -d ICECAPSDK/bin/ -noInternalSpecs -rac -racCheckAssumptions -racJavaChecks -nullableByDefault -showNotImplemented -specspath ./specs ICECAPSDK/src/javax/safetycritical/Frame.java";
}
}
class TestFrame1 extends TestCase {
// --- Stub classes ----------------------------------
static StorageParameters storageParameters_Handlers = new StorageParameters(Const.PRIVATE_BACKING_STORE,
new long[] { Const.HANDLER_STACK_SIZE }, Const.PRIVATE_MEM, 0, 0);
class PeriodicEvhStub extends PeriodicEventHandler {
int count = 0;
protected PeriodicEvhStub(PriorityParameters priority, PeriodicParameters periodic, StorageParameters storage) {
super(priority, periodic, storage);
}
public void handleAsyncEvent() {
devices.Console.println("pevh");
count++;
if (count > 1)
Mission.getMission().requestTermination();
}
}
//--- TestFrame1 ---------------------------------
static final int testCount = 7;
TestFrame1(TestResult result, int testCount)
{
super (result, testCount);
}
public void test(int i) {
TestPortal.ManagedMemory_allocateBackingStore(Const.PRIVATE_BACKING_STORE);
PeriodicEventHandler pevh = new PeriodicEvhStub(new PriorityParameters(1), new PeriodicParameters(
new RelativeTime(), new RelativeTime(2000, 0)), storageParameters_Handlers);
switch (i) {
//public Frame(RelativeTime duration, PeriodicEventHandler[] handlers)
case 1: // Frame (null, null):
try {
new Frame(null, null);
assert false;
} catch (IllegalArgumentException e) {
}
;
break;
case 2: // Frame (not null, null):
try {
new Frame(new RelativeTime(1, 1), null);
assert false;
} catch (IllegalArgumentException e) {
}
;
break;
case 3: // Frame (not null, handlers not null but empty):
new Frame(new RelativeTime(1, 1), new PeriodicEventHandler[0]);
break;
case 4: // Frame (null, handlers not null):
try {
new Frame(null, new PeriodicEventHandler[] { pevh });
assert false;
} catch (IllegalArgumentException e) {
}
;
break;
case 5: // Frame (not null, handlers not null); millisecs < 0
try {
new Frame(new RelativeTime(-1, 1), new PeriodicEventHandler[] { pevh });
assert false;
} catch (IllegalArgumentException e) {
}
;
break;
case 6: // Frame (not null, handlers not null); millisecs < 0 && nanosecs < 0
try {
new Frame(new RelativeTime(-1, -1), new PeriodicEventHandler[] { pevh });
assert false;
} catch (IllegalArgumentException e) {
}
;
break;
case 7: // Frame (not null, handlers not null but empty); time > 0
new Frame(new RelativeTime(-1, 2 * 1000000), new PeriodicEventHandler[0]);
break;
default:
break;
}
}
}