package javax.realtime.test; import javax.realtime.AbsoluteTime; import javax.realtime.Clock; import javax.realtime.RelativeTime; import javax.scj.util.Const; import test.BasicJMLTest; import unitTest.TestCase; import unitTest.TestResult; import unitTest.TestSuite; public class TckTestRelativeTime extends BasicJMLTest { public static void main(String[] args) { Const.setDefaultErrorReporter(); TestSuite suite = new TestSuite(); TestResult result = new TestResult(); int numberOfCases = TestRelativeTime.testCount; TestCase test = new TestRelativeTime(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 TestRelativeTime 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; } } //--- TestAbsoluteTime --------------------------------- static final int testCount = 76; public TestRelativeTime (TestResult result, int testCount) { super(result, testCount); } public void test(int i) { RelativeTime rel, rel1, rel2; AbsoluteTime abs; switch (i) { // Inherited from HighResolutionTime // void set(HighResolutionTime time) case 1: rel = new RelativeTime(1,1,Clock.getRealtimeClock()); try{rel.set(null); assert false;} catch (IllegalArgumentException e){}; break; case 2: rel = new RelativeTime(); abs = new AbsoluteTime(); try{rel.set(abs); assert false;} catch (ClassCastException e){}; break; case 3: rel = new RelativeTime(1,2); rel.set(rel); break; case 4: rel = new RelativeTime(1,2); rel1 = new RelativeTime(2,2,null); rel1.set(rel); break; case 5: rel = new RelativeTime(1,2); rel2 = new RelativeTime(2,2); rel2.set(rel); break; // void set (long millis) case 6: rel1 = new RelativeTime(2,2); rel1.set(1); break; // void set (long millis, int nanos) case 7: rel = new RelativeTime(1,2); rel.set(0,1000001); break; case 8: rel = new RelativeTime(1,2); rel.set(0,-1000001); break; // case 9: rel1 = new RelativeTime(1,2); // does not woork // rel1.set(Long.MAX_VALUE,1000001); break; // case 10: rel1 = new RelativeTime(1,2); // rel1.set(Long.MIN_VALUE,-1000001); break; // boolean equals (HighResolutionTime time) case 11: rel = new RelativeTime(1,2); rel.equals(null); break; case 12: rel = new RelativeTime(1,2); rel.equals(this); break; case 13: rel = new RelativeTime(1,2); rel.equals(rel); break; case 14: rel = new RelativeTime(1,2); rel1 = new RelativeTime(1,3); rel1.equals(rel); break; // int compareTo (HighResolutionTime time) case 15: try { rel = new RelativeTime(1,2); rel.compareTo(null); assert false;} catch (IllegalArgumentException e){}; break; case 16: try { rel = new RelativeTime(1,2); abs = new AbsoluteTime(1,2); rel.compareTo(abs); assert false;} catch (ClassCastException e){}; break; case 17: try { rel1 = new RelativeTime(2, 2); rel2 = new RelativeTime(2, 2, new ClockStub()); rel1.compareTo(rel2);assert false; } catch (IllegalArgumentException e){ }; break; case 18: new RelativeTime(1,2,null).compareTo(new RelativeTime(2,2,null)); break; case 19: new RelativeTime(2,1,null).compareTo(new RelativeTime(2,2,null)); break; case 20: new RelativeTime(2,2,null).compareTo(new RelativeTime(2,2,null)); break; case 21: new RelativeTime(2,2,null).compareTo(new RelativeTime(1,2,null)); break; case 22: new RelativeTime(2,2,null).compareTo(new RelativeTime(2,1,null)); break; // RelativeTime() case 23: new RelativeTime(); break; // RelativeTime(long millis, int nanos) case 24: new RelativeTime(0,0); break; case 25: new RelativeTime(0,1000001); break; case 26: new RelativeTime(0,-1000001); break; case 27: new RelativeTime(-1,1); break; case 28: new RelativeTime(1,-1); break; // case 29: rel = new RelativeTime(Long.MAX_VALUE,1000001); // assert rel.getNanoseconds() == -999999; break; // case 30: rel = new RelativeTime(Long.MIN_VALUE,-1000001); // assert rel.getNanoseconds() == 1; break; // RelativeTime(RelativeTime time) case 31: rel = new RelativeTime(); new RelativeTime(rel); break; case 32: rel = null; try{ new RelativeTime(rel); assert false;} catch (IllegalArgumentException e){}; break; // RelativeTime (long millis, int nanos, Clock clock) case 33: new RelativeTime(0,0,null); break; case 34: new RelativeTime(0,1000001,null); break; case 35: new RelativeTime(0,-1000001,null); break; case 36: new RelativeTime(-1,1,null); break; case 37: new RelativeTime(1,-1,null); break; // case 38: rel = new RelativeTime(Long.MAX_VALUE,1000001,null); // assert rel.getNanoseconds() == -999999; break; // case 39: rel = new RelativeTime(Long.MIN_VALUE,-1000001,null); // assert rel.getNanoseconds() == 1; break; case 40: new RelativeTime(1,1,Clock.getRealtimeClock()); break; // RelativeTime (Clock clock) case 41: Clock c= null; new RelativeTime(c); break; case 42: new RelativeTime(Clock.getRealtimeClock()); break; // RelativeTime add (long millis, int nanos) case 43: rel = new RelativeTime(); rel.add(0,0); break; case 44: rel = new RelativeTime(); rel.add(0,1000001); break; case 45: rel = new RelativeTime(); rel.add(0,-1000001); break; case 46: rel = new RelativeTime(); rel.add(-1,1); break; case 47: rel = new RelativeTime(); rel.add(1,-1); break; // case 48: rel = new RelativeTime(); rel.add(Long.MAX_VALUE,1000001); // assert rel.getNanoseconds() == -999999; break; // case 49: rel = new RelativeTime(); rel.add(Long.MIN_VALUE,-1000001); // assert rel.getNanoseconds() == 1; break; // RelativeTime add (long millis, int nanos, RelativeTime dest) case 50: rel = new RelativeTime(); rel.add(0,0,null); break; case 51: rel = new RelativeTime(); rel.add(0,1000001,null); break; case 52: rel = new RelativeTime(); rel.add(0,-1000001,null); break; case 53: rel = new RelativeTime(); rel.add(-1,1,null); break; case 54: rel = new RelativeTime(); rel.add(1,-1,null); break; // case 55: rel = new RelativeTime(); rel.add(Long.MAX_VALUE,1000001,null); // assert rel.getNanoseconds() == -999999; break; // // case 56: rel = new RelativeTime(); rel.add(Long.MIN_VALUE,-1000001,null); // assert rel.getNanoseconds() == 1; break; case 57: rel1 = new RelativeTime(1,-1); rel = new RelativeTime(); rel.add(0,0,rel1); break; case 58: rel = new RelativeTime(1,-1); rel.add(0,1000001,rel); break; case 59: rel = new RelativeTime(1,-1); rel.add(0,-1000001,rel); break; // RelativeTime add (RelativeTime time) case 60: rel = new RelativeTime(); rel.add(new RelativeTime(1,-1)); break; case 61: rel1 = new RelativeTime(); rel2 = new RelativeTime(1,1,null); rel1.add(rel2); break; case 62: rel1 = new RelativeTime(1,1,Clock.getRealtimeClock()); rel2 = new RelativeTime(1,1,null); rel1.add(rel2); break; case 63: rel = new RelativeTime(); try{rel.add(null); assert false;} catch (IllegalArgumentException e){}; break; case 64: rel1 = new RelativeTime(1,1,Clock.getRealtimeClock()); rel2 = new RelativeTime(1,1,new ClockStub()); try{rel1.add(rel2); assert false;} catch (IllegalArgumentException e){}; break; // RelativeTime add (RelativeTime time, RelativeTime dest) case 65: rel = new RelativeTime(); rel.add(new RelativeTime(1,-1),null); break; case 66: rel = new RelativeTime(); try{rel.add(null,null); assert false;} catch (IllegalArgumentException e){}; break; case 67: rel1 = new RelativeTime(1,1,Clock.getRealtimeClock()); rel2 = new RelativeTime(1,1,new ClockStub()); try { rel1.add(rel2,null); assert false;} catch (IllegalArgumentException e){}; break; case 68: rel1 = new RelativeTime(); rel = new RelativeTime(); rel.add(new RelativeTime(1,-1),rel1); break; case 69: rel = new RelativeTime(); rel.add(new RelativeTime(1,-1),rel); break; // RelativeTime subtract (RelativeTime time) case 70: rel = new RelativeTime(); rel.subtract(new RelativeTime(1,-1)); break; case 71: rel = new RelativeTime(); try{rel1 = null; rel.subtract(rel1); assert false;} catch (IllegalArgumentException e){}; break; case 72: rel1 = new RelativeTime(1,1,Clock.getRealtimeClock()); rel2 = new RelativeTime(1,1,new ClockStub()); try { rel1.subtract(rel2); assert false; } catch (IllegalArgumentException e){}; break; // RelativeTime subtract (RelativeTime time, RelativeTime dest) case 73: rel = new RelativeTime(); rel.subtract(new RelativeTime(1,-1),null); break; case 74: rel = new RelativeTime(); rel.subtract(new RelativeTime(1,-1),rel); break; case 75: rel = new RelativeTime(); try{rel1 = null; rel.subtract(null,rel1); assert false;} catch (IllegalArgumentException e){}; break; case 76: rel = new RelativeTime(1,1,Clock.getRealtimeClock()); rel2 = new RelativeTime(1,1,new ClockStub()); try{rel1 = null; rel.subtract(rel2, rel1); assert false;} catch (IllegalArgumentException e){}; break; default: break; } } }