package javax.realtime.test.clock; import javax.realtime.AbsoluteTime; import javax.realtime.Clock; import javax.realtime.RelativeTime; import unitTest_Remove.TestCase; public class TestRealtimeClock extends TestCase { public TestRealtimeClock(String name) { super(name); } public void test (int i) { System.out.println("TestRealtimeClock.test begin"); Clock clk = Clock.getRealtimeClock(); System.out.println("TestRealtimeClock.test ..."); RelativeTime res, res2; AbsoluteTime dest; switch (i) { // RelativeTime getEpochOffset() case 1: clk.getEpochOffset(); break; // RelativeTime getResolution () case 2: clk.getResolution(); break; // RelativeTime getResolution(RelativeTime dest) case 3: res = new RelativeTime(); res2 = clk.getResolution(res); break; case 4: res = null; res2 = clk.getResolution(res); break; // AbsoluteTime getTime () case 5: clk.getTime(); break; // AbsoluteTime getTime (AbsoluteTime dest) case 6: dest = new AbsoluteTime(); clk.getTime(dest); break; case 7: dest = null; clk.getTime(dest); break; // Clock test from Anders P. Ravn and Hans Søndergaard: // A Test Suite for Safety-Critical Java using JML // Proceedings of the 11th International Workshop on Java Technologies // for Real-time and Embedded Systems, JTRES 2013. // Association for Computing Machinery, 2013. pp 80-88. //case 8: clockTest(clk); break; default: break; } } public static final int testCount = 8; // final int SIZE = 20; // AbsoluteTime[] sample; // boolean failure; // RelativeTime resolution; // // // /*@ // behaviour // requires true; // // ensures !failure; // ensures // (\forall int i; 0 < i && i < SIZE; // sample[i-1].compareTo(sample[i]) < 0); // // ensures // (\forall int i; 0 < i && i < SIZE; // (sample[i]).subtract(sample[i-1]). // compareTo(resolution) >= 0 ); // @*/ // void clockTest(Clock c) { // resolution = c.getResolution(); // final int MAXLOOPS = 10000; // sample= new AbsoluteTime[SIZE]; // failure = false; // // for (int i = 0; i < SIZE; i++) // sample[i] = new AbsoluteTime(c); // // c.getTime(sample[0]); // for (int i = 1; i < SIZE; i++){ // int j = 0; // do { // c.getTime(sample[i]); // j++; // } // while (sample[i].subtract(sample[i-1]). compareTo (resolution) < 0 && j < MAXLOOPS ); // // if (j == MAXLOOPS) { // failure = true; break; // } // } // } }