[Piglit] [PATCH] modified TestResults::write() for thread safety

U. Artie Eoff ullysses.a.eoff at intel.com
Wed Jan 19 15:05:59 PST 2011


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.
---
 framework/core.py |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/framework/core.py b/framework/core.py
index b237df6..b975cb3 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):
-- 
1.7.3.4



More information about the Piglit mailing list