@Test
	public void testDisassemblerBranchIntoDelaySlotInProgram() throws Exception {

		programBuilder.addBytesBranch(4, 14);

		programBuilder.addBytesFallthrough(10);
		programBuilder.addBytesBranchWithDelaySlot(12, 20);
		programBuilder.addBytesReturn(16);

		programBuilder.addBytesReturn(20);

		AddressSetView disAddrs = disassembler.disassemble(addr(10), null);
		assertEquals(addrset(range(10, 15), range(20, 21)), disAddrs);

		disAddrs = disassembler.disassemble(addr(4), null);
		assertEquals(addrset(range(4, 5), range(16, 17)), disAddrs);

		verifyInstructionPresence();

		verifyNoBookmarks();

		Instruction instr = listing.getInstructionAt(addr(12));
		assertEquals(1, instr.getDelaySlotDepth());
		instr = listing.getInstructionAt(addr(14));
		assertTrue(instr.isInDelaySlot());

	}
4: bral 14 ----+   (start2)
                    |
    10: or          |   (start1)
 +- 12: brds   20   |
 |  14: _or   <-----+     
 |  16: ret            (part of second run)
 |         
 +->20: ret   
    
Test branch into delay slot already in Program
Ghidra/Test/IntegrationTest/src/test.slow/java/ghidra/program/disassemble/DisassemblerTest.java