]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Homogeneize test process call
authorCédric Aguerre <cedric.aguerre@edf.fr>
Tue, 24 May 2016 14:16:23 +0000 (16:16 +0200)
committerCédric Aguerre <cedric.aguerre@edf.fr>
Tue, 24 May 2016 14:16:23 +0000 (16:16 +0200)
bin/appliskel/salome_tester/salome_test_driver.py

index 068bf89a0ec549152ba908a355bf7294f9340902..71f1629bdea3161b99b416e0a3dc0ada31f07917 100644 (file)
@@ -29,27 +29,26 @@ import signal
 # Run test
 def runTest(command):
   print "Running:", " ".join(command)
-  p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-  out, err = p.communicate()
-  res = p.returncode
+  p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+
+  while True:
+    try:
+      out = p.stdout.readline()
+      sys.stdout.write(out)
+    except: # raised IOError or OSError if output is empty
+      pass
+
+    returncode = p.poll()
+    if not returncode is None:
+      sys.stdout.flush()
+      break
+    pass
+
   # About res value:
   # A negative value -N indicates that the child was terminated by signal N (Unix only).
   # On Unix, the value 11 generally corresponds to a segmentation fault.
-  return res, out, err
-#
-
-# Display output and errors
-def processResult(res, out, err):
-  if out:
-    print out
-    pass
-  if err:
-    print "    ** Detected error **"
-    print "Error code: ", res
-    print err,
-    print "    ** end of message **"
-    pass
-  return res
+  #return res, out, err
+  return p.returncode
 #
 
 # Timeout management
@@ -96,8 +95,7 @@ if __name__ == "__main__":
   try:
     salome_instance = SalomeInstance.start(shutdown_servers=True)
     port = salome_instance.get_port()
-    res, out, err = runTest(test_and_args)
-    res = processResult(res, out, err)
+    res = runTest(test_and_args)
   except TimeoutException:
     print "FAILED : timeout(%s) is reached"%timeout_delay
   except: