# HG changeset patch # User Mike Pavone # Date 1366496087 25200 # Node ID cb72780e17b19238bbcea2b085bc5c45382d2e65 # Parent 8d3c1607155936235d1dcabc33b178fbd116b6c1 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. diff -r 8d3c16071559 -r cb72780e17b1 comparetests.py --- 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: diff -r 8d3c16071559 -r cb72780e17b1 gentests.py --- 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 diff -r 8d3c16071559 -r cb72780e17b1 testcases.txt --- 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