changeset 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 8d3c16071559
children 71f6b76639db
files comparetests.py gentests.py testcases.txt
diffstat 3 files changed, 49 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/comparetests.py	Sat Apr 20 14:36:41 2013 -0700
+++ b/comparetests.py	Sat Apr 20 15:14:47 2013 -0700
@@ -1,9 +1,21 @@
 #!/usr/bin/env python
 from glob import glob
 import subprocess
-from sys import exit
+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:
--- a/gentests.py	Sat Apr 20 14:36:41 2013 -0700
+++ b/gentests.py	Sat Apr 20 15:14:47 2013 -0700
@@ -377,7 +377,11 @@
 	elif mode.startswith('#(') and mode.endswith(')'):
 		inner = mode[2:-1]
 		start,sep,end = inner.partition('-')
-		return [Immediate(num) for num in range(int(start), int(end))]
+		start,end = int(start),int(end)
+		if end-start > 16:
+			return [Immediate(randint(start, end)) for x in range(0,8)]
+		else:
+			return [Immediate(num) for num in range(start, end+1)]
 	else:
 		print "Don't know what to do with source type", mode
 		return None
--- a/testcases.txt	Sat Apr 20 14:36:41 2013 -0700
+++ b/testcases.txt	Sat Apr 20 15:14:47 2013 -0700
@@ -1,23 +1,32 @@
 Name	Sizes	Src Modes														Dst Modes
-add		bwl		d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	d
-add		bwl		d																(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
-adda	wl		d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	a
-addi	bwl		#n																d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
-addq	bwl		#(1-8)															d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
-addx	bwl		d																d
-addx	bwl		-(a)															-(a)
-and		bwl		d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	d
-and		bwl		d																(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
-andi	bwl		#n																d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
-asl		bwl		d;#(1-8)														d
-asr		bwl		d;#(1-8)														d
-lsl		bwl		d;#(1-8)														d
-lsr		bwl		d;#(1-8)														d
-sub		bwl		d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	d
-sub		bwl		d																(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
-suba	wl		d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	a
-subi	bwl		#n																d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
-subq	bwl		#(1-8)															d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
-subx	bwl		d																d
-subx	bwl		-(a)															-(a)
-
+#add		bwl		d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	d
+#add		bwl		d																(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+#adda	wl		d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	a
+#addi	bwl		#n																d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+#addq	bwl		#(1-8)															d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+#addx	bwl		d																d
+#addx	bwl		-(a)															-(a)
+#and		bwl		d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	d
+#and		bwl		d																(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+#andi	bwl		#n																d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+#asl		bwl		d;#(1-8)														d
+#asr		bwl		d;#(1-8)														d
+#lsl		bwl		d;#(1-8)														d
+#lsr		bwl		d;#(1-8)														d
+#sub		bwl		d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	d
+#sub		bwl		d																(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+#suba	wl		d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l;#n;(n,pc);(n,pc,x)	a
+#subi	bwl		#n																d;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+#subq	bwl		#(1-8)															d;a;(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+#subx	bwl		d																d
+#subx	bwl		-(a)															-(a)
+bchg	b		d;#(0-255)														(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+bchg	l		d;#(0-255)														d
+bset	b		d;#(0-255)														(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+bset	l		d;#(0-255)														d
+bclr	b		d;#(0-255)														(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+bclr	l		d;#(0-255)														d
+btst	b		d;#(0-255)														(a);(a)+;-(a);(n,a);(n,a,x);(n).w;(n).l
+btst	l		d;#(0-255)														d
+rol		bwl		d;#(1-8)														d
+ror		bwl		d;#(1-8)														d