added test cases
authoradam <adam@megacz.com>
Mon, 12 Feb 2007 09:36:22 +0000 (10:36 +0100)
committeradam <adam@megacz.com>
Mon, 12 Feb 2007 09:36:22 +0000 (10:36 +0100)
tests/dcache/dcache-read.fleet [new file with mode: 0644]
tests/fifo/fifo-loop.fleet [new file with mode: 0644]
tests/icache/icache-test.fleet [new file with mode: 0644]

diff --git a/tests/dcache/dcache-read.fleet b/tests/dcache/dcache-read.fleet
new file mode 100644 (file)
index 0000000..7905bcd
--- /dev/null
@@ -0,0 +1,48 @@
+// output ///////////////////////////////////////////////////////////////////
+#expect 14
+#expect 13
+#expect 12
+#expect 11
+
+// program //////////////////////////////////////////////////////////////////
+#ship debug        : Debug
+#ship dscratch       : Dscratch
+#ship fifo         : Fifo
+
+// dumb configurations
+debug.data:        [*] take, deliver;
+dscratch.write_addr: [*] take, deliver;
+dscratch.write_data: [*] take, deliver;
+dscratch.read_addr:  [*] take, deliver;
+fifo.in:           [*] take, deliver;
+
+// addresses and values to initialize the dscratch with
+1:  sendto dscratch.write_addr;
+2:  sendto dscratch.write_addr;
+3:  sendto dscratch.write_addr;
+4:  sendto dscratch.write_addr;
+11: sendto dscratch.write_data;
+12: sendto dscratch.write_data;
+13: sendto dscratch.write_data;
+14: sendto dscratch.write_data;
+
+// send write-completion tokens to the fifo output
+dscratch.write_done:
+  [*] take, sendto fifo.out;
+
+// when the write-completion tokens accumulate, unleash
+// the read addresses
+fifo.out:
+  [4] wait;
+  [4] take, sendto dscratch.read_addr;
+
+// read addresses
+4:  sendto fifo.in;
+3:  sendto fifo.in;
+2:  sendto fifo.in;
+1:  sendto fifo.in;
+
+// data read from dscratch goes to the debug ship
+dscratch.read_data:
+  [*] take, sendto debug.data;
+
diff --git a/tests/fifo/fifo-loop.fleet b/tests/fifo/fifo-loop.fleet
new file mode 100644 (file)
index 0000000..2269e02
--- /dev/null
@@ -0,0 +1,71 @@
+// expected output
+#expect 9
+#expect 9
+#expect 8
+#expect 9
+#expect 9
+#expect 9
+#expect 9
+#expect 9
+#expect 9
+#expect 9
+
+// ships required in order to run this code
+#ship debug        : Debug
+#ship fifo         : Fifo
+
+debug.data:   [*] take, deliver;
+9:            sendto fifo.in;
+fifo.in:
+  take;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+  [100] deliver;
+fifo.out:
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
+  [100r] take, discard;
+  [100r] take, discard;
+  [1r] take, sendto debug.data;
diff --git a/tests/icache/icache-test.fleet b/tests/icache/icache-test.fleet
new file mode 100644 (file)
index 0000000..49b1c7c
--- /dev/null
@@ -0,0 +1,27 @@
+// expected output
+#expect 12
+#expect 13
+#expect 14
+
+// ships required in order to run this code
+#ship debug        : Debug
+#ship iscratch       : Iscratch
+
+// instructions not in any codebag are part of the "root codebag"
+// which is dispatched when the code is loaded
+
+BOB:          sendto iscratch.cbd;
+iscratch.cbd:   [*] take, deliver;
+debug.data:   [*] take, deliver;
+
+
+// This codebag illustrates how to do a loop.  Notice that this
+// is actually an uncontrolled data emitter -- it could clog the
+//  switch fabric!
+
+BOB: {
+  12:           sendto debug.data;
+  13:           sendto debug.data;
+  14:           sendto debug.data;
+}
+