@Test
	public void testAddUnInitWithConflict() throws Exception {
		mtf.initialize("DiffTestPgm1", new ProgramModifierListener() {

			@Override
			public void modifyLatest(ProgramDB program) {
				Listing listing = program.getListing();
				CodeUnit cu;
				cu = listing.getCodeUnitAt(addr(program, "0x1008606"));
				cu.setComment(CommentType.EOL, "Latest EOL Comment");
				cu.setComment(CommentType.PRE, "Latest Pre Comment");
				cu.setComment(CommentType.POST, "Latest Post Comment");
				cu.setComment(CommentType.PLATE, "Latest Plate Comment");
				cu.setComment(CommentType.REPEATABLE, "Latest Repeatable Comment");
				cu = listing.getCodeUnitAt(addr(program, "0x1008607"));
				cu.setComment(CommentType.EOL, "Latest EOL Comment");
				cu.setComment(CommentType.PRE, "Latest Pre Comment");
				cu.setComment(CommentType.POST, "Latest Post Comment");
				cu.setComment(CommentType.PLATE, "Latest Plate Comment");
				cu.setComment(CommentType.REPEATABLE, "Latest Repeatable Comment");
				cu = listing.getCodeUnitAt(addr(program, "0x1008608"));
				cu.setComment(CommentType.EOL, "Latest EOL Comment");
				cu.setComment(CommentType.PRE, "Latest Pre Comment");
				cu.setComment(CommentType.POST, "Latest Post Comment");
				cu.setComment(CommentType.PLATE, "Latest Plate Comment");
				cu.setComment(CommentType.REPEATABLE, "Latest Repeatable Comment");
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				Listing listing = program.getListing();
				CodeUnit cu;
				cu = listing.getCodeUnitAt(addr(program, "0x1008606"));
				cu.setComment(CommentType.EOL, "My EOL Comment");
				cu.setComment(CommentType.PRE, "My Pre Comment");
				cu.setComment(CommentType.POST, "My Post Comment");
				cu.setComment(CommentType.PLATE, "My Plate Comment");
				cu.setComment(CommentType.REPEATABLE, "My Repeatable Comment");
				cu = listing.getCodeUnitAt(addr(program, "0x1008607"));
				cu.setComment(CommentType.EOL, "My EOL Comment");
				cu.setComment(CommentType.PRE, "My Pre Comment");
				cu.setComment(CommentType.POST, "My Post Comment");
				cu.setComment(CommentType.PLATE, "My Plate Comment");
				cu.setComment(CommentType.REPEATABLE, "My Repeatable Comment");
				cu = listing.getCodeUnitAt(addr(program, "0x1008608"));
				cu.setComment(CommentType.EOL, "My EOL Comment");
				cu.setComment(CommentType.PRE, "My Pre Comment");
				cu.setComment(CommentType.POST, "My Post Comment");
				cu.setComment(CommentType.PLATE, "My Plate Comment");
				cu.setComment(CommentType.REPEATABLE, "My Repeatable Comment");
			}
		});

		executeMerge(ASK_USER);

		chooseComment("Latest Plate Comment", addr("0x1008606"), KEEP_LATEST);
		chooseComment("Latest Pre Comment", addr("0x1008606"), KEEP_LATEST);
		chooseComment("Latest Eol Comment", addr("0x1008606"), KEEP_LATEST);
		chooseComment("Latest Repeatable Comment", addr("0x1008606"), KEEP_LATEST);
		chooseComment("Latest Post Comment", addr("0x1008606"), KEEP_LATEST);

		chooseComment("My Plate Comment", addr("0x1008607"), KEEP_MY);
		chooseComment("My Pre Comment", addr("0x1008607"), KEEP_MY);
		chooseComment("My Eol Comment", addr("0x1008607"), KEEP_MY);
		chooseComment("My Repeatable Comment", addr("0x1008607"), KEEP_MY);
		chooseComment("My Post Comment", addr("0x1008607"), KEEP_MY);

		chooseVerticalCheckBoxes(new String[] { LATEST_CHECK_BOX, MY_CHECK_BOX }); // Plate
		chooseVerticalCheckBoxes(new String[] { LATEST_CHECK_BOX, MY_CHECK_BOX }); // Pre
		chooseVerticalCheckBoxes(new String[] { LATEST_CHECK_BOX, MY_CHECK_BOX }); // EOL
		chooseVerticalCheckBoxes(new String[] { LATEST_CHECK_BOX, MY_CHECK_BOX }); // Repeatable
		chooseVerticalCheckBoxes(new String[] { LATEST_CHECK_BOX, MY_CHECK_BOX }); // Post

		waitForMergeCompletion();

		Listing listing = resultProgram.getListing();

		CodeUnit cu = listing.getCodeUnitAt(addr("0x1008606"));
		assertEquals("Latest Plate Comment", cu.getComment(CommentType.PLATE));
		assertEquals("Latest Pre Comment", cu.getComment(CommentType.PRE));
		assertEquals("Latest EOL Comment", cu.getComment(CommentType.EOL));
		assertEquals("Latest Repeatable Comment", cu.getComment(CommentType.REPEATABLE));
		assertEquals("Latest Post Comment", cu.getComment(CommentType.POST));
		cu = listing.getCodeUnitAt(addr("0x1008607"));
		assertEquals("My Plate Comment", cu.getComment(CommentType.PLATE));
		assertEquals("My Pre Comment", cu.getComment(CommentType.PRE));
		assertEquals("My EOL Comment", cu.getComment(CommentType.EOL));
		assertEquals("My Repeatable Comment", cu.getComment(CommentType.REPEATABLE));
		assertEquals("My Post Comment", cu.getComment(CommentType.POST));
		cu = listing.getCodeUnitAt(addr("0x1008608"));
		assertEquals("Latest Plate Comment\nMy Plate Comment", cu.getComment(CommentType.PLATE));
		assertEquals("Latest Pre Comment\nMy Pre Comment", cu.getComment(CommentType.PRE));
		assertEquals("Latest EOL Comment\nMy EOL Comment", cu.getComment(CommentType.EOL));
		assertEquals("Latest Repeatable Comment\nMy Repeatable Comment",
			cu.getComment(CommentType.REPEATABLE));
		assertEquals("Latest Post Comment\nMy Post Comment", cu.getComment(CommentType.POST));
	}
Test the merge of the versioned program's listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/CommentMergeManager2Test.java