diff --git a/tests/unittests/tests-core/tests-core-ringbuffer.c b/tests/unittests/tests-core/tests-core-ringbuffer.c index 216071efc6..4d07fbb3c9 100644 --- a/tests/unittests/tests-core/tests-core-ringbuffer.c +++ b/tests/unittests/tests-core/tests-core-ringbuffer.c @@ -131,11 +131,33 @@ static void tests_core_ringbuffer_remove(void) } +static void tests_core_ringbuffer_remove_underflow(void) +{ + char mem[3]; + ringbuffer_t buf; + ringbuffer_init(&buf, mem, sizeof(mem)); + + ringbuffer_add_one(&buf, 0); + ringbuffer_add_one(&buf, 1); + + ringbuffer_remove(&buf, 2); + TEST_ASSERT_EQUAL_INT(1, ringbuffer_empty(&buf)); + + ringbuffer_add_one(&buf, 0); + ringbuffer_add_one(&buf, 1); + + ringbuffer_remove(&buf,1); + + TEST_ASSERT_EQUAL_INT(1, ringbuffer_get_one(&buf)); + TEST_ASSERT_EQUAL_INT(1, ringbuffer_empty(&buf)); +} + Test *tests_core_ringbuffer_tests(void) { EMB_UNIT_TESTFIXTURES(fixtures) { new_TestFixture(tests_core_ringbuffer), new_TestFixture(tests_core_ringbuffer_remove), + new_TestFixture(tests_core_ringbuffer_remove_underflow), }; EMB_UNIT_TESTCALLER(ringbuffer_tests, NULL, NULL, fixtures);