FileDocCategorySizeDatePackage
SystemTest.javaAPI DocAndroid 1.5 API2508Wed May 06 22:41:02 BST 2009tests.api.java.util.concurrent

SystemTest

public class SystemTest extends JSR166TestCase

Fields Summary
static final long
MILLIS_ROUND
Worst case rounding for millisecs; set for 60 cycle millis clock. This value might need to be changed os JVMs with coarser System.currentTimeMillis clocks.
Constructors Summary
Methods Summary
public static voidmain(java.lang.String[] args)

        junit.textui.TestRunner.run(suite());   
    
public static junit.framework.Testsuite()

        return new TestSuite(SystemTest.class);
    
public voidtestNanoTime1()
Nanos between readings of millis is no longer than millis (plus possible rounding). This shows only that nano timing not (much) worse than milli.


                                 
       
        try {
            long m1 = System.currentTimeMillis();
            Thread.sleep(1);
            long n1 = System.nanoTime();
            Thread.sleep(SHORT_DELAY_MS);
            long n2 = System.nanoTime();
            Thread.sleep(1);
            long m2 = System.currentTimeMillis();
            long millis = m2 - m1;
            long nanos = n2 - n1;
            assertTrue(nanos >= 0);
            long nanosAsMillis = nanos / 1000000;
            assertTrue(nanosAsMillis <= millis + MILLIS_ROUND);
        }
        catch(InterruptedException ie) {
            unexpectedException();
        }
    
public voidtestNanoTime2()
Millis between readings of nanos is less than nanos, adjusting for rounding. This shows only that nano timing not (much) worse than milli.

        try {
            long n1 = System.nanoTime();
            Thread.sleep(1);
            long m1 = System.currentTimeMillis();
            Thread.sleep(SHORT_DELAY_MS);
            long m2 = System.currentTimeMillis();
            Thread.sleep(1);
            long n2 = System.nanoTime();
            long millis = m2 - m1;
            long nanos = n2 - n1;
            
            assertTrue(nanos >= 0);
            long nanosAsMillis = nanos / 1000000;
            assertTrue(millis <= nanosAsMillis + MILLIS_ROUND);
        }
        catch(InterruptedException ie) {
            unexpectedException();
        }