Issue #14764: Update importlib.test.benchmark to work in a world where
import machinery is no longer implicit.
diff --git a/Lib/importlib/test/benchmark.py b/Lib/importlib/test/benchmark.py
index 87b1775..1686314 100644
--- a/Lib/importlib/test/benchmark.py
+++ b/Lib/importlib/test/benchmark.py
@@ -9,6 +9,8 @@
 import decimal
 import imp
 import importlib
+import importlib._bootstrap
+import importlib.machinery
 import json
 import os
 import py_compile
@@ -68,6 +70,10 @@
         # Clears out sys.modules and puts an entry at the front of sys.path.
         with source_util.create_modules(name) as mapping:
             assert not os.path.exists(imp.cache_from_source(mapping[name]))
+            sys.meta_path.append(importlib.machinery.PathFinder)
+            loader = (importlib.machinery.SourceFileLoader,
+                      importlib._bootstrap._SOURCE_SUFFIXES, True)
+            sys.path_hooks.append(importlib.machinery.FileFinder.path_hook(loader))
             for result in bench(name, lambda: sys.modules.pop(name), repeat=repeat,
                                 seconds=seconds):
                 yield result
@@ -102,6 +108,10 @@
     assert not sys.dont_write_bytecode
     name = '__importlib_test_benchmark__'
     with source_util.create_modules(name) as mapping:
+        sys.meta_path.append(importlib.machinery.PathFinder)
+        loader = (importlib.machinery.SourceFileLoader,
+                  importlib._bootstrap._SOURCE_SUFFIXES, True)
+        sys.path_hooks.append(importlib.machinery.FileFinder.path_hook(loader))
         def cleanup():
             sys.modules.pop(name)
             os.unlink(imp.cache_from_source(mapping[name]))
@@ -133,6 +143,10 @@
     """Source w/ bytecode: small"""
     name = '__importlib_test_benchmark__'
     with source_util.create_modules(name) as mapping:
+        sys.meta_path.append(importlib.machinery.PathFinder)
+        loader = (importlib.machinery.SourceFileLoader,
+                importlib._bootstrap._SOURCE_SUFFIXES, True)
+        sys.path_hooks.append(importlib.machinery.FileFinder.path_hook(loader))
         py_compile.compile(mapping[name])
         assert os.path.exists(imp.cache_from_source(mapping[name]))
         for result in bench(name, lambda: sys.modules.pop(name), repeat=repeat,