view comparetests.py @ 220:cb72780e17b1

Add support for picking random numbers in a larger range in test generator. Add support for running a subset of tests in runner. Added testcases for bit and rotate instructions.
author Mike Pavone <pavone@retrodev.com>
date Sat, 20 Apr 2013 15:14:47 -0700
parents acd29e2664c6
children f7ff02eeec2f
line wrap: on
line source

#!/usr/bin/env python
from glob import glob
import subprocess
from sys import exit,argv

prefixes = []
for i in range(1, len(argv)):
	prefixes.append(argv[i])

for path in glob('generated_tests/*.bin'):
	if prefixes:
		good = False
		for prefix in prefixes:
			if path.startswith(prefix):
				good = True
				break
		if not good:
			continue
	try:
		b = subprocess.check_output(['./blastem', path, '-v'])
		try:
			m = subprocess.check_output(['musashi/mustrans', path])
			#_,_,b = b.partition('\n')
			if b != m:
				print '-----------------------------'
				print 'Mismatch in ' + path
				print 'blastem output:'
				print b
				print 'musashi output:'
				print m
				print '-----------------------------'
			else:
				print path, 'passed'
		except subprocess.CalledProcessError as e:
			print '-----------------------------'
			print 'musashi 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 '-----------------------------'