package javax.realtime.test;
import javax.realtime.AperiodicParameters;
import javax.realtime.PeriodicParameters;
import javax.realtime.PriorityParameters;
import javax.realtime.RelativeTime;
import javax.safetycritical.AperiodicEventHandler;
import javax.safetycritical.StorageParameters;
import javax.safetycritical.TestPortal;
import javax.scj.util.Const;
import org.jmlspecs.utils.JmlAssertionError;
import test.BasicJMLTest;
import unitTest.TestCase;
import unitTest.TestResult;
import unitTest.TestSuite;
public class TckTestPeriodicParameters extends BasicJMLTest {
public static void main(String[] args) {
Const.setDefaultErrorReporter();
TestSuite suite = new TestSuite();
TestResult result = new TestResult();
int numberOfCases = TestPeriodicParameters.testCount;
TestCase test = new TestPeriodicParameters(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/realtime/PeriodicParameters.java";
}
}
class TestPeriodicParameters extends TestCase
{
// --- Stub class ----------------------------------
class AperiodicEventHandlerStub extends AperiodicEventHandler
{
public AperiodicEventHandlerStub(PriorityParameters priority,
AperiodicParameters release,
StorageParameters storage)
{
super (priority, release, storage);
}
public void handleAsyncEvent ()
{
}
}
//--- TestPeriodicParameters ---------------------------------
static final int testCount = 18;
public TestPeriodicParameters(TestResult result, int testCount) {
super(result, testCount);
}
public void test (int i)
{
RelativeTime time_0 = new RelativeTime (0, 0);
RelativeTime time_1 = new RelativeTime (1, 0);
RelativeTime time_2 = new RelativeTime (2, 0);
TestPortal.ManagedMemory_allocateBackingStore(1000);
AperiodicEventHandler miss =
new AperiodicEventHandlerStub(
new PriorityParameters(1), new AperiodicParameters(),
new StorageParameters (1000L, new long[]{ 100L }, 100L, 200L, 200L) );
switch (i) {
// PeriodicParameters(RelativeTime start, RelativeTime period):
case 1:
try { new PeriodicParameters(null, null);
assert false;}
catch (IllegalArgumentException e){};
break;
// start == null
case 2:
try { new PeriodicParameters(null, time_0);
assert false;}
catch (JmlAssertionError e){};
break;
// period < 0
case 3:
try { new PeriodicParameters(null, new RelativeTime (-1, 0));
assert false;}
catch (JmlAssertionError e){} // invariant in superclass
break;
case 4:
try { new PeriodicParameters(null, new RelativeTime (0, -1));
assert false;}
catch (JmlAssertionError e){} // invariant in superclass
break;
// start != null
case 5:
try { new PeriodicParameters(time_0, null);
assert false;}
catch (IllegalArgumentException e){};
break;
case 6:
new PeriodicParameters(time_0, time_1);
break;
// start < 0
case 7:
try { new PeriodicParameters(new RelativeTime (-1, 0), time_1);
assert false;}
catch (JmlAssertionError e){};
break;
case 8:
try { new PeriodicParameters(new RelativeTime (0, -1), time_1);
assert false;}
catch (JmlAssertionError e){};
break;
// PeriodicParameters(RelativeTime start, RelativeTime period,
// RelativeTime deadline, AperiodicEventHandler missHandler):
case 9:
try { new PeriodicParameters(null, null, null, null);}
catch (IllegalArgumentException e){};
break;
case 10:
new PeriodicParameters(time_0, time_1, null, null);
break;
case 11:
new PeriodicParameters(time_0, time_2, time_1, null);
break;
case 12:
new PeriodicParameters(time_0, time_2, time_1, miss);
break;
// start < 0
case 13:
try { new PeriodicParameters (new RelativeTime (-1, 0),
time_2, time_1, miss);
assert false;}
catch (JmlAssertionError e){}
break;
case 14:
try { new PeriodicParameters (new RelativeTime (0, -1),
time_2, time_1, miss);
assert false; }
catch (JmlAssertionError e){}
break;
// period < 0
case 15:
try { new PeriodicParameters (null, new RelativeTime (-1, 0),
time_1, miss);
assert false;}
catch (JmlAssertionError e){}
break;
case 16:
try { new PeriodicParameters (null, new RelativeTime (0, -1),
time_1, miss);
assert false; }
catch (JmlAssertionError e){}
break;
// deadline < 0
case 17:
try { new PeriodicParameters (null, time_1,
new RelativeTime (-1, 0), miss);
assert false;}
catch (JmlAssertionError e){} // invariant in superclass
break;
case 18:
try { new PeriodicParameters (null, time_1,
new RelativeTime (0, -1), miss);
assert false; }
catch (JmlAssertionError e){} // invariant in superclass
break;
default: break;
}
}
}