diff options
author | U. Artie Eoff <ullysses.a.eoff@intel.com> | 2011-01-19 15:05:59 -0800 |
---|---|---|
committer | Ian Romanick <ian.d.romanick@intel.com> | 2011-01-20 09:22:29 -0800 |
commit | 394d23178dd2de3c9f7fb79827a58a5dafc15439 (patch) | |
tree | 98527c0ee9f94947d644ac5b3973520365dca00b /framework | |
parent | dd3df3bc3a3ca4949f840030235bf14595558a98 (diff) |
modified TestResults::write() for thread safety
made TestResults::write() thread-safe by writing results in one
chunk to the file so that when threaded tests are implemented
there will be no interleaving.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'framework')
-rw-r--r-- | framework/core.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/framework/core.py b/framework/core.py index b237df69..b975cb3c 100644 --- a/framework/core.py +++ b/framework/core.py @@ -31,6 +31,7 @@ import subprocess import sys import time import traceback +from cStringIO import StringIO __all__ = [ 'Environment', @@ -107,17 +108,19 @@ class TestResult(dict): return {name: self} def write(self, file, path): - print >>file, "@test: " + encode(path) + result = StringIO() + print >> result, "@test: " + encode(path) for k in self: v = self[k] if type(v) == list: - print >>file, k + "!" + print >> result, k + "!" for s in v: - print >>file, " " + encode(str(s)) - print >>file, "!" + print >> result, " " + encode(str(s)) + print >> result, "!" else: - print >>file, k + ": " + encode(str(v)) - print >>file, "!" + print >> result, k + ": " + encode(str(v)) + print >> result, "!" + print >> file, result.getvalue(), class GroupResult(dict): |