Mercurial > repos > blastem
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