# HG changeset patch # User egahlin # Date 1527024474 -7200 # Node ID 2942ae53217559f8d41e97c747e4ed07239277e8 # Parent 67066e7971e1ceda21020b6bde18eeded67eab2e 8201331: Better test cleanup for jdk/jfr/api/consumer/TestRecordingFile.java Reviewed-by: tbell, mgronlun diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/api/consumer/TestReadTwice.java --- a/test/jdk/jdk/jfr/api/consumer/TestReadTwice.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/api/consumer/TestReadTwice.java Tue May 22 23:27:54 2018 +0200 @@ -25,8 +25,8 @@ package jdk.jfr.api.consumer; -import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.LinkedList; import java.util.List; @@ -35,6 +35,7 @@ import jdk.jfr.consumer.RecordedEvent; import jdk.jfr.consumer.RecordingFile; import jdk.test.lib.Asserts; +import jdk.test.lib.Utils; /* @@ -61,7 +62,7 @@ r.stop(); // Dump the recording to a file - Path path = Files.createTempFile("recording", ".jfr"); + Path path = Utils.createTempFile("read-twice", ".jfr"); System.out.println("Dumping to " + path); r.dump(path); r.close(); diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/api/consumer/TestRecordedEventGetThreadOther.java --- a/test/jdk/jdk/jfr/api/consumer/TestRecordedEventGetThreadOther.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedEventGetThreadOther.java Tue May 22 23:27:54 2018 +0200 @@ -25,7 +25,6 @@ package jdk.jfr.api.consumer; -import java.nio.file.Files; import java.nio.file.Path; import java.util.List; @@ -35,6 +34,7 @@ import jdk.jfr.consumer.RecordedThread; import jdk.jfr.consumer.RecordingFile; import jdk.test.lib.Asserts; +import jdk.test.lib.Utils; /* * @test @@ -99,7 +99,7 @@ TestEvent t = new TestEvent(); t.commit(); r.stop(); - Path path = Files.createTempFile("recording", ".jfr"); + Path path = Utils.createTempFile("event-thread", ".jfr"); System.out.println("Created path: " + path); r.dump(path); r.close(); diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/api/consumer/TestRecordedFullStackTrace.java --- a/test/jdk/jdk/jfr/api/consumer/TestRecordedFullStackTrace.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/api/consumer/TestRecordedFullStackTrace.java Tue May 22 23:27:54 2018 +0200 @@ -24,7 +24,6 @@ */ package jdk.jfr.api.consumer; -import java.nio.file.Files; import java.nio.file.Path; import java.time.Duration; import java.util.ArrayList; @@ -36,6 +35,7 @@ import jdk.jfr.consumer.RecordedStackTrace; import jdk.jfr.consumer.RecordingFile; import jdk.test.lib.Asserts; +import jdk.test.lib.Utils; import jdk.test.lib.jfr.EventNames; import jdk.test.lib.jfr.Events; import jdk.test.lib.jfr.RecurseThread; @@ -84,7 +84,7 @@ Thread.sleep(500); recording.stop(); // Dump the recording to a file - path = Files.createTempFile("recording", ".jfr"); + path = Utils.createTempFile("execution-stack-trace", ".jfr"); System.out.println("Dumping to " + path); recording.dump(path); recording.close(); diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/api/consumer/TestRecordingFile.java --- a/test/jdk/jdk/jfr/api/consumer/TestRecordingFile.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/api/consumer/TestRecordingFile.java Tue May 22 23:27:54 2018 +0200 @@ -47,6 +47,7 @@ import jdk.jfr.consumer.RecordedEvent; import jdk.jfr.consumer.RecordingFile; import jdk.test.lib.Asserts; +import jdk.test.lib.Utils; /* * @test @@ -86,7 +87,7 @@ TestEvent3 t3 = new TestEvent3(); t3.commit(); r.stop(); - Path valid = Files.createTempFile("three-event-recording", ".jfr"); + Path valid = Utils.createTempFile("three-event-recording", ".jfr"); r.dump(valid); r.close(); @@ -145,7 +146,7 @@ System.out.println("Should exist: " + Arrays.toString(shouldExist)); System.out.println("Should not exist: " + Arrays.toString(shouldNotExist)); - Path p = Files.createTempFile(sb.toString(), ".jfr"); + Path p = Utils.createTempFile(sb.toString(), ".jfr"); System.out.println("Filename: " + p); try (Recording r = new Recording()) { r.start(); @@ -180,8 +181,8 @@ private static void testReadEventTypesMultiChunk() throws Exception { - Path twoEventTypes = Files.createTempFile("two-event-types", ".jfr"); - Path threeEventTypes = Files.createTempFile("three-event-types", ".jfr"); + Path twoEventTypes = Utils.createTempFile("two-event-types", ".jfr"); + Path threeEventTypes = Utils.createTempFile("three-event-types", ".jfr"); try (Recording r1 = new Recording()) { r1.start(); FlightRecorder.register(Event1.class); @@ -251,7 +252,7 @@ private static Path createBrokenWIthZeros(Path valid) throws Exception { try { - Path broken = Files.createTempFile("broken-events", ".jfr"); + Path broken = Utils.createTempFile("broken-events", ".jfr"); Files.delete(broken); Files.copy(valid, broken); RandomAccessFile raf = new RandomAccessFile(broken.toFile(), "rw"); @@ -271,7 +272,7 @@ private static Path createBrokenMetadata(Path valid) throws Exception { try { - Path broken = Files.createTempFile("broken-metadata", ".jfr"); + Path broken = Utils.createTempFile("broken-metadata", ".jfr"); Files.delete(broken); Files.copy(valid, broken); RandomAccessFile raf = new RandomAccessFile(broken.toFile(), "rw"); @@ -324,7 +325,7 @@ } catch (FileNotFoundException npe) { // OK } - Path testFile = Files.createTempFile("test-file", ".jfr"); + Path testFile = Utils.createTempFile("test-empty-file", ".jfr"); try (RecordingFile r = new RecordingFile(testFile)) { throw new Exception("Expected IOException if file is empty"); } catch (IOException e) { diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/api/metadata/annotations/TestInheritedAnnotations.java --- a/test/jdk/jdk/jfr/api/metadata/annotations/TestInheritedAnnotations.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/api/metadata/annotations/TestInheritedAnnotations.java Tue May 22 23:27:54 2018 +0200 @@ -25,7 +25,6 @@ package jdk.jfr.api.metadata.annotations; -import java.nio.file.Files; import java.nio.file.Path; import java.util.Collections; import java.util.HashMap; @@ -45,6 +44,7 @@ import jdk.jfr.consumer.RecordedEvent; import jdk.jfr.consumer.RecordingFile; import jdk.test.lib.Asserts; +import jdk.test.lib.Utils; import jdk.test.lib.jfr.EventNames; import jdk.test.lib.jfr.Events; @@ -110,7 +110,7 @@ c.commit(); r.stop(); - Path p = Files.createTempFile("temp", ".jfr"); + Path p = Utils.createTempFile("inherited-annotations", ".jfr"); r.dump(p); List events = RecordingFile.readAllEvents(p); assertNoGrandFather(events); diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/api/metadata/eventtype/TestUnloadingEventClass.java --- a/test/jdk/jdk/jfr/api/metadata/eventtype/TestUnloadingEventClass.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/api/metadata/eventtype/TestUnloadingEventClass.java Tue May 22 23:27:54 2018 +0200 @@ -28,7 +28,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import java.nio.file.Files; import java.nio.file.Path; import jdk.jfr.Event; @@ -37,6 +36,7 @@ import jdk.jfr.Recording; import jdk.jfr.consumer.RecordingFile; import jdk.jfr.internal.JVM; +import jdk.test.lib.Utils; /* * @test @@ -164,7 +164,7 @@ } private static Object getEventType(Recording r, long id, String eventName) throws IOException { - Path p = Files.createTempFile("recording-" + id + "_", ".jfr"); + Path p = Utils.createTempFile("unloading-event-class-recording-" + id + "_", ".jfr"); r.dump(p); try (RecordingFile rf = new RecordingFile(p)) { for (EventType et : rf.readEventTypes()) { diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/api/recorder/TestStartStopRecording.java --- a/test/jdk/jdk/jfr/api/recorder/TestStartStopRecording.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/api/recorder/TestStartStopRecording.java Tue May 22 23:27:54 2018 +0200 @@ -32,6 +32,7 @@ import jdk.jfr.Configuration; import jdk.jfr.Recording; +import jdk.test.lib.Utils; /* * @test TestStartStopRecording @@ -49,7 +50,7 @@ inMemory.start(); - Path memoryFile = Files.createTempFile("memory-recording", ".jfr"); + Path memoryFile = Utils.createTempFile("start-stop-memory-recording", ".jfr"); inMemory.dump(memoryFile); assertValid(memoryFile, "Not a valid memory file."); inMemory.stop(); @@ -60,7 +61,7 @@ toDisk.start(); toDisk.stop(); - Path diskFile = Files.createTempFile("disk-recording", ".jfr"); + Path diskFile = Utils.createTempFile("start-stop-disk-recording", ".jfr"); toDisk.dump(diskFile); assertValid(diskFile, "Not a valid disk file."); toDisk.close(); diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/cmd/ExecuteHelper.java --- a/test/jdk/jdk/jfr/cmd/ExecuteHelper.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/cmd/ExecuteHelper.java Tue May 22 23:27:54 2018 +0200 @@ -25,7 +25,6 @@ package jdk.jfr.cmd; -import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; import java.util.regex.Matcher; @@ -34,6 +33,7 @@ import jdk.jfr.Configuration; import jdk.jfr.Event; import jdk.jfr.Recording; +import jdk.test.lib.Utils; import jdk.test.lib.process.OutputAnalyzer; import jdk.test.lib.process.ProcessTools;; @@ -99,7 +99,7 @@ } public static Path createProfilingRecording() throws Exception { - Path file = Files.createTempFile("recording", ".jfr"); + Path file = Utils.createTempFile("profiling-recording", ".jfr"); // Create a recording with some data try (Recording r = new Recording(Configuration.getConfiguration("profile"))) { r.start(); diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/cmd/TestPrint.java --- a/test/jdk/jdk/jfr/cmd/TestPrint.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/cmd/TestPrint.java Tue May 22 23:27:54 2018 +0200 @@ -29,6 +29,7 @@ import java.nio.file.Files; import java.nio.file.Path; +import jdk.test.lib.Utils; import jdk.test.lib.process.OutputAnalyzer; /* @@ -51,7 +52,7 @@ output = ExecuteHelper.run("print", "missing.jfr", "option1", "option2"); output.shouldContain("Too many arguments"); - Path file = Files.createTempFile("faked-print-file", ".jfr"); + Path file = Utils.createTempFile("faked-print-file", ".jfr"); FileWriter fw = new FileWriter(file.toFile()); fw.write('d'); fw.close(); diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/jcmd/TestJcmdLegacy.java --- a/test/jdk/jdk/jfr/jcmd/TestJcmdLegacy.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/jcmd/TestJcmdLegacy.java Tue May 22 23:27:54 2018 +0200 @@ -27,12 +27,12 @@ import java.io.File; import java.io.IOException; -import java.nio.file.Files; import java.nio.file.Path; import jdk.jfr.Recording; import jdk.jfr.consumer.RecordedEvent; import jdk.jfr.consumer.RecordingFile; +import jdk.test.lib.Utils; import jdk.test.lib.jfr.EventNames; import jdk.test.lib.jfr.FileHelper; import jdk.test.lib.process.OutputAnalyzer; @@ -68,7 +68,7 @@ } private static void testAPI() throws IOException, Exception { - Path p = Files.createTempFile("recording", ".jfr"); + Path p = Utils.createTempFile("enable-legacy-event", ".jfr"); try (Recording r = new Recording()) { r.enable(LEGACY_EVENT); diff -r 67066e7971e1 -r 2942ae532175 test/jdk/jdk/jfr/jvm/TestUnsupportedVM.java --- a/test/jdk/jdk/jfr/jvm/TestUnsupportedVM.java Tue May 22 10:49:20 2018 -0700 +++ b/test/jdk/jdk/jfr/jvm/TestUnsupportedVM.java Tue May 22 23:27:54 2018 +0200 @@ -62,6 +62,7 @@ import jdk.management.jfr.FlightRecorderMXBean; import jdk.management.jfr.RecordingInfo; import jdk.management.jfr.SettingDescriptorInfo; +import jdk.test.lib.Utils; /* * @test TestUnsupportedVM @@ -144,7 +145,7 @@ if (!Configuration.getConfigurations().isEmpty()) { throw new AssertionError("Configuration files should not exist on an unsupported VM"); } - Path jfcFile = Files.createTempFile("my", ".jfr"); + Path jfcFile = Utils.createTempFile("empty", ".jfr"); assertIOException(() -> Configuration.getConfiguration("default")); assertIOException(() -> Configuration.create(jfcFile)); assertIOException(() -> Configuration.create(new FileReader(jfcFile.toFile()))); diff -r 67066e7971e1 -r 2942ae532175 test/lib/jdk/test/lib/Utils.java --- a/test/lib/jdk/test/lib/Utils.java Tue May 22 10:49:20 2018 -0700 +++ b/test/lib/jdk/test/lib/Utils.java Tue May 22 23:27:54 2018 +0200 @@ -35,6 +35,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.attribute.FileAttribute; import java.nio.channels.SocketChannel; import java.util.ArrayList; import java.util.Arrays; @@ -770,5 +771,26 @@ return result; } + /** + * Creates an empty file in "user.dir" if the property set. + *

+ * This method is meant as a replacement for {@code Files#createTempFile(String, String, FileAttribute...)} + * that doesn't leave files behind in /tmp directory of the test machine + *

+ * If the property "user.dir" is not set, "." will be used. + * + * @param prefix + * @param suffix + * @param attrs + * @return the path to the newly created file that did not exist before this + * method was invoked + * @throws IOException + * + * @see {@link Files#createTempFile(String, String, FileAttribute...)} + */ + public static Path createTempFile(String prefix, String suffix, FileAttribute... attrs) throws IOException { + Path dir = Paths.get(System.getProperty("user.dir", ".")); + return Files.createTempFile(dir, prefix, suffix); + } } diff -r 67066e7971e1 -r 2942ae532175 test/lib/jdk/test/lib/jfr/CommonHelper.java --- a/test/lib/jdk/test/lib/jfr/CommonHelper.java Tue May 22 10:49:20 2018 -0700 +++ b/test/lib/jdk/test/lib/jfr/CommonHelper.java Tue May 22 23:27:54 2018 +0200 @@ -37,6 +37,7 @@ import jdk.jfr.consumer.RecordedEvent; import jdk.jfr.consumer.RecordingFile; import jdk.test.lib.Asserts; +import jdk.test.lib.Utils; /** @@ -90,7 +91,7 @@ r.enable(EventNames.CPUTimeStampCounter); r.start(); r.stop(); - Path p = Files.createTempFile("timestamo", ".jfr"); + Path p = Utils.createTempFile("timestamo", ".jfr"); r.dump(p); List events = RecordingFile.readAllEvents(p); Files.deleteIfExists(p);