From 4cc4eaf7dee4754cb6f730cb9590dc07510f47b7 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Wed, 26 Aug 2026 15:22:16 -0400 Subject: [PATCH] Test fixes; update for IntegrationTest to find resources in gradle test environment --- .../core/memory/MemoryMapProvider2Test.java | 16 +++++++------- .../core/memory/MemoryMapProvider3Test.java | 22 +++++++++---------- .../bean/opteditor/OptionsDialogTest.java | 4 ++-- .../main/java/resources/ResourceManager.java | 10 ++++++++- .../DebuggerTraceRegistersProviderTest.java | 8 ++++--- .../watch/DebuggerWatchesProviderTest.java | 6 +++-- 6 files changed, 39 insertions(+), 27 deletions(-) diff --git a/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/memory/MemoryMapProvider2Test.java b/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/memory/MemoryMapProvider2Test.java index 1ef9c9b33d..ed1421dff5 100644 --- a/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/memory/MemoryMapProvider2Test.java +++ b/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/memory/MemoryMapProvider2Test.java @@ -194,7 +194,7 @@ public class MemoryMapProvider2Test extends AbstractGhidraHeadedIntegrationTest assertTrue(writeCB.isEnabled()); assertTrue(executeCB.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -268,7 +268,7 @@ public class MemoryMapProvider2Test extends AbstractGhidraHeadedIntegrationTest assertTrue(writeCB.isEnabled()); assertTrue(executeCB.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -531,7 +531,7 @@ public class MemoryMapProvider2Test extends AbstractGhidraHeadedIntegrationTest assertTrue(writeCB.isSelected()); assertFalse(executeCB.isSelected()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -611,7 +611,7 @@ public class MemoryMapProvider2Test extends AbstractGhidraHeadedIntegrationTest assertTrue(writeCB.isSelected()); assertTrue(executeCB.isSelected()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -689,7 +689,7 @@ public class MemoryMapProvider2Test extends AbstractGhidraHeadedIntegrationTest assertTrue(writeCB.isEnabled()); assertTrue(executeCB.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -779,7 +779,7 @@ public class MemoryMapProvider2Test extends AbstractGhidraHeadedIntegrationTest assertTrue(writeCB.isEnabled()); assertTrue(executeCB.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -855,7 +855,7 @@ public class MemoryMapProvider2Test extends AbstractGhidraHeadedIntegrationTest assertTrue(writeCB.isEnabled()); assertTrue(executeCB.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -1044,7 +1044,7 @@ public class MemoryMapProvider2Test extends AbstractGhidraHeadedIntegrationTest assertEquals(newEnd, endField.getAddress()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); // wait for thread to start Thread.sleep(1000); diff --git a/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/memory/MemoryMapProvider3Test.java b/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/memory/MemoryMapProvider3Test.java index cae5725385..7cf037f14e 100644 --- a/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/memory/MemoryMapProvider3Test.java +++ b/Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/memory/MemoryMapProvider3Test.java @@ -194,7 +194,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals(0x5600, blockTwoLength.getValue().longValue()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -238,7 +238,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals(0x45ff, blockTwoLength.getValue().longValue()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -284,7 +284,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals(0x4600, blockTwoLength.getValue().longValue()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -326,7 +326,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals(0x2000, blockTwoLength.getValue().longValue()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); program.flushEvents(); waitForSwing(); @@ -428,7 +428,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest blockTwoName.setText("split\t"); }); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); assertTrue(findLabelStr(d.getComponent(), "statusLabel").startsWith("Invalid Block Name")); close(d); @@ -535,7 +535,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals("0x1005600", length.getText()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); waitForBusyTool(tool); assertEquals(".text", model.getValueAt(0, MemoryMapModel.NAME)); @@ -609,7 +609,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals("010075ff", end.getText()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); waitForBusyTool(tool); @@ -685,7 +685,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals("0100f3ff", end.getText()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); waitForSwing(); assertFalse(okButton.isEnabled()); assertEquals("Part of range (01008000, 01009fff) already exists in memory.", @@ -744,7 +744,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals("0x6701", length.getText()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); waitForBusyTool(tool); @@ -773,7 +773,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest assertEquals(getAddr(0x10076ff), end.getAddress()); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); waitForBusyTool(tool); @@ -842,7 +842,7 @@ public class MemoryMapProvider3Test extends AbstractGhidraHeadedIntegrationTest runSwing(() -> length.setText("0x7600")); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); waitForSwing(); assertFalse(okButton.isEnabled()); diff --git a/Ghidra/Features/Base/src/test.slow/java/ghidra/util/bean/opteditor/OptionsDialogTest.java b/Ghidra/Features/Base/src/test.slow/java/ghidra/util/bean/opteditor/OptionsDialogTest.java index e7b7d19600..4cb2457a7b 100644 --- a/Ghidra/Features/Base/src/test.slow/java/ghidra/util/bean/opteditor/OptionsDialogTest.java +++ b/Ghidra/Features/Base/src/test.slow/java/ghidra/util/bean/opteditor/OptionsDialogTest.java @@ -139,7 +139,7 @@ public class OptionsDialogTest extends AbstractGhidraHeadedIntegrationTest { // close the options final JButton okButton = findButtonByText(dialog.getComponent(), "OK"); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); assertTrue(!dialog.isShowing()); @@ -188,7 +188,7 @@ public class OptionsDialogTest extends AbstractGhidraHeadedIntegrationTest { // close the options final JButton okButton = findButtonByText(dialog.getComponent(), "OK"); assertTrue(okButton.isEnabled()); - runSwing(() -> okButton.getActionListeners()[0].actionPerformed(null)); + pressButton(okButton); assertTrue(!dialog.isShowing()); diff --git a/Ghidra/Framework/Gui/src/main/java/resources/ResourceManager.java b/Ghidra/Framework/Gui/src/main/java/resources/ResourceManager.java index c94025adf8..68b59a5f45 100644 --- a/Ghidra/Framework/Gui/src/main/java/resources/ResourceManager.java +++ b/Ghidra/Framework/Gui/src/main/java/resources/ResourceManager.java @@ -120,7 +120,15 @@ public class ResourceManager { * @return the File for the given resource; null if there is no such file */ public static File getResourceFile(String filename) { - URL url = getResource(filename); + + URL url = classLoader.getResource(filename); + if (url == null || !"file".equals(url.getProtocol())) { + // In the gradle test environment we may have find a resource inside of an upstream + // module jar. Since this method expects a file object, see if it lives in an upstream + // test module resource directory. + url = getResource(getTestSearchPaths(), filename); + } + if (url == null || !"file".equals(url.getProtocol())) { return null; } diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/register/DebuggerTraceRegistersProviderTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/register/DebuggerTraceRegistersProviderTest.java index 90b7c1c35e..4c1d89b72f 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/register/DebuggerTraceRegistersProviderTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/register/DebuggerTraceRegistersProviderTest.java @@ -15,7 +15,7 @@ */ package ghidra.app.plugin.core.debug.gui.register; -import static ghidra.lifecycle.Unfinished.TODO; +import static ghidra.lifecycle.Unfinished.*; import static org.junit.Assert.*; import java.math.BigInteger; @@ -259,8 +259,10 @@ public class DebuggerTraceRegistersProviderTest extends AbstractDebuggerRegister waitForDialogComponent(RegisterDataSettingsDialog.class); Settings settings = dialog.getSettings(); FormatSettingsDefinition format = FormatSettingsDefinition.DEF; - format.setChoice(settings, FormatSettingsDefinition.DECIMAL); - runSwing(() -> dialog.okCallback()); + runSwing(() -> { + format.setChoice(settings, FormatSettingsDefinition.DECIMAL); + }); + pressButtonByText(dialog, "OK"); // The data is the settings. Wonderful :/ assertEquals(FormatSettingsDefinition.DECIMAL, format.getChoice(data)); diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/watch/DebuggerWatchesProviderTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/watch/DebuggerWatchesProviderTest.java index c73cd91893..0d34524be2 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/watch/DebuggerWatchesProviderTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/watch/DebuggerWatchesProviderTest.java @@ -255,8 +255,10 @@ public class DebuggerWatchesProviderTest extends AbstractGhidraHeadedDebuggerInt Settings settings = dialog.getSettings(); FormatSettingsDefinition format = FormatSettingsDefinition.DEF; - format.setChoice(settings, FormatSettingsDefinition.DECIMAL); - runSwing(() -> dialog.okCallback()); + runSwing(() -> { + format.setChoice(settings, FormatSettingsDefinition.DECIMAL); + }); + pressButtonByText(dialog, "OK"); assertEquals("4194304", row.getValueString()); }