summaryrefslogtreecommitdiff
path: root/tools/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/test.py')
-rwxr-xr-xtools/test.py41
1 files changed, 28 insertions, 13 deletions
diff --git a/tools/test.py b/tools/test.py
index 04babded24..b928662dec 100755
--- a/tools/test.py
+++ b/tools/test.py
@@ -29,7 +29,6 @@
from __future__ import print_function
-import imp
import logging
import optparse
import os
@@ -45,6 +44,27 @@ import multiprocessing
import errno
import copy
+
+if sys.version_info >= (3, 5):
+ from importlib import machinery, util
+ def get_module(name, path):
+ loader_details = (machinery.SourceFileLoader, machinery.SOURCE_SUFFIXES)
+ spec = machinery.FileFinder(path, loader_details).find_spec(name)
+ module = util.module_from_spec(spec)
+ spec.loader.exec_module(module)
+ return module
+else:
+ import imp
+ def get_module(name, path):
+ file = None
+ try:
+ (file, pathname, description) = imp.find_module(name, [path])
+ return imp.load_module(name, file, pathname, description)
+ finally:
+ if file:
+ file.close()
+
+
from io import open
from os.path import join, dirname, abspath, basename, isdir, exists
from datetime import datetime
@@ -791,18 +811,13 @@ class TestRepository(TestSuite):
if self.is_loaded:
return self.config
self.is_loaded = True
- file = None
- try:
- (file, pathname, description) = imp.find_module('testcfg', [ self.path ])
- module = imp.load_module('testcfg', file, pathname, description)
- self.config = module.GetConfiguration(context, self.path)
- if hasattr(self.config, 'additional_flags'):
- self.config.additional_flags += context.node_args
- else:
- self.config.additional_flags = context.node_args
- finally:
- if file:
- file.close()
+
+ module = get_module('testcfg', self.path)
+ self.config = module.GetConfiguration(context, self.path)
+ if hasattr(self.config, 'additional_flags'):
+ self.config.additional_flags += context.node_args
+ else:
+ self.config.additional_flags = context.node_args
return self.config
def GetBuildRequirements(self, path, context):