Fixed run.py bugs

pull/2/head
Andrey Kamaev 13 years ago
parent b528348f39
commit cfc593eb0d
  1. 31
      modules/ts/misc/run.py

@ -1,4 +1,4 @@
import sys, os, platform, xml, re, tempfile, glob, datetime, getpass import sys, os, platform, xml, re, tempfile, glob, datetime, getpass, shutil
from optparse import OptionParser from optparse import OptionParser
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
@ -228,6 +228,7 @@ class RunInfo(object):
# fix empty tests dir # fix empty tests dir
if not self.tests_dir: if not self.tests_dir:
self.tests_dir = self.path self.tests_dir = self.path
self.tests_dir = os.path.normpath(self.tests_dir)
# add path to adb # add path to adb
if self.android_executable: if self.android_executable:
self.adb = os.path.join(os.path.dirname(os.path.dirname(self.android_executable)), ("platform-tools/adb","platform-tools/adb.exe")[hostos == 'nt']) self.adb = os.path.join(os.path.dirname(os.path.dirname(self.android_executable)), ("platform-tools/adb","platform-tools/adb.exe")[hostos == 'nt'])
@ -375,7 +376,6 @@ class RunInfo(object):
setattr(self, name, None) setattr(self, name, None)
finally: finally:
if dir: if dir:
import shutil
shutil.rmtree(dir) shutil.rmtree(dir)
def isTest(self, fullpath): def isTest(self, fullpath):
@ -536,16 +536,17 @@ class RunInfo(object):
if fname == name: if fname == name:
return t return t
if fname.endswith(".exe") or (self.targetos == "android" and fname.endswith(".apk")): if fname.endswith(".exe") or (self.targetos == "android" and fname.endswith(".apk")):
if fname.endswith("d.exe"):
fname = fname[:-5]
else:
fname = fname[:-4] fname = fname[:-4]
if fname == name: if fname == name:
return t return t
if self.options.configuration == "Debug" and fname == name + 'd':
return t
if fname.startswith(self.nameprefix): if fname.startswith(self.nameprefix):
fname = fname[len(self.nameprefix):] fname = fname[len(self.nameprefix):]
if fname == name: if fname == name:
return t return t
if self.options.configuration == "Debug" and fname == name + 'd':
return t
return None return None
def runAdb(self, *args): def runAdb(self, *args):
@ -707,6 +708,11 @@ class RunInfo(object):
cmd.append("--help") cmd.append("--help")
else: else:
cmd.extend(args) cmd.extend(args)
orig_temp_path = os.environ.get('OPENCV_TEMP_PATH')
temp_path = tempfile.mkdtemp(prefix="__opencv_temp.", dir=orig_temp_path or None)
os.environ['OPENCV_TEMP_PATH'] = temp_path
print >> _stderr, "Running:", " ".join(cmd) print >> _stderr, "Running:", " ".join(cmd)
try: try:
Popen(cmd, stdout=_stdout, stderr=_stderr, cwd = workingDir).wait() Popen(cmd, stdout=_stdout, stderr=_stderr, cwd = workingDir).wait()
@ -714,20 +720,13 @@ class RunInfo(object):
pass pass
# clean temporary files # clean temporary files
temp_path = os.environ.get('OPENCV_TEMP_PATH') if orig_temp_path:
if not temp_path: os.environ['OPENCV_TEMP_PATH'] = orig_temp_path
if self.targetos == "nt":
temp_path = tempfile.gettempdir()
else: else:
temp_path = "/tmp" del os.environ['OPENCV_TEMP_PATH']
try: try:
if self.targetos == "nt": shutil.rmtree(temp_path)
for filename in glob.glob(os.path.join(temp_path, "ocv*")) :
os.remove( filename )
else:
for filename in glob.glob(os.path.join(temp_path, "__opencv_temp.*")) :
os.remove( filename )
except: except:
pass pass

Loading…
Cancel
Save