From 9e9e64dc4c19c6fe8497d2d2c7fa5ae4b752b250 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Tue, 19 Apr 2022 18:07:18 -0400 Subject: [PATCH] Updated test db cache dir to cleanup once per test file when not in batch mode --- .../test/AbstractGhidraHeadlessIntegrationTest.java | 11 +++++++++++ .../src/main/java/ghidra/test/TestProgramManager.java | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/test/AbstractGhidraHeadlessIntegrationTest.java b/Ghidra/Features/Base/src/main/java/ghidra/test/AbstractGhidraHeadlessIntegrationTest.java index b84187394c..422e1cf128 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/test/AbstractGhidraHeadlessIntegrationTest.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/test/AbstractGhidraHeadlessIntegrationTest.java @@ -21,6 +21,8 @@ import java.io.File; import java.io.IOException; import java.util.*; +import org.junit.BeforeClass; + import docking.test.AbstractDockingTest; import ghidra.GhidraTestApplicationLayout; import ghidra.app.events.ProgramLocationPluginEvent; @@ -96,6 +98,15 @@ public abstract class AbstractGhidraHeadlessIntegrationTest extends AbstractDock System.setProperty(GhidraScriptConstants.USER_SCRIPTS_DIR_PROPERTY, getTestDirectoryPath()); } + @BeforeClass + public static void cleanDbTestDir() { + // keep files around in batch mode to allow tests to run faster; assume batch mode performs + // its own cleanup; only run once per class to allow subsequent tests to be faster + if (!BATCH_MODE) { + TestProgramManager.cleanDbTestDir(); + } + } + public static boolean deleteProject(String directory, String name) { return ProjectTestUtils.deleteProject(directory, name); } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/test/TestProgramManager.java b/Ghidra/Features/Base/src/main/java/ghidra/test/TestProgramManager.java index ae8b642f8f..85ad72e1c1 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/test/TestProgramManager.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/test/TestProgramManager.java @@ -431,6 +431,12 @@ public class TestProgramManager { return dbTestDir; } + public static void cleanDbTestDir() { + File dir = getDbTestDir(); + Msg.debug(TestProgramManager.class, "Deleting test db cache dir: " + dir); + FileUtilities.deleteDir(dir); + } + private static File getTestDBDirectory() { String testDirPath = AbstractGTest.getTestDirectoryPath(); File dir = new File(testDirPath, DB_DIR_NAME);