summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2013-03-26 18:38:00 -0700
committerEric Anholt <eric@anholt.net>2013-04-08 16:21:10 -0700
commit458d3549585384d2419ef5c59416bb14697d90d6 (patch)
treea82340861c144f4161e6c0619bc1d5cfebbf78dd
parent266d20004029654799f401d6f61313f3b0398b96 (diff)
Allow whole directories to be passed to run.py
-rwxr-xr-xrun.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/run.py b/run.py
index 501d769..fe7a709 100755
--- a/run.py
+++ b/run.py
@@ -9,7 +9,7 @@ from multiprocessing import cpu_count
def usage():
USAGE = """\
-Usage: %(progName)s [shader.frag] [shader.vert]
+Usage: %(progName)s <dir | shader.shader_test | shader.frag | shader.vert>...
Options:
-h, --help Show this message
@@ -17,6 +17,15 @@ Options:
print(USAGE % {'progName': sys.argv[0]})
sys.exit(1)
+def process_directories(dirpath):
+ filenames = set()
+ if os.path.isdir(dirpath):
+ for filename in os.listdir(dirpath):
+ filenames.update(process_directories(os.path.join(dirpath, filename)))
+ else:
+ filenames.add(dirpath)
+ return filenames
+
def run_test(filename):
if ".out" in filename:
return ""
@@ -119,8 +128,12 @@ def main():
runtimebefore = time.time()
+ filenames = set()
+ for i in args:
+ filenames.update(process_directories(i))
+
executor = ThreadPoolExecutor(cpu_count())
- for t in executor.map(run_test, args):
+ for t in executor.map(run_test, filenames):
sys.stdout.write(t)
runtimeafter = time.time()