6#include "dawn/prog/selector.hxx"
7#include "test_common.hxx"
9#include "dawn/io/sdata.hxx"
10#include "dawn/io/virt.hxx"
19static uint32_t g_cfg_ctrl[] = {SEL_CTRL, 0};
20static uint32_t g_cfg_d0[] = {SEL_D0, 0};
21static uint32_t g_cfg_d1[] = {SEL_D1, 0};
22static uint32_t g_cfg_tgt[] = {SEL_TGT, 0};
24static uint32_t g_bin_selector[] = {
25 CProgSelector::objectId(0),
27 CProgSelector::cfgIdControl(),
29 CProgSelector::cfgIdData(2),
32 CProgSelector::cfgIdTarget(),
36static void test_selector_routes_data()
52 TEST_ASSERT_EQUAL(OK, ctrl.init());
53 TEST_ASSERT_EQUAL(OK, d0.init());
54 TEST_ASSERT_EQUAL(OK, d1.init());
55 TEST_ASSERT_EQUAL(OK, tgt.init());
57 TEST_ASSERT_EQUAL(OK, ctrl.initialize(1, 1,
true));
58 TEST_ASSERT_EQUAL(OK, d0.initialize(1, 1,
false));
59 TEST_ASSERT_EQUAL(OK, d1.initialize(1, 1,
false));
60 TEST_ASSERT_EQUAL(OK, tgt.initialize(1, 1,
false));
64 TEST_ASSERT_EQUAL(OK, d0.setData(in));
66 TEST_ASSERT_EQUAL(OK, d1.setData(in));
68 TEST_ASSERT_EQUAL(OK, prog.configure());
69 prog.setObjectMapItem(SEL_CTRL, &ctrl);
70 prog.setObjectMapItem(SEL_D0, &d0);
71 prog.setObjectMapItem(SEL_D1, &d1);
72 prog.setObjectMapItem(SEL_TGT, &tgt);
73 TEST_ASSERT_EQUAL(OK, prog.init());
74 TEST_ASSERT_EQUAL(OK, prog.start());
78 TEST_ASSERT_EQUAL(OK, ctrl.setData(in));
79 TEST_ASSERT_EQUAL(OK, tgt.getData(out, 1));
80 TEST_ASSERT_EQUAL(0xAAAA, out(0));
84 TEST_ASSERT_EQUAL(OK, ctrl.setData(in));
85 TEST_ASSERT_EQUAL(OK, tgt.getData(out, 1));
86 TEST_ASSERT_EQUAL(0xBBBB, out(0));
90 TEST_ASSERT_EQUAL(OK, ctrl.setData(in));
91 TEST_ASSERT_EQUAL(OK, tgt.getData(out, 1));
92 TEST_ASSERT_EQUAL(0xBBBB, out(0));
94 TEST_ASSERT_EQUAL(OK, prog.stop());
99 int test_prog_selector()
102 DAWN_RUN_TEST(test_selector_routes_data);
Descriptor wrapper for individual object configuration.
Virtual I/O type for user-provided data and callbacks.
Data selector: routes one of N data inputs to a target IO based on the value of a control input.
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).