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

		final Parameter[] latest_Parm1 = new Parameter[1];
		final Parameter[] latest_Parm2 = new Parameter[1];
		final Parameter[] my_count = new Parameter[1];
		final Parameter[] my_offset = new Parameter[1];

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

			@Override
			public void modifyLatest(ProgramDB program) {
				try {
					latest_Parm1[0] =
						new MyParameter("apple", 4, new ByteDataType(), 0x14, program);
					latest_Parm2[0] =
						new MyParameter("banana", 5, new WordDataType(), 0x20, program);

					Function func = getFunction(program, "0x1003ac0");
					func.setCustomVariableStorage(true);
					func.addParameter(latest_Parm1[0], SourceType.USER_DEFINED);
					func.addParameter(latest_Parm2[0], SourceType.USER_DEFINED);

					func = getFunction(program, "0x1004c1d");
					func.setCustomVariableStorage(true);
					Parameter p0 = func.getParameter(0);
					p0.setName("DonaldDuck", SourceType.USER_DEFINED);
				}
				catch (Exception e) {
					e.printStackTrace();
					Assert.fail(e.getMessage());
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				try {
					my_count[0] = new MyParameter("count", 2, new ByteDataType(), 0x14, program);
					my_offset[0] = new MyParameter("offset", 3, new WordDataType(), 0x20, program);

					Function func = getFunction(program, "0x1003ac0");
					func.setCustomVariableStorage(true);
					Parameter p0 = func.getParameter(0);
					p0.setName("MickeyMouse", SourceType.USER_DEFINED);
					Parameter p1 = func.getParameter(1);
					p1.setDataType(new FloatDataType(), SourceType.ANALYSIS);

					func = getFunction(program, "0x1004c1d");
					func.setCustomVariableStorage(true);
					func.addParameter(my_count[0], SourceType.USER_DEFINED);
					func.addParameter(my_offset[0], SourceType.USER_DEFINED);
				}
				catch (Exception e) {
					e.printStackTrace();
					Assert.fail(e.getMessage());
				}
			}
		});

		executeMerge(ASK_USER);
		chooseRadioButton(LATEST_BUTTON_NAME); // signature @ 0x1003ac0
		chooseRadioButton(CHECKED_OUT_BUTTON_NAME); // signature @ 0x1004c1d
		waitForMergeCompletion();

		Function func = getFunction(resultProgram, "0x1003ac0");
		Parameter[] parms = func.getParameters();
		assertEquals(6, parms.length);
		assertEquals("param_1", parms[0].getName());
		assertEquals("param_2", parms[1].getName());
		assertEquals("param_3", parms[2].getName());
		assertEquals("param_4", parms[3].getName());
		assertEquals(latest_Parm1[0], parms[4]);
		assertEquals(latest_Parm2[0], parms[5]);

		func = getFunction(resultProgram, "0x1004c1d");
		parms = func.getParameters();
		assertEquals(4, parms.length);
		assertEquals("param_1", parms[0].getName());
		assertEquals("param_2", parms[1].getName());
		assertEquals(my_count[0], parms[2]);
		assertEquals(my_offset[0], parms[3]);
	}
Test the merge of the versioned program's listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/FunctionMergeManager2Test.java