]> git.cworth.org Git - apitrace-tests/blobdiff - mesademos.py
Better error message when invoked without parameters.
[apitrace-tests] / mesademos.py
index 251e1756f7efd6f7de45a62835a6fd8673b855f2..0ef5bfbfe5beed7fff5c820b443f13edd90c6a9f 100755 (executable)
@@ -47,6 +47,12 @@ def ansi_strip(s):
 
 
 def popen(command, *args, **kwargs):
+    if 'cwd' in kwargs:
+        sys.stdout.write('cd %s && ' % kwargs['cwd'])
+    if 'env' in kwargs:
+        for name, value in kwargs['env'].iteritems():
+            if value != os.environ.get(name, None):
+                sys.stdout.write('%s=%s ' % (name, value))
     sys.stdout.write(' '.join(command) + '\n')
     sys.stdout.flush()
     return subprocess.Popen(command, *args, **kwargs)
@@ -82,7 +88,7 @@ def runtest(demo):
     
     args = [os.path.join('.', basename)]
     p = popen(args, env=env, cwd=dirname, stdout=subprocess.PIPE)
-    time.sleep(0.5)
+    time.sleep(1)
 
     # http://stackoverflow.com/questions/151407/how-to-get-an-x11-window-from-a-process-id
     ref_image = demo.replace('/', '-') + '.ref.png'
@@ -123,7 +129,7 @@ def runtest(demo):
     
     if image:
         delta_image = demo.replace('/', '-') + '.diff.png'
-        p = popen(["compare", '-metric', 'AE', '-fuzz', '5%', '-extract', '250x250', ref_image, image, delta_image])
+        p = popen(["compare", '-alpha', 'opaque', '-metric', 'AE', '-fuzz', '5%', ref_image, image, delta_image])
         _, stderr = p.communicate()
 
 
@@ -516,7 +522,6 @@ tests = [
     #'slang/vstest',
     'tests/afsmultiarb',
     'tests/antialias',
-    'tests/api_speed.py',
     'tests/arbfpspec',
     'tests/arbfptest1',
     'tests/arbfptexture',
@@ -672,24 +677,28 @@ def main():
 
     # Parse command line options
     optparser = optparse.OptionParser(
-        usage='\n\t%prog [options] ',
+        usage='\n\t%prog [options] [demo] ...',
         version='%%prog')
     optparser.add_option(
         '--build', metavar='PATH',
         type='string', dest='build', default='.',
         help='path to apitrace build')
-
     optparser.add_option(
         '--mesa-demos', metavar='PATH',
         type='string', dest='mesa_demos', default=os.environ.get('MESA_DEMOS'),
-        help='path to mesa demos')
+        help='path to Mesa demos')
 
     (options, args) = optparser.parse_args(sys.argv[1:])
-    if args:
-        optparser.error("incorrect number of arguments")
 
-    for test in tests:
-       runtest(test)
+    if not options.mesa_demos:
+        optparser.error('path to Mesa demos not specified')
+
+    if args:
+        for test in args:
+           runtest(test)
+    else:
+        for test in tests:
+           runtest(test)
 
 
 if __name__ == '__main__':