@Test
	public void testDiffFunctionVarArgs() throws Exception {
		// 0100248f
		// 010033f6
		// 01003bed
		// 01006420
		mtf.initialize("NotepadMergeListingTest", new ProgramModifierListener() {
			@Override
			public void modifyLatest(ProgramDB program) {
				// P1 program
				try {
					// 0100248f
					// 01003bed
					Function f0100248f =
						program.getFunctionManager().getFunctionAt(addr(program, "0x0100248f"));
					Function f01003bed =
						program.getFunctionManager().getFunctionAt(addr(program, "0x01003bed"));
					f0100248f.setVarArgs(true);
					f01003bed.setVarArgs(true);
				}
				catch (Exception e) {
					Assert.fail(e.getMessage());
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				// P2 program
				try {
					// 010033f6
					// 01003bed
					Function f010033f6 =
						program.getFunctionManager().getFunctionAt(addr(program, "0x010033f6"));
					Function f01003bed =
						program.getFunctionManager().getFunctionAt(addr(program, "0x01003bed"));
					f010033f6.setVarArgs(true);
					f01003bed.setVarArgs(true);
				}
				catch (Exception e) {
					Assert.fail(e.getMessage());
				}
			}
		});

		p1 = mtf.getResultProgram();
		p2 = mtf.getPrivateProgram();

		programDiff = new ProgramDiff(p1, p2);
		AddressSet as = new AddressSet();
		as.addRange(addr(p1, "0x0100248f"), addr(p1, "0x0100248f"));
		as.addRange(addr(p1, "0x010033f6"), addr(p1, "0x010033f6"));
		programDiff.setFilter(new ProgramDiffFilter(ProgramDiffFilter.FUNCTION_DIFFS));
		assertEquals(as, programDiff.getDifferences(programDiff.getFilter(), null));
	}
Test that ProgramDiff recognizes that the 2 programs have the same
address spaces.
Ghidra/Features/Base/src/test.slow/java/ghidra/program/util/ProgramDiff2Test.java