private void disposeAllSwingUpdateManagers() {
		//
		// Cleanup all statically tracked SwingUpdateManagers.  If we do not do this, then as
		// tools are launched, the number of tracked managers increases, as not all clients of
		// the managers will dispose the managers.
		//
		@SuppressWarnings("unchecked")
		WeakSet<SwingUpdateManager> s = (WeakSet<SwingUpdateManager>) TestUtils
				.getInstanceField("instances", SwingUpdateManager.class);

		/* Debug for undisposed SwingUpdateManagers
			Msg.out("complete update manager list: ");
			List<SwingUpdateManager> list = new ArrayList<>(s.values());
			Collections.sort(list, (v1, v2) -> {
		
				return v1.toString().compareTo(v2.toString());
			});
			Msg.out(StringUtils.join(list, ",\n"));
		*/

		AbstractGuiTest.runSwing(() -> s.clear());
	}
Closes the given program, ignoring all changes, for each tool known to this TestEnv.

@param p the program to close
Ghidra/Features/Base/src/main/java/ghidra/test/TestEnv.java