test/jdk/jdk/jfr/api/consumer/filestream/TestOrdered.java
branchJEP-349-branch
changeset 57385 7d9d4f629f6e
parent 57380 6a7e7743b82f
child 57432 ba454a26d2c1
--- a/test/jdk/jdk/jfr/api/consumer/filestream/TestOrdered.java	Thu May 30 23:12:44 2019 +0200
+++ b/test/jdk/jdk/jfr/api/consumer/filestream/TestOrdered.java	Fri May 31 20:44:28 2019 +0200
@@ -74,6 +74,7 @@
     }
 
     private static final int THREAD_COUNT = 4;
+    private static final boolean[] BOOLEAN_STATES = { false, true };
 
     public static void main(String... args) throws Exception {
         Path p = makeUnorderedRecording();
@@ -83,36 +84,42 @@
     }
 
     private static void testSetOrderedTrue(Path p) throws Exception {
-        AtomicReference<Instant> timestamp = new AtomicReference<>(Instant.MIN);
-        try (EventStream es = EventStream.openFile(p)) {
-            es.setOrdered(true);
-            es.onEvent(e -> {
-                Instant endTime = e.getEndTime();
-                if (endTime.isBefore(timestamp.get())) {
-                    throw new Error("Events are not ordered!");
-                }
-                timestamp.set(endTime);
-            });
-            es.start();
+        for (boolean reuse : BOOLEAN_STATES) {
+            AtomicReference<Instant> timestamp = new AtomicReference<>(Instant.MIN);
+            try (EventStream es = EventStream.openFile(p)) {
+                es.setReuse(reuse);
+                es.setOrdered(true);
+                es.onEvent(e -> {
+                    Instant endTime = e.getEndTime();
+                    if (endTime.isBefore(timestamp.get())) {
+                        throw new Error("Events are not ordered! Reues = " + reuse);
+                    }
+                    timestamp.set(endTime);
+                });
+                es.start();
+            }
         }
     }
 
     private static void testSetOrderedFalse(Path p) throws Exception {
-        AtomicReference<Instant> timestamp = new AtomicReference<>(Instant.MIN);
-        AtomicBoolean unoreded = new AtomicBoolean(false);
-        try (EventStream es = EventStream.openFile(p)) {
-            es.setOrdered(false);
-            es.onEvent(e -> {
-                Instant endTime = e.getEndTime();
-                if (endTime.isBefore(timestamp.get())) {
-                    unoreded.set(true);
-                    es.close();
+        for (boolean reuse : BOOLEAN_STATES) {
+            AtomicReference<Instant> timestamp = new AtomicReference<>(Instant.MIN);
+            AtomicBoolean unoreded = new AtomicBoolean(false);
+            try (EventStream es = EventStream.openFile(p)) {
+                es.setReuse(reuse);
+                es.setOrdered(false);
+                es.onEvent(e -> {
+                    Instant endTime = e.getEndTime();
+                    if (endTime.isBefore(timestamp.get())) {
+                        unoreded.set(true);
+                        es.close();
+                    }
+                    timestamp.set(endTime);
+                });
+                es.start();
+                if (!unoreded.get()) {
+                    throw new Exception("Expected at least some events to be out of order! Reues = " + reuse);
                 }
-                timestamp.set(endTime);
-            });
-            es.start();
-            if (!unoreded.get()) {
-                throw new Exception("Expected at least some events to be out of order");
             }
         }
     }