public void testAbortAddBreakpointSetSleigh() throws Throwable {
		DebuggerControlService controlService =
			addPlugin(tool, DebuggerControlServicePlugin.class);

		// TODO: What if already mapped?
		// Not sure I care about tb.setEmuSleigh() out of band

		createTrace();
		traceManager.openTrace(tb.trace);
		controlService.setCurrentMode(tb.trace, ControlMode.RW_EMULATOR);
		createProgramFromTrace();
		intoProject(program);
		programManager.openProgram(program);

		try (Transaction tid = tb.startTransaction()) {
			TraceBreakpoint bpt = tb.trace.getBreakpointManager()
					.addBreakpoint("Processes[1].Breakpoints[0]", Lifespan.nowOn(0),
						tb.addr(0x55550123),
						Set.of(), Set.of(TraceBreakpointKind.SW_EXECUTE),
						false /* emuEnabled defaults to true */, "");
			bpt.setEmuSleigh(0, "r0=0xbeef;");
			waitForValue(() -> Unique.assertAtMostOne(
				breakpointService.getBreakpointsAt(tb.trace, tb.addr(0x55550123))));

			tid.abort();
		}
		waitForDomainObject(tb.trace);
		waitOn(breakpointService.changesSettled());

		assertTrue(breakpointService.getAllBreakpoints().isEmpty());
	}
With the addition of emulated breakpoints (which are stored in the trace), this test is now
sane.

<p>
With the addition of the write-behind cache, this test is no longer sane.

@throws Throwable who doesn't?
Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/service/breakpoint/AbstractDebuggerLogicalBreakpointServiceTest.java