@Test
	public void testRenameWithNameConflict() throws Exception {
		// Same name at different addresses in same scope.
		// 01002691: primary local "AAA" scope=FUN_0100248f
		// 01002721: primary global "XXX"
		mtf.initialize("NotepadMergeListingTest", new ProgramModifierListener() {

			@Override
			public void modifyLatest(ProgramDB program) {
				try {
					SymbolTable symtab = program.getSymbolTable();
					Symbol symbol = symtab.getPrimarySymbol(addr(program, "0x1002691"));
					symbol.setName("LATEST_LOCAL", SourceType.USER_DEFINED);

					symbol = symtab.getPrimarySymbol(addr(program, "0x1002721"));
					symbol.setName("LATEST_GLOBAL", SourceType.USER_DEFINED);
				}
				catch (Exception e) {
					Assert.fail(e.getMessage());
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				try {
					SymbolTable symtab = program.getSymbolTable();
					Symbol symbol = symtab.getPrimarySymbol(addr(program, "0x1002691"));
					symbol.setName("MY_LOCAL", SourceType.USER_DEFINED);

					symbol = symtab.getPrimarySymbol(addr(program, "0x1002721"));
					symbol.setName("MY_GLOBAL", SourceType.USER_DEFINED);
				}
				catch (Exception e) {
					Assert.fail(e.getMessage());
				}
			}
		});

		executeMerge(ASK_USER);
		chooseRadioButton(MY_BUTTON);
		chooseRadioButton(LATEST_BUTTON);
		waitForMergeCompletion();

		SymbolTable symtab = resultProgram.getSymbolTable();
		Symbol[] symbols;

		symbols = symtab.getSymbols(addr("0x1002691"));
		assertEquals(1, symbols.length);
		checkSymbol(symbols[0], "MY_LOCAL", false);
		assertTrue(symbols[0].isPrimary());

		symbols = symtab.getSymbols(addr("0x1002721"));
		assertEquals(1, symbols.length);
		checkSymbol(symbols[0], "LATEST_GLOBAL", true);
		assertTrue(symbols[0].isPrimary());
	}
Test a conflict between a global namespace symbol being removed in
one program (LATEST or CHECKED OUT) and its name changed in the other.
@throws Exception
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/SymbolMergeManager1Test.java