add support for #skip tests
authoradam <adam@megacz.com>
Sun, 15 Jul 2007 06:35:06 +0000 (07:35 +0100)
committeradam <adam@megacz.com>
Sun, 15 Jul 2007 06:35:06 +0000 (07:35 +0100)
src/edu/berkeley/fleet/Main.java
src/edu/berkeley/fleet/assembler/Parser.java
src/edu/berkeley/fleet/assembler/fleet.g

index 65d53bf..51e7493 100644 (file)
@@ -94,6 +94,11 @@ public class Main {
         } else if (f.getPath().endsWith(".fleet")) {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             edu.berkeley.fleet.assembler.Main.assemble(fleet, new InputStreamReader(new FileInputStream(f)), baos);
+            if (edu.berkeley.fleet.assembler.Parser.skip) {
+                System.out.println("\r[" + ANSI.yellow("SKIP") +
+                                   "] "  + ANSI.yellow(f.getPath()));
+                return;
+            }
             FleetProcess fp = fleet.run(baos.toByteArray());
             try {
                 ArrayList<Long> expect = edu.berkeley.fleet.assembler.Parser.expect;
index 3fd059b..0e714ad 100644 (file)
@@ -54,6 +54,7 @@ public class Parser {
         // this needs to be "code bag zero"
         CodeBag baseCodeBag = new CodeBag();
         CodeBag rootCodeBag = new CodeBag();
+        skip = false;
         baseCodeBag.add(new Instruction.Literal.CodeBagDescriptor(null, rootCodeBag.getFakeAddress(), 1));
         walk((Tree<String>)parse(r), rootCodeBag);
         if (fleet instanceof edu.berkeley.fleet.slipway.Slipway)
@@ -137,6 +138,8 @@ public class Parser {
             
         } else if (head.equals("Expect")) {
             expect.add(Long.parseLong(string(t.child(0))));
+        } else if (head.equals("Skip")) {
+            skip = true;
 
         }
     }
@@ -302,5 +305,6 @@ public class Parser {
 
     // hideous hack
     public static ArrayList<Long> expect;
+    public static boolean         skip;
 
 }
index d11d42e..4e69705 100644 (file)
@@ -66,4 +66,5 @@ Directive      =           "#memory" "{" (Memory:: int +/ (ws! "," ws!)) "}" /ws
                | Include:: "#include" ws! "\"" ~[\"]+ "\""
                | Ship::    "#ship" shipname ":" ("":: [0-9A-Za-z_.]++) /ws
                | Expect::  "#expect" int /ws
+               | Skip::    "#skip"