diff --git a/sys/saul_reg/saul_reg.c b/sys/saul_reg/saul_reg.c index 5f0528318a..40f521ebf2 100644 --- a/sys/saul_reg/saul_reg.c +++ b/sys/saul_reg/saul_reg.c @@ -62,6 +62,7 @@ int saul_reg_rm(saul_reg_t *dev) } if (saul_reg == dev) { saul_reg = dev->next; + return 0; } while (tmp->next && (tmp->next != dev)) { tmp = tmp->next; diff --git a/tests/unittests/tests-saul_reg/tests-saul_reg.c b/tests/unittests/tests-saul_reg/tests-saul_reg.c index b7633b290f..79e03d62e4 100644 --- a/tests/unittests/tests-saul_reg/tests-saul_reg.c +++ b/tests/unittests/tests-saul_reg/tests-saul_reg.c @@ -171,6 +171,17 @@ static void test_reg_rm(void) TEST_ASSERT_EQUAL_INT(-ENODEV, res); TEST_ASSERT_EQUAL_INT(2, count()); + + res = saul_reg_rm(&s0); + TEST_ASSERT_EQUAL_INT(0, res); + TEST_ASSERT_EQUAL_INT(1, count()); + TEST_ASSERT_EQUAL_STRING("S2", saul_reg->name); + TEST_ASSERT_EQUAL_STRING("S2", last()->name); + + res = saul_reg_rm(&s2); + TEST_ASSERT_EQUAL_INT(0, res); + TEST_ASSERT_EQUAL_INT(0, count()); + TEST_ASSERT_NULL(saul_reg); } Test *tests_saul_reg_tests(void)