@Test
	public void testFallthroughConflictKeepChangedLatest() throws Exception {
		mtf.initialize("NotepadMergeListingTest", new OriginalProgramModifierListener() {

			@Override
			public void modifyOriginal(ProgramDB program) {
				// Override fallthrough (0x01006421 to 0x01006423) by setting from 0x01006421 to 0x01006436
				Instruction inst =
					program.getListing().getInstructionAt(addr(program, "0x01006421"));
				inst.setFallThrough(addr(program, "0x01006436"));
				
				ReferenceManager refMgr = program.getReferenceManager();
				assertNotNull(refMgr.getReference(addr(program, "0x01006421"),
					addr(program, "0x01006436"), -1));
			}

			@Override
			public void modifyLatest(ProgramDB program) {
				// Change override fallthrough by setting from 0x01006421 to 0x01006421
				Instruction inst =
					program.getListing().getInstructionAt(addr(program, "0x01006421"));
				inst.setFallThrough(addr(program, "0x01006442"));
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				// Remove default fallthrough for 0x01006421
				Instruction inst = program.getListing().getInstructionAt(addr(program, "0x01006421"));
				inst.setFallThrough(null);

				// Restore fallthrough by setting for 0x01006421
				inst.clearFallThroughOverride(); // default fallthrough is 0x01006423
			}
		});

		executeMerge(ASK_USER);
		chooseCodeUnit("0x01006421", "0x01006422", KEEP_LATEST, false);
		waitForMergeCompletion();

		Instruction resultInst = resultProgram.getListing().getInstructionAt(addr("0x01006421"));
		assertEquals(addr("0x01006442"), resultInst.getFallThrough());
		ReferenceManager refMgr = resultProgram.getReferenceManager();
		Reference ref = refMgr.getReference(addr("0x01006421"), addr("0x01006442"), -1);
		assertNotNull(ref);
		assertEquals(RefType.FALL_THROUGH, ref.getReferenceType());
	}
Test the merge of the versioned program's listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/RefMergerMemTest.java