ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/SystemTest.java
Revision: 1.1
Committed: Sun Aug 31 19:24:55 2003 UTC (20 years, 8 months ago) by dl
Branch: MAIN
Log Message:
First check-in of tests to be in tck

File Contents

# User Rev Content
1 dl 1.1 /*
2     * Written by members of JCP JSR-166 Expert Group and released to the
3     * public domain. Use, modify, and redistribute this code in any way
4     * without acknowledgement. Other contributors include Andrew Wright,
5     * Jeffrey Hayes, Pat Fischer, Mike Judd.
6     */
7    
8     import junit.framework.*;
9    
10     public class SystemTest extends TestCase {
11     public static void main(String[] args) {
12     junit.textui.TestRunner.run(suite());
13     }
14    
15     public static Test suite() {
16     return new TestSuite(SystemTest.class);
17     }
18    
19     public void testNanoTime1() {
20     // Nanos between readings of millis must be no longer than millis
21     long m1 = System.currentTimeMillis();
22     long n1 = System.nanoTime();
23    
24     // Ensure some computation that is not optimized away.
25     long sum = 0;
26     for (long i = 1; i < 10000; ++i)
27     sum += i;
28     assertTrue(sum != 0);
29    
30     long n2 = System.nanoTime();
31    
32     for (long i = 1; i < 10000; ++i)
33     sum -= i;
34     assertTrue(sum == 0);
35    
36     long m2 = System.currentTimeMillis();
37     long millis = m2 - m1;
38     long nanos = n2 - n1;
39    
40     assertTrue(nanos >= 0);
41     assertTrue(nanos <= millis * 1000000);
42     }
43    
44     public void testNanoTime2() {
45     // Millis between readings of nanos must be no longer than nanos
46     long n1 = System.nanoTime();
47     long m1 = System.currentTimeMillis();
48    
49     // Ensure some computation that is not optimized away.
50     long sum = 0;
51     for (long i = 1; i < 10000; ++i)
52     sum += i;
53     assertTrue(sum != 0);
54    
55     long m2 = System.currentTimeMillis();
56    
57     for (long i = 1; i < 10000; ++i)
58     sum -= i;
59     assertTrue(sum == 0);
60    
61     long n2 = System.nanoTime();
62    
63     long millis = m2 - m1;
64     long nanos = n2 - n1;
65    
66     assertTrue(nanos >= 0);
67     assertTrue(millis * 1000000 <= nanos);
68     }
69    
70     }
71