diff --git a/tests/unittests/tests-core/tests-core-cib.c b/tests/unittests/tests-core/tests-core-cib.c index 487403ae84..fd371969a6 100644 --- a/tests/unittests/tests-core/tests-core-cib.c +++ b/tests/unittests/tests-core/tests-core-cib.c @@ -14,16 +14,15 @@ #define TEST_CIB_SIZE 2 -cib_t cib; +static cib_t cib; static void set_up(void) { - cib_init(&cib, 2); + cib_init(&cib, TEST_CIB_SIZE); } static void test_cib_put(void) { - TEST_ASSERT_EQUAL_INT(0, cib_put(&cib)); TEST_ASSERT_EQUAL_INT(1, cib_put(&cib)); TEST_ASSERT_EQUAL_INT(-1, cib_put(&cib)); @@ -46,12 +45,44 @@ static void test_cib_avail(void) TEST_ASSERT_EQUAL_INT(2, cib_avail(&cib)); } +static void test_cib_put_and_get(void) +{ + TEST_ASSERT_EQUAL_INT(0, cib_put(&cib)); + TEST_ASSERT_EQUAL_INT(0, cib_get(&cib)); + TEST_ASSERT_EQUAL_INT(-1, cib_get(&cib)); + TEST_ASSERT_EQUAL_INT(1, cib_put(&cib)); + TEST_ASSERT_EQUAL_INT(0, cib_put(&cib)); + TEST_ASSERT_EQUAL_INT(-1, cib_put(&cib)); +} + +static void test_empty_cib(void) +{ + cib_init(&cib, 0); + TEST_ASSERT_EQUAL_INT(0, cib_avail(&cib)); + TEST_ASSERT_EQUAL_INT(-1, cib_get(&cib)); + TEST_ASSERT_EQUAL_INT(-1, cib_put(&cib)); +} + +static void test_singleton_cib(void) +{ + cib_init(&cib, 1); + TEST_ASSERT_EQUAL_INT(0, cib_avail(&cib)); + TEST_ASSERT_EQUAL_INT(-1, cib_get(&cib)); + TEST_ASSERT_EQUAL_INT(0, cib_put(&cib)); + TEST_ASSERT_EQUAL_INT(1, cib_avail(&cib)); + TEST_ASSERT_EQUAL_INT(0, cib_get(&cib)); + TEST_ASSERT_EQUAL_INT(0, cib_avail(&cib)); +} + Test *tests_core_cib_tests(void) { EMB_UNIT_TESTFIXTURES(fixtures) { new_TestFixture(test_cib_put), new_TestFixture(test_cib_get), new_TestFixture(test_cib_avail), + new_TestFixture(test_cib_put_and_get), + new_TestFixture(test_empty_cib), + new_TestFixture(test_singleton_cib), }; EMB_UNIT_TESTCALLER(core_cib_tests, set_up, NULL, fixtures);