diff gentests.py @ 224:f7ff02eeec2f

Added testcases for move and roxl/roxr. Made some small improvements to test tools.
author Mike Pavone <pavone@retrodev.com>
date Sun, 21 Apr 2013 11:40:18 -0700
parents cb72780e17b1
children 42123feab62d
line wrap: on
line diff
--- a/gentests.py	Sat Apr 20 17:41:07 2013 -0700
+++ b/gentests.py	Sun Apr 21 11:40:18 2013 -0700
@@ -16,6 +16,8 @@
 		instruction.consume_regs(self)
 		self.inst = instruction
 	
+	def dirname(self):
+		return self.inst.name + '_' + self.inst.size
 	def name(self):
 		return str(self.inst).replace('.', '_').replace('#', '_').replace(',', '_').replace(' ', '_').replace('(', '[').replace(')', ']')
 	
@@ -376,7 +378,7 @@
 		return rand_immediate(size)
 	elif mode.startswith('#(') and mode.endswith(')'):
 		inner = mode[2:-1]
-		start,sep,end = inner.partition('-')
+		start,sep,end = inner.rpartition('-')
 		start,end = int(start),int(end)
 		if end-start > 16:
 			return [Immediate(randint(start, end)) for x in range(0,8)]
@@ -453,13 +455,16 @@
 			entries.append(Entry(line))
 	return entries
 
-
+from os import path, mkdir
 def main(args):
 	entries = process_entries(open('testcases.txt'))
 	for entry in entries:
 		programs = entry.programs()
 		for program in programs:
-			f = open('generated_tests/' + program.name() + '.s68', 'w')
+			dname = program.dirname()
+			if not path.exists('generated_tests/' + dname):
+				mkdir('generated_tests/' + dname)
+			f = open('generated_tests/' + dname + '/' + program.name() + '.s68', 'w')
 			program.write_rom_test(f)
 			f.close()