mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2026-06-02 20:29:50 +08:00
GP-0: Fix tests.
This commit is contained in:
+6
@@ -388,6 +388,12 @@ public abstract class AbstractGdbTraceRmiTest extends AbstractGhidraHeadedDebugg
|
|||||||
return new MemDump(address, buf.toByteArray());
|
return new MemDump(address, buf.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void waitDomainObjectClosed(String path) {
|
||||||
|
DomainFile df = env.getProject().getProjectData().getFile(path);
|
||||||
|
assertNotNull(df);
|
||||||
|
waitForPass(() -> assertFalse(df.isOpen()));
|
||||||
|
}
|
||||||
|
|
||||||
protected ManagedDomainObject openDomainObject(String path) throws Exception {
|
protected ManagedDomainObject openDomainObject(String path) throws Exception {
|
||||||
DomainFile df = env.getProject().getProjectData().getFile(path);
|
DomainFile df = env.getProject().getProjectData().getFile(path);
|
||||||
assertNotNull(df);
|
assertNotNull(df);
|
||||||
|
|||||||
+4
-5
@@ -160,7 +160,6 @@ public class GdbCommandsTest extends AbstractGdbTraceRmiTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testStopTrace() throws Exception {
|
public void testStopTrace() throws Exception {
|
||||||
// TODO: This test assumes gdb and the target file bash are x86-64
|
|
||||||
runThrowError(addr -> """
|
runThrowError(addr -> """
|
||||||
%s
|
%s
|
||||||
ghidra trace connect %s
|
ghidra trace connect %s
|
||||||
@@ -169,10 +168,8 @@ public class GdbCommandsTest extends AbstractGdbTraceRmiTest {
|
|||||||
ghidra trace stop
|
ghidra trace stop
|
||||||
quit
|
quit
|
||||||
""".formatted(PREAMBLE, addr));
|
""".formatted(PREAMBLE, addr));
|
||||||
DomainFile dfBash = env.getProject().getProjectData().getFile("/New Traces/gdb/bash");
|
// NOTE: Given the 'quit' command, I'm not sure this assertion is checking anything.
|
||||||
assertNotNull(dfBash);
|
waitDomainObjectClosed("/New Traces/gdb/bash");
|
||||||
// TODO: Given the 'quit' command, I'm not sure this assertion is checking anything.
|
|
||||||
assertFalse(dfBash.isOpen());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -278,6 +275,7 @@ public class GdbCommandsTest extends AbstractGdbTraceRmiTest {
|
|||||||
ghidra trace tx-commit
|
ghidra trace tx-commit
|
||||||
quit
|
quit
|
||||||
""".formatted(PREAMBLE, addr));
|
""".formatted(PREAMBLE, addr));
|
||||||
|
waitDomainObjectClosed("/New Traces/no-save");
|
||||||
try (ManagedDomainObject mdo = openDomainObject("/New Traces/no-save")) {
|
try (ManagedDomainObject mdo = openDomainObject("/New Traces/no-save")) {
|
||||||
tb = new ToyDBTraceBuilder((Trace) mdo.get());
|
tb = new ToyDBTraceBuilder((Trace) mdo.get());
|
||||||
assertEquals(0, tb.trace.getTimeManager().getAllSnapshots().size());
|
assertEquals(0, tb.trace.getTimeManager().getAllSnapshots().size());
|
||||||
@@ -294,6 +292,7 @@ public class GdbCommandsTest extends AbstractGdbTraceRmiTest {
|
|||||||
ghidra trace save
|
ghidra trace save
|
||||||
quit
|
quit
|
||||||
""".formatted(PREAMBLE, addr));
|
""".formatted(PREAMBLE, addr));
|
||||||
|
waitDomainObjectClosed("/New Traces/save");
|
||||||
try (ManagedDomainObject mdo = openDomainObject("/New Traces/save")) {
|
try (ManagedDomainObject mdo = openDomainObject("/New Traces/save")) {
|
||||||
tb = new ToyDBTraceBuilder((Trace) mdo.get());
|
tb = new ToyDBTraceBuilder((Trace) mdo.get());
|
||||||
assertEquals(1, tb.trace.getTimeManager().getAllSnapshots().size());
|
assertEquals(1, tb.trace.getTimeManager().getAllSnapshots().size());
|
||||||
|
|||||||
+6
@@ -418,6 +418,12 @@ public abstract class AbstractLldbTraceRmiTest extends AbstractGhidraHeadedDebug
|
|||||||
return new MemDump(address, buf.toByteArray());
|
return new MemDump(address, buf.toByteArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void waitDomainObjectClosed(String path) {
|
||||||
|
DomainFile df = env.getProject().getProjectData().getFile(path);
|
||||||
|
assertNotNull(df);
|
||||||
|
waitForPass(() -> assertFalse(df.isOpen()));
|
||||||
|
}
|
||||||
|
|
||||||
protected ManagedDomainObject openDomainObject(String path) throws Exception {
|
protected ManagedDomainObject openDomainObject(String path) throws Exception {
|
||||||
DomainFile df = env.getProject().getProjectData().getFile(path);
|
DomainFile df = env.getProject().getProjectData().getFile(path);
|
||||||
assertNotNull(df);
|
assertNotNull(df);
|
||||||
|
|||||||
+4
-4
@@ -167,10 +167,8 @@ public class LldbCommandsTest extends AbstractLldbTraceRmiTest {
|
|||||||
ghidra trace stop
|
ghidra trace stop
|
||||||
quit
|
quit
|
||||||
""".formatted(PREAMBLE, addr, getSpecimenPrint()));
|
""".formatted(PREAMBLE, addr, getSpecimenPrint()));
|
||||||
DomainFile df = env.getProject().getProjectData().getFile("/New Traces/lldb/expPrint");
|
// NOTE: Given the 'quit' command, I'm not sure this assertion is checking anything.
|
||||||
assertNotNull(df);
|
waitDomainObjectClosed("/New Traces/lldb/expPrint");
|
||||||
// TODO: Given the 'quit' command, I'm not sure this assertion is checking anything.
|
|
||||||
assertFalse(df.isOpen());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -270,6 +268,7 @@ public class LldbCommandsTest extends AbstractLldbTraceRmiTest {
|
|||||||
ghidra trace tx-commit
|
ghidra trace tx-commit
|
||||||
quit
|
quit
|
||||||
""".formatted(PREAMBLE, addr, getSpecimenPrint()));
|
""".formatted(PREAMBLE, addr, getSpecimenPrint()));
|
||||||
|
waitDomainObjectClosed("/New Traces/no-save");
|
||||||
try (ManagedDomainObject mdo = openDomainObject("/New Traces/no-save")) {
|
try (ManagedDomainObject mdo = openDomainObject("/New Traces/no-save")) {
|
||||||
tb = new ToyDBTraceBuilder((Trace) mdo.get());
|
tb = new ToyDBTraceBuilder((Trace) mdo.get());
|
||||||
assertEquals(0, tb.trace.getTimeManager().getAllSnapshots().size());
|
assertEquals(0, tb.trace.getTimeManager().getAllSnapshots().size());
|
||||||
@@ -286,6 +285,7 @@ public class LldbCommandsTest extends AbstractLldbTraceRmiTest {
|
|||||||
ghidra trace save
|
ghidra trace save
|
||||||
quit
|
quit
|
||||||
""".formatted(PREAMBLE, addr, getSpecimenPrint()));
|
""".formatted(PREAMBLE, addr, getSpecimenPrint()));
|
||||||
|
waitDomainObjectClosed("/New Traces/save");
|
||||||
try (ManagedDomainObject mdo = openDomainObject("/New Traces/save")) {
|
try (ManagedDomainObject mdo = openDomainObject("/New Traces/save")) {
|
||||||
tb = new ToyDBTraceBuilder((Trace) mdo.get());
|
tb = new ToyDBTraceBuilder((Trace) mdo.get());
|
||||||
assertEquals(1, tb.trace.getTimeManager().getAllSnapshots().size());
|
assertEquals(1, tb.trace.getTimeManager().getAllSnapshots().size());
|
||||||
|
|||||||
Reference in New Issue
Block a user