コード例 #1
0
 def runTest(self, module, path, logfile, workingDir, args=[]):
     args = args[:]
     exe = os.path.abspath(path)
     if module == "java":
         cmd = [self.cache.ant_executable, "-Dopencv.build.type=%s" % self.cache.build_type]
         if self.options.package:
             cmd += ["-Dopencv.test.package=%s" % self.options.package]
         cmd += ["buildAndTest"]
         ret = execute(cmd, cwd=self.cache.java_test_dir)
         return None, ret
     elif module in ['python2', 'python3']:
         executable = os.getenv('OPENCV_PYTHON_BINARY', None)
         if executable is None or module == 'python{}'.format(sys.version_info[0]):
             executable = sys.executable
         if executable is None:
             executable = path
             if not self.tryCommand([executable, '--version'], workingDir):
                 executable = 'python'
         cmd = [executable, self.cache.opencv_home + '/modules/python/test/test.py', '--repo', self.cache.opencv_home, '-v'] + args
         module_suffix = '' if 'Visual Studio' not 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")
         env = {}
         if not self.options.valgrind and self.options.trace:
             env['OPENCV_TRACE'] = '1'
             env['OPENCV_TRACE_LOCATION'] = 'OpenCVTrace-{}'.format(self.getLogBaseName(exe))
             env['OPENCV_TRACE_SYNC_OPENCL'] = '1'
         tempDir = TempEnvDir('OPENCV_TEMP_PATH', "__opencv_temp.")
         tempDir.init()
         cmd = self.wrapCommand(module, [exe] + args, env)
         log.warning("Run: %s" % " ".join(cmd))
         ret = execute(cmd, cwd=workingDir, env=env)
         try:
             if not self.options.valgrind and self.options.trace and int(self.options.trace_dump) >= 0:
                 import trace_profiler
                 trace = trace_profiler.Trace(env['OPENCV_TRACE_LOCATION']+'.txt')
                 trace.process()
                 trace.dump(max_entries=int(self.options.trace_dump))
         except:
             import traceback
             traceback.print_exc()
             pass
         tempDir.clean()
         hostlogpath = os.path.join(workingDir, logfile)
         if os.path.isfile(hostlogpath):
             return hostlogpath, ret
         return None, ret
コード例 #2
0
 def runTest(self, module, path, logfile, workingDir, args=[]):
     args = args[:]
     exe = os.path.abspath(path)
     if module == "java":
         cmd = [self.cache.ant_executable, "-Dopencv.build.type=%s" % self.cache.build_type, "buildAndTest"]
         ret = execute(cmd, cwd=self.cache.java_test_dir)
         return None, ret
     elif module in ['python2', 'python3']:
         executable = os.getenv('OPENCV_PYTHON_BINARY', None)
         if executable is None or module == 'python{}'.format(sys.version_info[0]):
             executable = sys.executable
         if executable is None:
             executable = path
             if not self.tryCommand([executable, '--version'], workingDir):
                 executable = 'python'
         cmd = [executable, self.cache.opencv_home + '/modules/python/test/test.py', '--repo', self.cache.opencv_home, '-v'] + args
         module_suffix = '' if 'Visual Studio' not 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")
         env = {}
         if not self.options.valgrind and self.options.trace:
             env['OPENCV_TRACE'] = '1'
             env['OPENCV_TRACE_LOCATION'] = 'OpenCVTrace-{}'.format(self.getLogBaseName(exe))
             env['OPENCV_TRACE_SYNC_OPENCL'] = '1'
         tempDir = TempEnvDir('OPENCV_TEMP_PATH', "__opencv_temp.")
         tempDir.init()
         cmd = self.wrapCommand(module, [exe] + args, env)
         log.warning("Run: %s" % " ".join(cmd))
         ret = execute(cmd, cwd=workingDir, env=env)
         try:
             if not self.options.valgrind and self.options.trace and int(self.options.trace_dump) >= 0:
                 import trace_profiler
                 trace = trace_profiler.Trace(env['OPENCV_TRACE_LOCATION']+'.txt')
                 trace.process()
                 trace.dump(max_entries=int(self.options.trace_dump))
         except:
             import traceback
             traceback.print_exc()
             pass
         tempDir.clean()
         hostlogpath = os.path.join(workingDir, logfile)
         if os.path.isfile(hostlogpath):
             return hostlogpath, ret
         return None, ret
