public ProgramDB getProgram(String progName) {

		if (progName.endsWith(".gzf")) {
			progName = progName.substring(0, progName.length() - 4);
		}

		try {
			PrivateDatabase db = testPrograms.get(progName);
			if (db != null) {
				ProgramDB program = openProgram(progName, db);
				openTestPrograms.add(program);
				return program;
			}

			File dbDir = new File(getDbTestDir(), NamingUtilities.mangle(progName) + ".db");
			db = loadDBFromDirectory(db, dbDir);

			if (db == null) {
				db = createNewDB(progName, db, dbDir);
			}

			if (db == null) {
				return null;
			}

			ProgramDB program = openProgram(progName, db);

			openTestPrograms.add(program);
			return program;

		}
		catch (Exception e) {
			throw new RuntimeException(
				"Failed to load test program " + progName + " because: " + e.getMessage(), e);
		}
	}
Open a read-only test program from the test data directory.
This program must be released prior to disposing this test environment.
NOTE: Some tests rely on this method returning null when file does
not yet exist within the resource area (e.g., test binaries for P-Code Tests)

@param progName name of program database within the test data directory.
@return program or null if program file not found
Ghidra/Features/Base/src/main/java/ghidra/test/TestProgramManager.java