cleanups, reorg, and commenting
[sbp.git] / src / edu / berkeley / sbp / misc / RegressionTests.java
index d579590..6fd3dd0 100644 (file)
@@ -5,9 +5,7 @@ import java.io.*;
 import java.util.*;
 import java.lang.reflect.*;
 import edu.berkeley.sbp.*;
-import edu.berkeley.sbp.misc.*;
 import edu.berkeley.sbp.meta.*;
-import edu.berkeley.sbp.tib.*;
 import edu.berkeley.sbp.chr.*;
 import edu.berkeley.sbp.util.*;
 
@@ -15,6 +13,7 @@ public class RegressionTests {
 
     public static boolean yes = false;
     public static boolean graph = false;
+    public static File[] includes = new File[] { new File("tests") };
 
     public static void main() throws Exception {
         main(new String[] { "tests/meta.g", "tests/testcase.g", "tests/regression.tc" });
@@ -38,12 +37,12 @@ public class RegressionTests {
 
             System.err.println("parsing " + s[0]);
             Tree<String> res = new CharParser(MetaGrammar.newInstance()).parse(new FileInputStream(s[0])).expand1();
-            Union meta = Grammar.create(res, "s");
+            Union meta = GrammarBuilder.buildFromAST(res, "s", includes);
 
             System.err.println("parsing " + s[1]);
             res = new CharParser(meta).parse(new FileInputStream(s[1])).expand1();
 
-            Union testcasegrammar = Grammar.create(res, "s");
+            Union testcasegrammar = GrammarBuilder.buildFromAST(res, "s", includes);
             if (testcasegrammar==null) return;
             CharParser parser = new CharParser(testcasegrammar);
 
@@ -64,7 +63,7 @@ public class RegressionTests {
             }
             System.err.println("expanding...");
 
-            TestCase[] expanded = (TestCase[])new GrammarBuilder("tests/", "").walkChildren(r2.expand1());
+            TestCase[] expanded = (TestCase[])new GrammarBuilder(includes, "").walkChildren(r2.expand1());
             for(TestCase tc : expanded)
                 tc.execute();
 
@@ -126,11 +125,11 @@ public class RegressionTests {
                 System.out.println(parser);
             }
 
-            HashSet<Tree<String>> results = new HashSet<Tree<String>>();
-            if (res != null) res.expand(results);
+            Iterable<Tree<String>> results =
+                res==null ? new HashSet<Tree<String>>() : res.expand();
 
             System.out.print("\r");
-            if (results == null || (results.size() == 0 && (output!=null && output.length > 0))) {
+            if (results == null || (!results.iterator().hasNext() && (output!=null && output.length > 0))) {
                 System.out.print("\033[31m");
                 System.out.print("FAIL ");
                 System.out.println("\033[0m "+name);