Mercurial > repos > blastem
view zcompare.py @ 2608:898386e48243
Update zcompare for Python 3, to use another blastem as comparison source and to more clearly report differences
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 15 Feb 2025 01:35:23 -0800 |
parents | a9dcaacdc0c5 |
children |
line wrap: on
line source
#!/usr/bin/env python3 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]).decode() try: m = subprocess.check_output(['../blastem_clean/ztestrun', path]).decode() #_,_,b = b.partition('\n') m = m.split('\n') b = b.split('\n') if b != m: lastWasFlags = False bdiff = [] mdiff = [] for i in range(0, max(len(b), len(m))): bl = b[i] if i < len(b) else '' ml = m[i] if i < len(m) else '' if bl != ml: if lastWasFlags: bdiff.append(b[i - 1]) mdiff.append(m[i - 1]) bdiff.append(bl) mdiff.append(ml) lastWasFlags = bl.startswith('Flags: ') print('-----------------------------') print('Mismatch in ' + path) print('blastem output:') for b in bdiff: print(b) print('clean output:') for m in mdiff: print(m) print('-----------------------------') else: print(path, 'passed') except subprocess.CalledProcessError as e: print('-----------------------------') print('clean 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('-----------------------------')