diff options
author | Michael Pavone <pavone@retrodev.com> | 2014-12-26 13:42:25 -0800 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2014-12-26 13:42:25 -0800 |
commit | 8ab499c765335f363aa39c3a7e1c56ba0b5fb9eb (patch) | |
tree | ad58437215b4063bf955ba19ebe012350144256b /zcompare.py | |
parent | cdea87c8284b91323c169f3fd61d536e7f710959 (diff) |
Add Z80 test runner Python script I wrote a while back and forgot to commit
Diffstat (limited to 'zcompare.py')
-rwxr-xr-x | zcompare.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/zcompare.py b/zcompare.py new file mode 100755 index 0000000..d6eacea --- /dev/null +++ b/zcompare.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python +from glob import glob +import subprocess +from sys import exit,argv + +prefixes = [] +skip = set() +for i in range(1, len(argv)): + if '.' in argv[i]: + f = open(argv[i]) + for line in f: + parts = line.split() + for part in parts: + if part.endswith('.bin'): + skip.add(part) + f.close() + print 'Skipping',len(skip),'entries from previous report.' + else: + prefixes.append(argv[i]) + +for path in glob('ztests/*/*.bin'): + if path in skip: + continue + if prefixes: + good = False + fname = path.split('/')[-1] + for prefix in prefixes: + if fname.startswith(prefix): + good = True + break + if not good: + continue + try: + b = subprocess.check_output(['./ztestrun', path]) + try: + m = subprocess.check_output(['gxz80/gxzrun', path]) + #_,_,b = b.partition('\n') + if b != m: + print '-----------------------------' + print 'Mismatch in ' + path + print 'blastem output:' + print b + print 'gxz80 output:' + print m + print '-----------------------------' + else: + print path, 'passed' + except subprocess.CalledProcessError as e: + print '-----------------------------' + print 'gxz80 exited with code', e.returncode, 'for test', path + print 'blastem output:' + print b + print '-----------------------------' + except subprocess.CalledProcessError as e: + print '-----------------------------' + print 'blastem exited with code', e.returncode, 'for test', path + print '-----------------------------' + |