* support/scripts/sdcc.nsi: added asranlib.exe to the install package
[fw/sdcc] / support / regression / generate-cases.py
index 9c9bb04585ce5dc122a0f9aff0970e74531bf45f..e2c08cc7b98f031a270e4df8af77c94397f263c7 100644 (file)
@@ -9,27 +9,21 @@ outdir = sys.argv[2]
 
 # Start of the test function table definition
 testfuntableheader = """
-static TESTFUNP _tests[] = {
+void
+__runSuite(void)
+{
 """
 
-
 # End of the test function table definition
-testfuntablefooter = """\tNULL
-};
+testfuntablefooter = """}
 """
 
 # Code to generate the suite function
 testfunsuite = """
-TESTFUNP *
-suite(void)
-{
-    return _tests;
-}
-
-const char *
-getSuiteName(void)
+code const char *
+__getSuiteName(void)
 {
-    return "{testcase}";
+  return "{testcase}";
 }
 """ 
 
@@ -111,15 +105,19 @@ class InstanceGenerator:
         # Emmit the suite table
         fout.write(testfuntableheader)
 
+        n = 0;
         for fun in self.functions:
-            # Turn the function definition into a pointer
-            fun = re.sub(r'\(\w+\)', '', fun)
-            fout.write("\t" + fun + ",\n")
+            # Turn the function definition into a function call
+            fout.write("  __prints(\"Running " + fun + "\\n\");\n");
+            fout.write('  ' + fun + "();\n")
+            n += 1;
 
         fout.write(testfuntablefooter)
+        fout.write("\nconst int __numCases = " + str(n) + ";\n")
         fout.write(testfunsuite);
         
         fout.close()
+        return n
 
     def readfile(self):
         """Read in all of the input file."""
@@ -158,14 +156,16 @@ class InstanceGenerator:
                     None
             else:
                 # Pull out any test function names
-                if re.search(r'^test\w+\(\w+\)', line) != None:
-                    self.functions.append(line)
+                m = re.match(r'^(?:\W*void\W+)?\W*(test\w*)\W*\(\W*void\W*\)', line)
+                if m != None:
+                    self.functions.append(m.group(1))
 
     def generate(self):
         """Main function.  Generates all of the instances."""
         self.readfile()
         self.parse()
-        self.writetemplate()
+        if self.writetemplate() == 0:
+            sys.stderr.write("Empty function list in " + self.inname + "!\n")
 
         # Create the output directory if it doesn't exist
         createdir(outdir)
@@ -189,4 +189,3 @@ def main():
 
 if __name__ == '__main__':
     main()
-