@Test
	public void testParamCommentConflict() throws Exception {
		// 01003ac0		FUN_01003ac0	body:1003ac0-1003bec
		// 01004c1d		FUN_01004c1d	body:1004c1d-1004c2f

		mtf.initialize("NotepadMergeListingTest_X86", new ProgramModifierListener() {

			@Override
			public void modifyLatest(ProgramDB program) {
				try {
					Function func = getFunction(program, "0x1003ac0");
					Parameter p = func.getParameter(0);
					p.setComment("Parameter 0 comment.");

					func = getFunction(program, "0x1004c1d");
					p = func.getParameter(1);
					p.setComment("DonaldDuck");
				}
				catch (Exception e) {
					e.printStackTrace();
					Assert.fail(e.getMessage());
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				try {
					Function func = getFunction(program, "0x1003ac0");
					Parameter p = func.getParameter(0);
					p.setComment("parm 0 comment");

					func = getFunction(program, "0x1004c1d");
					p = func.getParameter(1);
					p.setComment("To be or not to be.");
				}
				catch (Exception e) {
					e.printStackTrace();
					Assert.fail(e.getMessage());
				}
			}
		});

		executeMerge(ASK_USER);
		chooseVariousOptions("0x1003ac0", new int[] { INFO_ROW, KEEP_LATEST });
		chooseVariousOptions("0x1004c1d", new int[] { INFO_ROW, KEEP_MY });
		waitForMergeCompletion();

		Function func = getFunction(resultProgram, "0x1003ac0");
		Parameter[] parms = func.getParameters();
		assertEquals(4, parms.length);
		assertEquals("Parameter 0 comment.", parms[0].getComment());
		assertEquals(null, parms[1].getComment());

		func = getFunction(resultProgram, "0x1004c1d");
		parms = func.getParameters();
		assertEquals(2, parms.length);
		assertEquals(null, parms[0].getComment());
		assertEquals("To be or not to be.", parms[1].getComment());
	}
Test the merge of the versioned program's listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/FunctionMergeManager2Test.java