ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/SystemTest.java
Revision: 1.5
Committed: Sat Dec 27 19:26:44 2003 UTC (20 years, 4 months ago) by dl
Branch: MAIN
Changes since 1.4: +5 -4 lines
Log Message:
Headers reference Creative Commons

File Contents

# User Rev Content
1 dl 1.1 /*
2 dl 1.5 * Written by Doug Lea with assistance from members of JCP JSR-166
3     * Expert Group and released to the public domain, as explained at
4     * http://creativecommons.org/licenses/publicdomain
5     * Other contributors include Andrew Wright, Jeffrey Hayes,
6     * Pat Fisher, Mike Judd.
7 dl 1.1 */
8    
9     import junit.framework.*;
10    
11 dl 1.2 public class SystemTest extends JSR166TestCase {
12 dl 1.1 public static void main(String[] args) {
13 tim 1.4 junit.textui.TestRunner.run(suite());
14 dl 1.1 }
15    
16     public static Test suite() {
17 tim 1.4 return new TestSuite(SystemTest.class);
18 dl 1.1 }
19    
20 dl 1.2 /**
21 tim 1.4 * Nanos between readings of millis is no longer than millis (plus
22     * one milli to allow for rounding).
23 dl 1.2 * This shows only that nano timing not (much) worse than milli.
24     */
25 dl 1.1 public void testNanoTime1() {
26 dl 1.2 try {
27     long m1 = System.currentTimeMillis();
28     Thread.sleep(1);
29     long n1 = System.nanoTime();
30     Thread.sleep(SHORT_DELAY_MS);
31     long n2 = System.nanoTime();
32     Thread.sleep(1);
33     long m2 = System.currentTimeMillis();
34     long millis = m2 - m1;
35     long nanos = n2 - n1;
36    
37     assertTrue(nanos >= 0);
38 tim 1.4 assertTrue(nanos < (millis+1) * 1000000);
39 dl 1.2 }
40     catch(InterruptedException ie) {
41 dl 1.3 unexpectedException();
42 dl 1.2 }
43 dl 1.1 }
44    
45 dl 1.2 /**
46     * Millis between readings of nanos is no longer than nanos
47     * This shows only that nano timing not (much) worse than milli.
48     */
49 dl 1.1 public void testNanoTime2() {
50 dl 1.2 try {
51     long n1 = System.nanoTime();
52     Thread.sleep(1);
53     long m1 = System.currentTimeMillis();
54     Thread.sleep(SHORT_DELAY_MS);
55     long m2 = System.currentTimeMillis();
56     Thread.sleep(1);
57     long n2 = System.nanoTime();
58     long millis = m2 - m1;
59     long nanos = n2 - n1;
60    
61     assertTrue(nanos >= 0);
62     assertTrue(millis * 1000000 <= nanos);
63     }
64     catch(InterruptedException ie) {
65 dl 1.3 unexpectedException();
66 dl 1.2 }
67 dl 1.1 }
68    
69     }
70