/* * Check that SetChannel works */ void DmxBufferTest::testSetChannel() { DmxBuffer buffer; buffer.SetChannel(1, 10); buffer.SetChannel(10, 50); uint8_t expected[DMX_UNIVERSE_SIZE]; memset(expected, 0, DMX_UNIVERSE_SIZE); expected[1] = 10; expected[10] = 50; OLA_ASSERT_EQ((unsigned int) DMX_UNIVERSE_SIZE, buffer.Size()); OLA_ASSERT_EQ(0, memcmp(expected, buffer.GetRaw(), buffer.Size())); // Check we can't set values greater than the buffer size buffer.SetChannel(999, 50); OLA_ASSERT_EQ((unsigned int) DMX_UNIVERSE_SIZE, buffer.Size()); OLA_ASSERT_EQ(0, memcmp(expected, buffer.GetRaw(), buffer.Size())); // Check we can't set values outside the current valida data range unsigned int slice_size = 20; buffer.Set(expected, slice_size); buffer.SetChannel(30, 90); buffer.SetChannel(200, 10); OLA_ASSERT_EQ(slice_size, buffer.Size()); OLA_ASSERT_EQ(0, memcmp(expected, buffer.GetRaw(), buffer.Size())); }