@Test
	public void testAddSameExternalLibraryNoConflict() throws Exception {

		final String libname = "user32.dll";

		mtf.initialize("NotepadMergeListingTest", new MergeProgramModifier() {

			@Override
			public void initializeProgram(MergeProgram program) throws Exception {
				program.addMemory("memory", "0x0", 0x200);
			}

			@Override
			public void modifyLatest(MergeProgram mergeProgram) throws Exception {
				mergeProgram.createExternalLibrary(libname, SourceType.USER_DEFINED);
			}

			@Override
			public void modifyPrivate(MergeProgram mergeProgram) throws Exception {
				mergeProgram.createExternalLibrary(libname, SourceType.USER_DEFINED);
			}
		});

		executeMerge(ASK_USER);
		waitForMergeCompletion();

		Symbol externalLibrarySymbol = resultProgram.getSymbolTable().getLibrarySymbol(libname);
		assertNotNull(externalLibrarySymbol);
		assertEquals(SymbolType.LIBRARY, externalLibrarySymbol.getSymbolType());

		Symbol conflictSymbol =
			resultProgram.getSymbolTable().getLibrarySymbol(libname + "_conflict1");
		assertNull(conflictSymbol);
	}
The external function merger only detects and merges source differences when a name
difference is being merged.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/ExternalMergerAddTest.java