X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2FrunTests.py;h=34a543f43d50b4671746a8af28193476cf358ccd;hb=ea6b6e43bd022412bc84bdb6972f689b5a69a95e;hp=f2695127fffbd4e1089cb16da2ba3b4c81d18041;hpb=b14ebc59af5152780b6c361ba3db31bce99e265b;p=modules%2Fkernel.git diff --git a/bin/runTests.py b/bin/runTests.py index f2695127f..34a543f43 100644 --- a/bin/runTests.py +++ b/bin/runTests.py @@ -1,4 +1,4 @@ -# Copyright (C) 2015 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2015-2016 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -74,34 +74,23 @@ For complete description of available options, pleaser refer to ctest documentat # tests must be in ${ABSOLUTE_APPLI_PATH}/${__testSubDir}/ __testSubDir = "bin/salome/test" -# Both display process stdout&stderr to console and capture them to variables def __runTest(command, workdir): - p = subprocess.Popen(command, cwd=workdir, stdout=subprocess.PIPE, stderr=subprocess.PIPE, bufsize=0) - stdout = [] - stderr = [] + p = subprocess.Popen(command, cwd=workdir, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) while True: - reads = [p.stdout.fileno(), p.stderr.fileno()] - ret = select.select(reads, [], []) - - for fd in ret[0]: - if fd == p.stdout.fileno(): - read = p.stdout.readline() - sys.stdout.write(read) - stdout.append(read) - pass - if fd == p.stderr.fileno(): - read = p.stderr.readline() - sys.stderr.write(read) - stderr.append(read) - pass + try: + out = p.stdout.readline() + sys.stdout.write(out) + except: # raised IOError or OSError if output is empty pass - if p.poll() != None: + returncode = p.poll() + if not returncode is None: + sys.stdout.flush() break pass - return p.returncode, "".join(stdout), "".join(stderr) + return p.returncode # def runTests(args, exe=None): @@ -114,7 +103,7 @@ def runTests(args, exe=None): testPath = os.path.join(appliPath, __testSubDir) command = ["ctest"] + args - res, out, err = __runTest(command, testPath) + res = __runTest(command, testPath) sys.exit(res) #