[Piglit] [PATCH] Add option '-r' to allow resume test after first test match filter

Shuang He shuang.he at intel.com
Sat Aug 27 07:57:24 PDT 2011


This is useful when we want to resume test after tests are blocked by one case
---
 framework/core.py |    7 +++++++
 piglit-run.py     |    6 +++++-
 2 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/framework/core.py b/framework/core.py
index 90aa461..ab324d2 100644
--- a/framework/core.py
+++ b/framework/core.py
@@ -390,6 +390,7 @@ class Environment:
 		self.execute = True
 		self.filter = []
 		self.exclude_filter = []
+		self.resume_filter = []
 
 	def run(self, command):
 		try:
@@ -443,6 +444,12 @@ class Test:
 			self.__doRunWork(*args)
 
 	def __doRunWork(self, env, path, json_writer):
+		# Resume tests after first matching test
+		if len(env.resume_filter) > 0:
+			if True in map(lambda f: f.search(path) != None, env.resume_filter):
+				env.resume_filter = []
+			return None
+
 		# Exclude tests that don't match the filter regexp
 		if len(env.filter) > 0:
 			if not True in map(lambda f: f.search(path) != None, env.filter):
diff --git a/piglit-run.py b/piglit-run.py
index c5f5a4a..0d74348 100755
--- a/piglit-run.py
+++ b/piglit-run.py
@@ -49,6 +49,7 @@ Options:
   -n name, --name=name      Name of the testrun
   -c bool, --concurrent=bool  Enable/disable concurrent test runs. Valid
 			      option values are: 0, 1, on, off.  (default: on)
+  -r regexp, --resume-after=regexp  Resume tests after first matching test
 Example:
   %(progName)s tests/all.tests results/all
          Run all tests, store the results in the directory results/all
@@ -74,8 +75,9 @@ def main():
 			 "name=",
 			 "exclude-tests=",
 			 "concurrent=",
+			 "resume-after=",
 			 ]
-		options, args = getopt(sys.argv[1:], "hdt:n:x:c:", option_list)
+		options, args = getopt(sys.argv[1:], "hdt:n:x:c:r:", option_list)
 	except GetoptError:
 		usage()
 
@@ -99,6 +101,8 @@ def main():
 				env.concurrent = False
 			else:
 				usage()
+		elif name in ('-r, --resume-after'):
+			env.resume_filter[:0] = [re.compile(value)]
 
 	if len(args) != 2:
 		usage()
-- 
1.7.4.rc2.21.g8671.dirty



More information about the Piglit mailing list