From: adam Date: Mon, 12 Feb 2007 09:36:22 +0000 (+0100) Subject: added test cases X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=5a0499082c4c074d303ea555ffff695826084f3e;p=fleet.git added test cases --- 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; +} +