protected void createAnalyzedFunction(ProgramDB program, String entryPoint, String name) {
		Address addr = addr(program, entryPoint);
		try {
			CreateFunctionCmd functionCmd =
				new CreateFunctionCmd(name, addr, null, SourceType.ANALYSIS);
			assertTrue("Failed to create function " + name + " @ " + addr,
				functionCmd.applyTo(program));
			Function newFunction = program.getFunctionManager().getFunctionAt(addr);
			assertNotNull(newFunction);

			if (newFunction.isThunk()) {
				// TODO For thunk functions need to call thunk analyzer here before
				// stack analysis occurs
			}
			FunctionStackAnalysisCmd analyzeCmd = new FunctionStackAnalysisCmd(addr, true);
			assertTrue("Failed to analyze stack for " + name + " @ " + addr,
				analyzeCmd.applyTo(program));
		}
		catch (Exception e) {
			failWithException("Can't create analyzed function @ " + entryPoint, e);
		}
	}
Assert that the code units from the two indicated programs are the same
for the addresses indicated by the address set.
If not then a JUnit failure occurs.
@param p1 first program
@param p2 second program
@param addrs address set where code units should be the same.
@throws ProgramConflictException if the programs can't be compared.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/AbstractListingMergeManagerTest.java