[opencv] 17/89: ts: update run.py
Nobuhiro Iwamatsu
iwamatsu at moszumanska.debian.org
Sat May 13 09:57:21 UTC 2017
This is an automated email from the git hooks/post-receive script.
iwamatsu pushed a commit to annotated tag 2.4.13.2
in repository opencv.
commit 6f00e53159f9f7295dbc26ee9c36974e42e7f268
Author: Alexander Alekhin <alexander.alekhin at intel.com>
Date: Thu Oct 20 14:35:34 2016 +0300
ts: update run.py
Add information about python bindings
---
modules/ts/misc/run_suite.py | 41 ++++++++++++++++++++++++++++++++++-------
modules/ts/misc/run_utils.py | 24 ++++++++++++++++++++----
2 files changed, 54 insertions(+), 11 deletions(-)
diff --git a/modules/ts/misc/run_suite.py b/modules/ts/misc/run_suite.py
index 280c21c..bd80874 100644
--- a/modules/ts/misc/run_suite.py
+++ b/modules/ts/misc/run_suite.py
@@ -85,8 +85,8 @@ class TestSuite(object):
return set(res)
def isTest(self, fullpath):
- if fullpath == "java":
- return True
+ if fullpath in ['java', 'python2', 'python3']:
+ return self.options.mode == 'test'
if not os.path.isfile(fullpath):
return False
if self.cache.getOS() == "nt" and not fullpath.endswith(".exe"):
@@ -102,6 +102,14 @@ class TestSuite(object):
return res + cmd
return cmd
+ def tryCommand(self, cmd):
+ try:
+ if 0 == execute(cmd, cwd = workingDir):
+ return True
+ except:
+ pass
+ return False
+
def runTest(self, path, logfile, workingDir, args = []):
args = args[:]
exe = os.path.abspath(path)
@@ -109,6 +117,22 @@ class TestSuite(object):
cmd = [self.cache.ant_executable, "-Dopencv.build.type=%s" % self.cache.build_type, "buildAndTest"]
ret = execute(cmd, cwd = self.cache.java_test_binary_dir + "/.build")
return None, ret
+ elif path in ['python2', 'python3']:
+ executable = os.getenv('OPENCV_PYTHON_BINARY', None)
+ if executable is None:
+ executable = path
+ if not self.tryCommand([executable, '--version']):
+ executable = 'python'
+ cmd = [executable, self.cache.opencv_home + '/modules/python/test/test.py', '--repo', self.cache.opencv_home, '-v'] + args
+ module_suffix = '' if not 'Visual Studio' in self.cache.cmake_generator else '/' + self.cache.build_type
+ env = {}
+ env['PYTHONPATH'] = self.cache.opencv_build + '/lib' + module_suffix + os.pathsep + os.getenv('PYTHONPATH', '')
+ if self.cache.getOS() == 'nt':
+ env['PATH'] = self.cache.opencv_build + '/bin' + module_suffix + os.pathsep + os.getenv('PATH', '')
+ else:
+ env['LD_LIBRARY_PATH'] = self.cache.opencv_build + '/bin' + os.pathsep + os.getenv('LD_LIBRARY_PATH', '')
+ ret = execute(cmd, cwd = workingDir, env = env)
+ return None, ret
else:
if isColorEnabled(args):
args.append("--gtest_color=yes")
@@ -140,12 +164,15 @@ class TestSuite(object):
more_args = []
exe = self.getTest(test)
- userlog = [a for a in args if a.startswith("--gtest_output=")]
- if len(userlog) == 0:
- logname = self.getLogName(exe, date)
- more_args.append("--gtest_output=xml:" + logname)
+ if exe in ["java", "python2", "python3"]:
+ logname = None
else:
- logname = userlog[0][userlog[0].find(":")+1:]
+ userlog = [a for a in args if a.startswith("--gtest_output=")]
+ if len(userlog) == 0:
+ logname = self.getLogName(exe, date)
+ more_args.append("--gtest_output=xml:" + logname)
+ else:
+ logname = userlog[0][userlog[0].find(":")+1:]
log.debug("Running the test: %s (%s) ==> %s in %s", exe, args + more_args, logname, workingDir)
if self.options.dry_run:
diff --git a/modules/ts/misc/run_utils.py b/modules/ts/misc/run_utils.py
index 5841631..8740aa7 100644
--- a/modules/ts/misc/run_utils.py
+++ b/modules/ts/misc/run_utils.py
@@ -22,13 +22,17 @@ class Err(Exception):
def __init__(self, msg, *args):
self.msg = msg % args
-def execute(cmd, silent = False, cwd = "."):
+def execute(cmd, silent = False, cwd = ".", env = None):
try:
log.debug("Run: %s", cmd)
+ if env:
+ for k in env:
+ log.debug(" Environ: %s=%s", k, env[k])
+ env = os.environ.update(env)
if silent:
- return check_output(cmd, stderr = STDOUT, cwd = cwd).decode("latin-1")
+ return check_output(cmd, stderr = STDOUT, cwd = cwd, env = env).decode("latin-1")
else:
- return check_call(cmd, cwd = cwd)
+ return check_call(cmd, cwd = cwd, env = env)
except CalledProcessError as e:
if silent:
log.debug("Process returned: %d", e.returncode)
@@ -171,6 +175,8 @@ parse_patterns = (
{'name': "cuda_library", 'default': None, 'pattern': re.compile(r"^CUDA_CUDA_LIBRARY:FILEPATH=(.+)$")},
{'name': "cuda_version", 'default': None, 'pattern': re.compile(r"^CUDA_VERSION:STRING=(.+)$")},
{'name': "core_dependencies", 'default': None, 'pattern': re.compile(r"^opencv_core_LIB_DEPENDS:STATIC=(.+)$")},
+ {'name': "python2", 'default': None, 'pattern': re.compile(r"^BUILD_opencv_python2:BOOL=(.*)$")},
+ {'name': "python3", 'default': None, 'pattern': re.compile(r"^BUILD_opencv_python3:BOOL=(.*)$")},
)
class CMakeCache:
@@ -247,11 +253,15 @@ class CMakeCache:
files = glob.glob(os.path.join(d, mask))
if not self.getOS() == "android" and self.withJava():
files.append("java")
+ if self.withPython2():
+ files.append("python2")
+ if self.withPython3():
+ files.append("python3")
return [f for f in files if isGood(f)]
return []
def isMainModule(self, name):
- return name in self.main_modules
+ return name in self.main_modules + ['python2', 'python3']
def withCuda(self):
return self.cuda_version and self.with_cuda == "ON" and self.cuda_library and not self.cuda_library.endswith("-NOTFOUND")
@@ -259,6 +269,12 @@ class CMakeCache:
def withJava(self):
return self.ant_executable and self.java_test_binary_dir
+ def withPython2(self):
+ return self.python2 == 'ON'
+
+ def withPython3(self):
+ return self.python3 == 'ON'
+
def getGitVersion(self):
if self.cmake_home_vcver:
if self.cmake_home_vcver == self.opencv_home_vcver:
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/opencv.git
More information about the debian-science-commits
mailing list