From d973740105da4a2eaa28683b34866ec91c3eb5f9 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Wed, 28 Aug 2024 08:36:25 -0400 Subject: [PATCH] GP-0: Fix breakpoint-marker tests (adjust waitOn's) --- ...ractDebuggerBreakpointMarkerPluginTest.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/breakpoint/AbstractDebuggerBreakpointMarkerPluginTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/breakpoint/AbstractDebuggerBreakpointMarkerPluginTest.java index fc76747e59..af17c8d699 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/breakpoint/AbstractDebuggerBreakpointMarkerPluginTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/breakpoint/AbstractDebuggerBreakpointMarkerPluginTest.java @@ -483,9 +483,13 @@ public abstract class AbstractDebuggerBreakpointMarkerPluginTest addMappedBreakpointOpenAndWait(); // wasteful, but whatever for (LogicalBreakpoint lb : List.copyOf(breakpointService.getAllBreakpoints())) { TraceBreakpoint brk = Unique.assertOne(lb.getTraceBreakpoints(tb.trace)); - waitOn(lb.delete()); + CompletableFuture delete = lb.delete(); handleDeleteBreakpointInvocation(brk); + waitOn(delete); } + waitForDomainObject(program); + waitForDomainObject(tb.trace); + waitOn(breakpointService.changesSettled()); waitForPass(() -> assertEquals(0, breakpointService.getAllBreakpoints().size())); try (Transaction tx = program.openTransaction("Disassemble")) { @@ -501,6 +505,9 @@ public abstract class AbstractDebuggerBreakpointMarkerPluginTest waitForDialogComponent(DebuggerPlaceBreakpointDialog.class); runSwing(() -> dialog.okCallback()); handleSetBreakpointInvocation(TraceBreakpointKindSet.SW_EXECUTE, 0x55550123); + waitForDomainObject(program); + waitForDomainObject(tb.trace); + waitOn(breakpointService.changesSettled()); waitForPass(() -> { LogicalBreakpoint lb = Unique.assertOne(breakpointService.getAllBreakpoints()); @@ -515,9 +522,13 @@ public abstract class AbstractDebuggerBreakpointMarkerPluginTest addMappedBreakpointOpenAndWait(); // wasteful, but whatever for (LogicalBreakpoint lb : List.copyOf(breakpointService.getAllBreakpoints())) { TraceBreakpoint brk = Unique.assertOne(lb.getTraceBreakpoints(tb.trace)); - waitOn(lb.delete()); + CompletableFuture delete = lb.delete(); handleDeleteBreakpointInvocation(brk); + waitOn(delete); } + waitForDomainObject(program); + waitForDomainObject(tb.trace); + waitOn(breakpointService.changesSettled()); waitForPass(() -> assertEquals(0, breakpointService.getAllBreakpoints().size())); try (Transaction tx = program.openTransaction("Disassemble")) { @@ -532,6 +543,9 @@ public abstract class AbstractDebuggerBreakpointMarkerPluginTest waitForDialogComponent(DebuggerPlaceBreakpointDialog.class); runSwing(() -> dialog.okCallback()); handleSetBreakpointInvocation(TraceBreakpointKindSet.ACCESS, 0x55550123); + waitForDomainObject(program); + waitForDomainObject(tb.trace); + waitOn(breakpointService.changesSettled()); waitForPass(() -> { LogicalBreakpoint lb = Unique.assertOne(breakpointService.getAllBreakpoints());