Currently, the exception handling in run_once is really bad enough,
In other words, it may take errors. For example, when an exception
occurred by run(itest_cmd), itest will still hold the str value,
which is not the result of the run(itest_cmd). So the exception will
cause an error that "str" object use the stdout.

And another question is when the exception happens, this test in
test_list should be ended.

To fix the above two issues, this patch does two modifications:
1.Correct the exception handling by using "e" for error information.
2.Terminate the subtest when exception is catched.

Signed-off-by: Mike Qiu <[email protected]>
---
 client/tests/npb/npb.py |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/client/tests/npb/npb.py b/client/tests/npb/npb.py
index fd22e12..c18ae09 100644
--- a/client/tests/npb/npb.py
+++ b/client/tests/npb/npb.py
@@ -58,10 +58,11 @@ class npb(test.test):
             itest_cmd = os.path.join('NPB3.3-OMP/bin/', itest)
             try:
                 itest = utils.run(itest_cmd)
-            except Exception:
+            except Exception, e :
                 logging.error('NPB benchmark %s has failed. Output: %s',
-                              itest_cmd, itest.stdout)
+                              itest_cmd, e)
                 self.n_fail += 1
+                continue
             logging.debug(itest.stdout)
 
             # Get the number of threads that the test ran
@@ -106,12 +107,11 @@ class npb(test.test):
             itest_single_cmd = ''.join(['OMP_NUM_THREADS=1 ', itest_cmd])
             try:
                 itest_single = utils.run(itest_single_cmd)
-            except Exception:
+            except Exception, e :
                 logging.error('NPB benchmark single thread %s has failed. '
-                              'Output: %s',
-                              itest_single_cmd,
-                              itest_single.stdout)
+                              'Output: %s', itest_single_cmd, e)
                 self.n_fail += 1
+                continue
 
             m = re.search('Time in seconds\s*=\s*(.*)\n', itest_single.stdout)
             time_one_thrd = float(m.groups()[0])
-- 
1.7.7.6

_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to