From 83967946666172e539e0bbdb0e258a2cae5fa58d Mon Sep 17 00:00:00 2001 From: Patrick Tasse Date: Thu, 10 Dec 2015 10:33:05 -0500 Subject: [PATCH] ctf: Delete and regenerate trace for tests in LttngKernelTraceGenerator Later, this can be improved to be conditionally done only if the trace generator version has changed. Change-Id: I4d43f388d89d6bafba6c492a93e3d89c9ed9ed22 Signed-off-by: Patrick Tasse Reviewed-on: https://git.eclipse.org/r/62385 Reviewed-by: Hudson CI Reviewed-by: Bernd Hufmann Tested-by: Bernd Hufmann Reviewed-by: Marc-Andre Laperle --- .../shared/LttngKernelTraceGenerator.java | 45 ++++++++++++------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/ctf/org.eclipse.tracecompass.ctf.core.tests/shared/org/eclipse/tracecompass/ctf/core/tests/shared/LttngKernelTraceGenerator.java b/ctf/org.eclipse.tracecompass.ctf.core.tests/shared/org/eclipse/tracecompass/ctf/core/tests/shared/LttngKernelTraceGenerator.java index cffb08861c..27df0b9e30 100644 --- a/ctf/org.eclipse.tracecompass.ctf.core.tests/shared/org/eclipse/tracecompass/ctf/core/tests/shared/LttngKernelTraceGenerator.java +++ b/ctf/org.eclipse.tracecompass.ctf.core.tests/shared/org/eclipse/tracecompass/ctf/core/tests/shared/LttngKernelTraceGenerator.java @@ -20,8 +20,12 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.channels.FileChannel; +import java.nio.file.FileVisitResult; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.SimpleFileVisitor; +import java.nio.file.attribute.BasicFileAttributes; import java.util.Arrays; import java.util.List; import java.util.Random; @@ -204,10 +208,7 @@ public class LttngKernelTraceGenerator { Path tracePath = Paths.get("..", "..", "ctf", "org.eclipse.tracecompass.ctf.core.tests", TRACES_DIRECTORY, TRACE_NAME); tracePath = tracePath.toAbsolutePath(); File file = tracePath.toFile(); - - if (!file.exists()) { - generateLttngKernelTrace(file); - } + generateLttngKernelTrace(file); return file.getAbsolutePath(); } @@ -248,20 +249,10 @@ public class LttngKernelTraceGenerator { */ public void writeTrace(File file) { - if (!file.exists()) { - file.mkdir(); - } else { - if (file.isFile()) { - file.delete(); - file.mkdir(); - } else { - // the ctf parser doesn't recurse, so we don't need to. - final File[] listFiles = file.listFiles(); - for (File child : listFiles) { - child.delete(); - } - } + if (file.exists()) { + deleteDirectory(file); } + file.mkdir(); File metadataFile = new File(file.getPath() + File.separator + "metadata"); File[] streams = new File[fNbChans]; @@ -371,6 +362,26 @@ public class LttngKernelTraceGenerator { } } + private static void deleteDirectory(File directory) { + try { + Files.walkFileTree(directory.toPath(), new SimpleFileVisitor() { + @Override + public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { + Files.delete(file); + return FileVisitResult.CONTINUE; + } + + @Override + public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException { + Files.delete(dir); + return FileVisitResult.CONTINUE; + } + }); + } catch (IOException e) { + e.printStackTrace(); + } + } + private static void writeToDisk(FileChannel[] channels, int chan, ByteBuffer bb) { try { bb.flip(); -- 2.34.1