From: adam Date: Sun, 15 Jul 2007 06:35:06 +0000 (+0100) Subject: add support for #skip tests X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=a85200e31427e6b36a3e1799d43e9f885c3d7ffb;p=fleet.git add support for #skip tests --- diff --git a/src/edu/berkeley/fleet/Main.java b/src/edu/berkeley/fleet/Main.java index 65d53bf..51e7493 100644 --- a/src/edu/berkeley/fleet/Main.java +++ b/src/edu/berkeley/fleet/Main.java @@ -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 expect = edu.berkeley.fleet.assembler.Parser.expect; diff --git a/src/edu/berkeley/fleet/assembler/Parser.java b/src/edu/berkeley/fleet/assembler/Parser.java index 3fd059b..0e714ad 100644 --- a/src/edu/berkeley/fleet/assembler/Parser.java +++ b/src/edu/berkeley/fleet/assembler/Parser.java @@ -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)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 expect; + public static boolean skip; } diff --git a/src/edu/berkeley/fleet/assembler/fleet.g b/src/edu/berkeley/fleet/assembler/fleet.g index d11d42e..4e69705 100644 --- a/src/edu/berkeley/fleet/assembler/fleet.g +++ b/src/edu/berkeley/fleet/assembler/fleet.g @@ -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"