コード例 #3
0
ファイル: run_android.py プロジェクト: xiongbo010/ViroOpenCV
    def runTest(self, path, logfile, workingDir, args=[]):
        args = args[:]
        exe = os.path.abspath(path)

        if exe.endswith(".apk"):
            info = self.aapt.dump(exe)
            if not info:
                raise Err("Can not read info from test package: %s", exe)
            info.forcePackage(self.options.package)
            self.adb.run(["uninstall", info.pkg_name])

            output = self.adb.run(["install", exe], silent=True)
            if not (output and "Success" in output):
                raise Err("Can not install package: %s", exe)

            params = ["-e package %s" % info.pkg_target]
            ret = self.adb.run([
                "shell",
                "am instrument -w %s %s/%s" %
                (" ".join(params), info.pkg_name, info.pkg_runner)
            ])
            return None, ret
        else:
            device_dir = getpass.getuser().replace(
                " ", "") + "_" + self.options.mode + "/"
            if isColorEnabled(args):
                args.append("--gtest_color=yes")
            tempdir = "/data/local/tmp/"
            android_dir = tempdir + device_dir
            exename = os.path.basename(exe)
            android_exe = android_dir + exename
            self.adb.run(["push", exe, android_exe])
            self.adb.run(["shell", "chmod 777 " + android_exe])
            env_pieces = ["export %s=%s" % (a, b) for a, b in self.env.items()]
            pieces = [
                "cd %s" % android_dir,
                "./%s %s" % (exename, " ".join(args))
            ]
            log.warning("Run: %s" % " && ".join(pieces))
            ret = self.adb.run(["shell", " && ".join(env_pieces + pieces)])
            # try get log
            hostlogpath = os.path.join(workingDir, logfile)
            self.adb.run(["pull", android_dir + logfile, hostlogpath])
            # cleanup
            self.adb.run(["shell", "rm " + android_dir + logfile])
            self.adb.run(["shell", "rm " + tempdir + "__opencv_temp.*"],
                         silent=True)
            if os.path.isfile(hostlogpath):
                return hostlogpath, ret
            return None, ret
コード例 #4
0
ファイル: run_android.py プロジェクト: ArkaJU/opencv
    def runTest(self, path, logfile, workingDir, args=[]):
        args = args[:]
        exe = os.path.abspath(path)

        if exe.endswith(".apk"):
            info = self.aapt.dump(exe)
            if not info:
                raise Err("Can not read info from test package: %s", exe)
            info.forcePackage(self.options.package)
            self.adb.run(["uninstall", info.pkg_name])

            output = self.adb.run(["install", exe], silent=True)
            if not (output and "Success" in output):
                raise Err("Can not install package: %s", exe)

            params = ["-e package %s" % info.pkg_target]
            ret = self.adb.run(["shell", "am instrument -w %s %s/%s" % (" ".join(params), info.pkg_name, info.pkg_runner)])
            return None, ret
        else:
            device_dir = getpass.getuser().replace(" ", "") + "_" + self.options.mode + "/"
            if isColorEnabled(args):
                args.append("--gtest_color=yes")
            tempdir = "/data/local/tmp/"
            android_dir = tempdir + device_dir
            exename = os.path.basename(exe)
            android_exe = android_dir + exename
            self.adb.run(["push", exe, android_exe])
            self.adb.run(["shell", "chmod 777 " + android_exe])
            env_pieces = ["export %s=%s" % (a, b) for a, b in self.env.items()]
            pieces = ["cd %s" % android_dir, "./%s %s" % (exename, " ".join(args))]
            log.warning("Run: %s" % " && ".join(pieces))
            ret = self.adb.run(["shell", " && ".join(env_pieces + pieces)])
            # try get log
            hostlogpath = os.path.join(workingDir, logfile)
            self.adb.run(["pull", android_dir + logfile, hostlogpath])
            # cleanup
            self.adb.run(["shell", "rm " + android_dir + logfile])
            self.adb.run(["shell", "rm " + tempdir + "__opencv_temp.*"], silent=True)
            if os.path.isfile(hostlogpath):
                return hostlogpath, ret
            return None, ret