summary refs log tree commit diff stats
path: root/test/all_benchmarks.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/all_benchmarks.py')
-rwxr-xr-xtest/all_benchmarks.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/test/all_benchmarks.py b/test/all_benchmarks.py
index e1b47142..20f11ad8 100755
--- a/test/all_benchmarks.py
+++ b/test/all_benchmarks.py
@@ -30,15 +30,7 @@ if __name__ == '__main__':
 	modules = (fname[:-3] for fname in os.listdir(sys.path[0]) \
 			if fname[:3] == 'bm_' and fname[-3:] == '.py')
 
-	benchmarks = []  # find all benchmark (class, methodname) pairs
-	for val in [__import__(module) for module in modules]:
-		for cls in vars(val).values():
-			if type(cls) == type:
-				for methodname in vars(cls):
-					if methodname.startswith('bm_'):
-						benchmarks.append((cls, methodname))
-
-	for cls, methodname in benchmarks:
+	def run_benchmark(cls, methodname):
 		full_method_name = "{0}.{1}".format(cls.__name__, methodname)
 		if all(re.search(full_method_name) for re in regexes):
 			method = getattr(cls(), methodname)
@@ -51,3 +43,10 @@ if __name__ == '__main__':
 			else:
 				t2 = time.time()
 				print("{0:60}: {1:10}s".format(full_method_name, t2 - t1))
+
+	for val in [__import__(module) for module in modules]:
+		for cls in vars(val).values():
+			if type(cls) == type:
+				for methodname in vars(cls):
+					if methodname.startswith('bm_'):
+						run_benchmark(cls, methodname)