package javax.realtime.test;
import javax.realtime.AbsoluteTime;
import javax.realtime.Clock;
import javax.realtime.RelativeTime;
import javax.realtime.TestPortal.HighResolutionTimeStub;
import javax.scj.util.Const;
import test.BasicJMLTest;
import unitTest.TestCase;
import unitTest.TestResult;
import unitTest.TestSuite;
public class TckTestHighResolutionTime extends BasicJMLTest {
public static void main(String[] args) {
Const.setDefaultErrorReporter();
TestSuite suite = new TestSuite();
TestResult result = new TestResult();
int numberOfCases = TestHighResolutionTime.testCount;
TestCase test = new TestHighResolutionTime(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/HighResolutionTime.java ICECAPSDK/src/javax/realtime/AbsoluteTime.java ICECAPSDK/src/javax/realtime/RelativeTime.java";
}
}
class TestHighResolutionTime extends TestCase
{
// --- Stub classes ----------------------------------
class ClockStub extends Clock
{
public ClockStub() {
super(false);
}
public RelativeTime getEpochOffset() {
return null;
}
public RelativeTime getResolution() {
return null;
}
public RelativeTime getResolution(RelativeTime dest) {
return null;
}
public AbsoluteTime getTime() {
return null;
}
public AbsoluteTime getTime(AbsoluteTime dest) {
return null;
}
}
//--- TestHighResolutionTime ---------------------------------
static final int testCount = 26;
public TestHighResolutionTime(TestResult result, int testCount) {
super(result, testCount);
}
public void test(int i) {
HighResolutionTimeStub hrs, hrs1;
AbsoluteTime abs;
switch (i) {
// HighResolutionTime(long millis, int nanos, Clock clock)
case 1:
new HighResolutionTimeStub(0,0,null); break;
case 2:
new HighResolutionTimeStub(0,1000001,null); break;
case 3:
new HighResolutionTimeStub(0,-1000001,null); break;
case 4:
new HighResolutionTimeStub(-1,1,null); break;
case 5:
new HighResolutionTimeStub(1,-1,null); break;
// case 6:
// hrs = new HighResolutionTimeStub(Long.MAX_VALUE,1000001,null);
// assert hrs.getNanoseconds() == -999999;
// break;
// case 7:
// hrs = new HighResolutionTimeStub(Long.MIN_VALUE,-1000001,null);
// assert hrs.getNanoseconds() == 999999;
// break;
// set
case 8:
hrs = new HighResolutionTimeStub(1,1,Clock.getRealtimeClock());
try { hrs.set(null); assert false; }
catch (IllegalArgumentException e){};
break;
case 9:
abs = new AbsoluteTime(); hrs = new HighResolutionTimeStub(1,1,null);
try { hrs.set(abs); assert false; }
catch (ClassCastException e){};
break;
case 10:
hrs = new HighResolutionTimeStub(1,1,null);
hrs.set(hrs); break;
case 11:
hrs = new HighResolutionTimeStub(1,1,null);
hrs1 = new HighResolutionTimeStub(2,2,null);
hrs1.set(hrs);
break;
case 12:
hrs = new HighResolutionTimeStub(1,1,null);
hrs.set(1); break;
// case 13:
// hrs = new HighResolutionTimeStub(1,1,null);
// hrs.set(Long.MAX_VALUE,1000001); break;
// case 14:
// hrs = new HighResolutionTimeStub(1,1,null);
// hrs.set(Long.MIN_VALUE,-1000001); break;
// equals
case 15:
hrs = new HighResolutionTimeStub(1,1,null);
hrs.equals(null); break;
case 16:
hrs = new HighResolutionTimeStub(1,1,null);
hrs.equals(this); break;
case 17:
hrs = new HighResolutionTimeStub(1,1,null);
hrs1 = new HighResolutionTimeStub(2,2,null);
hrs1.equals(hrs1); break;
case 18:
hrs = new HighResolutionTimeStub(1,1,null);
hrs1 = new HighResolutionTimeStub(2,2,null);
hrs1.equals(hrs); break;
// public int compareTo (HighResolutionTime time)
case 19:
hrs = new HighResolutionTimeStub(1,1,null);
try { hrs.compareTo(null); assert false; }
catch (IllegalArgumentException e){}; break;
case 20:
hrs = new HighResolutionTimeStub(1,1,null);
abs = new AbsoluteTime();
try { hrs.compareTo(abs); assert false; }
catch (ClassCastException e){}; break;
case 21:
hrs = new HighResolutionTimeStub(2,2,Clock.getRealtimeClock());
hrs1 = new HighResolutionTimeStub(2,2,new ClockStub());
try { hrs.compareTo(hrs1); assert false; }
catch (IllegalArgumentException e){};
break;
case 22:
new HighResolutionTimeStub(1,2,null).
compareTo(new HighResolutionTimeStub(2,2,null)); break;
case 23:
new HighResolutionTimeStub(2,1,null).
compareTo(new HighResolutionTimeStub(2,2,null)); break;
case 24:
new HighResolutionTimeStub(2,2,null).
compareTo(new HighResolutionTimeStub(2,2,null)); break;
case 25:
new HighResolutionTimeStub(2,2,null).
compareTo(new HighResolutionTimeStub(1,2,null)); break;
case 26:
new HighResolutionTimeStub(2,2,null).
compareTo(new HighResolutionTimeStub(2,1,null)); break;
default:
break;
}
}
}