function loadAllAvailableLibraries() {

		// We have a list of known libraries (in the bootstrap) that have to be checked. This list will be dynamically extended below with any new libraries. This static list here is just for fallback purposes.
		var mLoadedLibraries = Library.all();

		// Maybe libraries have been added, so discover what is available in order to also test them. But only do this when we are in sapui5.runtime layer, not when this test is executed in dist layer.
		return VersionInfo.load().then(function(oInfo) {
			return Promise.all(
				oInfo.libraries.map(function(oLibInfo) {
					var sInfoLibName = oLibInfo.name;

					// only load known libraries, we won't test others
					if (!aKnownLibraries.includes(sInfoLibName)) {
						return;
					}

					if (!mLoadedLibraries[sInfoLibName]) {
						Log.info("Library '" + sInfoLibName + "' is not loaded! Trying...");
						return sap.ui.getCore().loadLibrary(sInfoLibName, {async: true})
							.then(function(oLibrary) {
								mLoadedLibraries[sInfoLibName] = oLibrary.controls;
								Log.info("Library '" + sInfoLibName + "...successfully.");
							}, function(err) {
								// not a control lib? This happens for e.g. "sap.ui.server.java"...
							});
					} else {
						mLoadedLibraries[sInfoLibName] = mLoadedLibraries[sInfoLibName].controls; // only the control list is needed
						return;
					}
				}));
		}).then(function() {
			return mLoadedLibraries;
		});
	}
Iterates over all loaded libraries, but also all available libraries and tries to load them and their control lists.
@returns an object that maps each library name to an array of control names in this library