6#include "dawn/prog/bitpack.hxx"
7#include "test_common.hxx"
9#include "dawn/io/sdata.hxx"
10#include "dawn/io/virt.hxx"
18static uint32_t g_cfg_in0[] = {BP_IN0, 0};
19static uint32_t g_cfg_in1[] = {BP_IN1, 0};
20static uint32_t g_cfg_out[] = {BP_OUT, 0};
22static uint32_t g_bin_bitpack[] = {
23 CProgBitPack::objectId(0),
25 CProgBitPack::cfgIdInputs(4),
30 CProgBitPack::cfgIdOutput(),
34static void test_bitpack_combines_bits()
48 TEST_ASSERT_EQUAL(OK, in0.init());
49 TEST_ASSERT_EQUAL(OK, in1.init());
50 TEST_ASSERT_EQUAL(OK, out.init());
51 TEST_ASSERT_EQUAL(OK, in0.initialize(1, 1,
true));
52 TEST_ASSERT_EQUAL(OK, in1.initialize(1, 1,
true));
53 TEST_ASSERT_EQUAL(OK, out.initialize(1, 1,
false));
55 TEST_ASSERT_EQUAL(OK, prog.configure());
56 prog.setObjectMapItem(BP_IN0, &in0);
57 prog.setObjectMapItem(BP_IN1, &in1);
58 prog.setObjectMapItem(BP_OUT, &out);
59 TEST_ASSERT_EQUAL(OK, prog.init());
60 TEST_ASSERT_EQUAL(OK, prog.start());
64 TEST_ASSERT_EQUAL(OK, in0.setData(in));
65 TEST_ASSERT_EQUAL(OK, in1.setData(in));
66 TEST_ASSERT_EQUAL(OK, out.getData(o, 1));
67 TEST_ASSERT_EQUAL(0, o(0));
71 TEST_ASSERT_EQUAL(OK, in0.setData(in));
72 TEST_ASSERT_EQUAL(OK, out.getData(o, 1));
73 TEST_ASSERT_EQUAL(1, o(0));
77 TEST_ASSERT_EQUAL(OK, in0.setData(in));
79 TEST_ASSERT_EQUAL(OK, in1.setData(in));
80 TEST_ASSERT_EQUAL(OK, out.getData(o, 1));
81 TEST_ASSERT_EQUAL(2, o(0));
85 TEST_ASSERT_EQUAL(OK, in0.setData(in));
87 TEST_ASSERT_EQUAL(OK, in1.setData(in));
88 TEST_ASSERT_EQUAL(OK, out.getData(o, 1));
89 TEST_ASSERT_EQUAL(3, o(0));
91 TEST_ASSERT_EQUAL(OK, prog.stop());
96 int test_prog_bitpack()
99 DAWN_RUN_TEST(test_bitpack_combines_bits);
Descriptor wrapper for individual object configuration.
Virtual I/O type for user-provided data and callbacks.
Bit packer: combines multiple typed inputs into a single packed output bitstream.
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).