[cvs] / jsr166 / src / test / tck / SystemTest.java Repository:
ViewVC logotype

Annotation of /jsr166/src/test/tck/SystemTest.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.5 - (view) (download)

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 :    

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8