@Test
	public void testAddSpaceProperty() throws Exception {
		// ********************
		// *** DiffTestPgm2 ***
		// ********************
		// ** SPACE property
		// 0x10018ba: space=1.
		// 0x10018ce: space=2.
		// 0x10018ff: space=2.
		// ** testColor property
		// 0x100248c: testColor=WHITE.
		// 0x10039f1: testColor=BLACK.
		// 0x10039f8: testColor=BLACK.
		// 0x10039fe: testColor=GREEN.
		mtf.initialize("DiffTestPgm2", new ProgramModifierListener() {

			@Override
			public void modifyLatest(ProgramDB program) {
				PropertyMapManager pmm = program.getUsrPropertyManager();
				IntPropertyMap pm = pmm.getIntPropertyMap("Space");
				pm.add(addr(program, "0x1002472"), 1);
				pm.add(addr(program, "0x1002488"), 3);
				pm.add(addr(program, "0x100248a"), 3);
				pm.add(addr(program, "0x100248c"), 3);
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				PropertyMapManager pmm = program.getUsrPropertyManager();
				IntPropertyMap pm = pmm.getIntPropertyMap("Space");
				pm.add(addr(program, "0x1002481"), 2);
				pm.add(addr(program, "0x1002488"), 2);
				pm.add(addr(program, "0x100248a"), 2);
				pm.add(addr(program, "0x100248c"), 2);
			}
		});

		executeMerge(ASK_USER);
		chooseUserDefined(addr("0x1002488"), "Space", KEEP_LATEST);
		chooseUserDefined(addr("0x100248a"), "Space", KEEP_ORIGINAL);
		chooseUserDefined(addr("0x100248c"), "Space", KEEP_MY);
		waitForMergeCompletion();

		PropertyMapManager pmm = resultProgram.getUsrPropertyManager();
		IntPropertyMap pm = pmm.getIntPropertyMap("Space");
		Address address = resultProgram.getMinAddress();
		address = pm.getNextPropertyAddress(address);
		assertEquals(addr("0x10018ba"), address);
		assertEquals(1, pm.getInt(address));
		address = pm.getNextPropertyAddress(address);
		assertEquals(addr("0x10018ce"), address);
		assertEquals(2, pm.getInt(address));
		address = pm.getNextPropertyAddress(address);
		assertEquals(addr("0x10018ff"), address);
		assertEquals(2, pm.getInt(address));
		address = pm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002428"), address);
		assertEquals(1, pm.getInt(address));
		address = pm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002472"), address);
		assertEquals(1, pm.getInt(address));
		address = pm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002481"), address);
		assertEquals(2, pm.getInt(address));
		address = pm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002488"), address);
		assertEquals(3, pm.getInt(address));
		address = pm.getNextPropertyAddress(address);
		assertEquals(addr("0x100248c"), address);
		assertEquals(2, pm.getInt(address));
		address = pm.getNextPropertyAddress(address);
		assertNull(address);
	}
Test the merge of the versioned program's listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/UserDefinedPropertyMergeManagerTest.java