From 5a0499082c4c074d303ea555ffff695826084f3e Mon Sep 17 00:00:00 2001 From: adam Date: Mon, 12 Feb 2007 10:36:22 +0100 Subject: [PATCH] added test cases --- tests/dcache/dcache-read.fleet | 48 +++++++++++++++++++++++++++ tests/fifo/fifo-loop.fleet | 71 ++++++++++++++++++++++++++++++++++++++++ tests/icache/icache-test.fleet | 27 +++++++++++++++ 3 files changed, 146 insertions(+) create mode 100644 tests/dcache/dcache-read.fleet create mode 100644 tests/fifo/fifo-loop.fleet create mode 100644 tests/icache/icache-test.fleet diff --git a/tests/dcache/dcache-read.fleet b/tests/dcache/dcache-read.fleet new file mode 100644 index 0000000..7905bcd --- /dev/null +++ b/tests/dcache/dcache-read.fleet @@ -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 index 0000000..2269e02 --- /dev/null +++ b/tests/fifo/fifo-loop.fleet @@ -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 index 0000000..49b1c7c --- /dev/null +++ b/tests/icache/icache-test.fleet @@ -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; +} + -- 1.7.10.4