From 37561dc4de9e4862489305b5baed3e75f488b0e0 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Fri, 17 Apr 2026 18:39:45 +0000 Subject: [PATCH] GP-6709: De-lint GDB tests. --- .../java/agent/gdb/rmi/AbstractGdbTraceRmiTest.java | 8 ++++++-- .../java/agent/gdb/rmi/GdbCommandsTest.java | 10 ++++------ .../java/agent/gdb/rmi/GdbConnectorsTest.java | 12 +++++++----- .../test.slow/java/agent/gdb/rmi/GdbHooksTest.java | 9 +++++++-- .../test.slow/java/agent/gdb/rmi/GdbMethodsTest.java | 6 +++--- 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/AbstractGdbTraceRmiTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/AbstractGdbTraceRmiTest.java index d10f0507a7..84fb8db08f 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/AbstractGdbTraceRmiTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/AbstractGdbTraceRmiTest.java @@ -15,7 +15,8 @@ */ package agent.gdb.rmi; -import static org.hamcrest.Matchers.*; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.startsWith; import static org.junit.Assert.*; import java.io.*; @@ -329,7 +330,10 @@ public abstract class AbstractGdbTraceRmiTest extends AbstractGhidraHeadedDebugg * compiled from source on a rather un-modern distro. */ Msg.warn(this, "gdb hung on quit. Sending SIGCONT."); - Runtime.getRuntime().exec("kill -SIGCONT %d".formatted(exec.gdb.pid())); + String kill = DummyProc.which("kill"); + new ProcessBuilder(kill, "-SIGCONT", "%d".formatted(exec.gdb.pid())) + .start() + .waitFor(); asyncQuit.get(QUIT_TIMEOUT_MS, TimeUnit.MILLISECONDS); } } diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbCommandsTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbCommandsTest.java index 16bf179c5f..b7618b3855 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbCommandsTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbCommandsTest.java @@ -15,9 +15,10 @@ */ package agent.gdb.rmi; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; -import static org.junit.Assume.*; +import static org.junit.Assume.assumeFalse; import java.nio.ByteBuffer; import java.util.*; @@ -247,13 +248,11 @@ public class GdbCommandsTest extends AbstractGdbTraceRmiTest { quit """.formatted(PREAMBLE, target)); String importSection = extractOutSection(out, "---Import---"); - assertTrue(importSection.contains( - """ + assertTrue(importSection.contains(""" Selected Ghidra language: x86:LE:32:default Selected Ghidra compiler: %s""".formatted(PLAT.cSpec()))); String fileSection = extractOutSection(out, "---File---"); - assertTrue(fileSection.contains( - """ + assertTrue(fileSection.contains(""" Selected Ghidra language: %s Selected Ghidra compiler: %s""".formatted(PLAT.lang(), PLAT.cSpec()))); assertEquals(""" @@ -820,7 +819,6 @@ public class GdbCommandsTest extends AbstractGdbTraceRmiTest { @Test public void testGetObj() throws Exception { - String target = which("expPrint"); String out = runThrowError(addr -> """ %s ghidra trace connect %s diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbConnectorsTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbConnectorsTest.java index 9335e4427d..b6f2b2ba3a 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbConnectorsTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbConnectorsTest.java @@ -16,7 +16,7 @@ package agent.gdb.rmi; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.*; +import static org.junit.Assert.assertTrue; import java.nio.file.Path; import java.util.List; @@ -31,8 +31,7 @@ import db.Transaction; import generic.jar.ResourceFile; import ghidra.app.plugin.core.debug.gui.action.BySectionAutoMapSpec; import ghidra.app.plugin.core.debug.gui.tracermi.launcher.AbstractTraceRmiLaunchOffer.EarlyTerminationException; -import ghidra.app.util.importer.AutoImporter; -import ghidra.app.util.importer.MessageLog; +import ghidra.app.util.importer.*; import ghidra.debug.api.action.AutoMapSpec; import ghidra.debug.api.tracermi.TraceRmiLaunchOffer.LaunchResult; import ghidra.framework.Application; @@ -83,8 +82,11 @@ public class GdbConnectorsTest extends AbstractRmiConnectorsTest { @Test public void testGdbQemuUser() throws Exception { PathIsFile image = createArmElfImage(); - program = AutoImporter.importByUsingBestGuess(image.path().toFile(), null, "/", this, - new MessageLog(), monitor).getPrimaryDomainObject(); + program = ProgramLoader.builder() + .source(image.path().toFile()) + .monitor(monitor) + .load() + .getPrimaryDomainObject(this); programManager.openProgram(program); try (LaunchResult result = doLaunch("gdb + qemu", Map.ofEntries( Map.entry("arg:1", image), diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbHooksTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbHooksTest.java index 98cfe0e995..08606d8b9d 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbHooksTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbHooksTest.java @@ -15,8 +15,11 @@ */ package agent.gdb.rmi; -import static org.hamcrest.Matchers.*; -import static org.junit.Assert.*; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.greaterThan; +import static org.hamcrest.Matchers.instanceOf; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import java.nio.ByteBuffer; import java.util.List; @@ -364,6 +367,8 @@ public class GdbHooksTest extends AbstractGdbTraceRmiTest { *

* Technically, this probably doesn't hit on_free_objfile, but all three just call * modules_changed, so I'm not concerned. + * + * @throws Exception because */ @Test public void testOnEventsObjfiles() throws Exception { diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbMethodsTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbMethodsTest.java index d8042e9bdb..9908343876 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbMethodsTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test.slow/java/agent/gdb/rmi/GdbMethodsTest.java @@ -15,9 +15,10 @@ */ package agent.gdb.rmi; +import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; import static org.junit.Assert.*; -import static org.junit.Assume.*; +import static org.junit.Assume.assumeFalse; import java.nio.ByteBuffer; import java.util.*; @@ -52,13 +53,12 @@ import ghidra.trace.model.target.TraceObject; import ghidra.trace.model.target.TraceObjectValue; import ghidra.trace.model.target.path.PathFilter; import ghidra.trace.model.target.path.PathPattern; -import ghidra.util.exception.TimeoutException; @Category(NightlyCategory.class) // this may actually be an @PortSensitive test public class GdbMethodsTest extends AbstractGdbTraceRmiTest { private final static long CAPTURE_PC_TIMEOUT_MILLIS = 3000; - + @Test public void testExecuteCapture() throws Exception { try (GdbAndConnection conn = startAndConnectGdb()) {