6#include "dawn/prog/bitsplit.hxx"
7#include "test_common.hxx"
9#include "dawn/io/sdata.hxx"
10#include "dawn/io/virt.hxx"
18static uint32_t g_cfg_src[] = {BITSPLIT_SRC, 0};
19static uint32_t g_cfg_d0[] = {BITSPLIT_D0, 0};
20static uint32_t g_cfg_d1[] = {BITSPLIT_D1, 0};
22static uint32_t g_bin_bitsplit[] = {
23 CProgBitSplit::objectId(0),
25 CProgBitSplit::cfgIdIOBind(4),
30 CProgBitSplit::cfgIdBits(2),
35static void test_bitsplit_extracts_bits()
50 TEST_ASSERT_EQUAL(OK, src.init());
51 TEST_ASSERT_EQUAL(OK, d0.init());
52 TEST_ASSERT_EQUAL(OK, d1.init());
53 TEST_ASSERT_EQUAL(OK, src.initialize(1, 1,
true));
55 TEST_ASSERT_EQUAL(OK, prog.configure());
56 prog.setObjectMapItem(BITSPLIT_SRC, &src);
57 prog.setObjectMapItem(BITSPLIT_D0, &d0);
58 prog.setObjectMapItem(BITSPLIT_D1, &d1);
59 TEST_ASSERT_EQUAL(OK, prog.init());
60 TEST_ASSERT_EQUAL(OK, prog.start());
64 TEST_ASSERT_EQUAL(OK, src.setData(in));
65 TEST_ASSERT_EQUAL(OK, d0.getData(o0, 1));
66 TEST_ASSERT_EQUAL(OK, d1.getData(o1, 1));
67 TEST_ASSERT_EQUAL(1, o0(0));
68 TEST_ASSERT_EQUAL(1, o1(0));
72 TEST_ASSERT_EQUAL(OK, src.setData(in));
73 TEST_ASSERT_EQUAL(OK, d0.getData(o0, 1));
74 TEST_ASSERT_EQUAL(OK, d1.getData(o1, 1));
75 TEST_ASSERT_EQUAL(0, o0(0));
76 TEST_ASSERT_EQUAL(1, o1(0));
80 TEST_ASSERT_EQUAL(OK, src.setData(in));
81 TEST_ASSERT_EQUAL(OK, d0.getData(o0, 1));
82 TEST_ASSERT_EQUAL(OK, d1.getData(o1, 1));
83 TEST_ASSERT_EQUAL(0, o0(0));
84 TEST_ASSERT_EQUAL(0, o1(0));
86 TEST_ASSERT_EQUAL(OK, prog.stop());
91 int test_prog_bitsplit()
94 DAWN_RUN_TEST(test_bitsplit_extracts_bits);
Descriptor wrapper for individual object configuration.
Virtual I/O type for user-provided data and callbacks.
Bit demultiplexer: extracts configurable bit slices from the input into separate outputs.
Out-of-tree user-extension hooks for Dawn.
@ DTYPE_UINT32
Unsigned 32-bit integer (0 to 4294967295).
Static (compile-time) I/O data buffer (no timestamp).