remove incorrect asserts (#63)

This commit is contained in:
William Woodall 2016-06-22 20:18:36 -07:00 committed by GitHub
parent 9bbe3666ac
commit e6e7713c43
2 changed files with 11 additions and 5 deletions

View file

@ -595,28 +595,24 @@ rcl_wait(rcl_wait_set_t * wait_set, int64_t timeout)
}
// Set corresponding rcl subscription handles NULL.
for (i = 0; i < wait_set->size_of_subscriptions; ++i) {
assert(i < wait_set->impl->rmw_subscriptions.subscriber_count); // Defensive.
if (!wait_set->impl->rmw_subscriptions.subscribers[i]) {
wait_set->subscriptions[i] = NULL;
}
}
// Set corresponding rcl guard_condition handles NULL.
for (i = 0; i < wait_set->size_of_guard_conditions; ++i) {
assert(i < wait_set->impl->rmw_guard_conditions.guard_condition_count); // Defensive.
if (!wait_set->impl->rmw_guard_conditions.guard_conditions[i]) {
wait_set->guard_conditions[i] = NULL;
}
}
// Set corresponding rcl client handles NULL.
for (i = 0; i < wait_set->size_of_clients; ++i) {
assert(i < wait_set->impl->rmw_clients.client_count); // Defensive.
if (!wait_set->impl->rmw_clients.clients[i]) {
wait_set->clients[i] = NULL;
}
}
// Set corresponding rcl service handles NULL.
for (i = 0; i < wait_set->size_of_services; ++i) {
assert(i < wait_set->impl->rmw_services.service_count); // Defensive.
if (!wait_set->impl->rmw_services.services[i]) {
wait_set->services[i] = NULL;
}

View file

@ -130,7 +130,6 @@ TEST(CLASSNAME(WaitSetTestFixture, RMW_IMPLEMENTATION), zero_timeout) {
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string_safe();
});
// Time spent during wait should be negligible.
int64_t timeout = 0;
std::chrono::steady_clock::time_point before_sc = std::chrono::steady_clock::now();
@ -142,6 +141,17 @@ TEST(CLASSNAME(WaitSetTestFixture, RMW_IMPLEMENTATION), zero_timeout) {
EXPECT_LE(diff, TOLERANCE);
}
// Test rcl_wait_set_t with excess capacity works.
TEST(CLASSNAME(WaitSetTestFixture, RMW_IMPLEMENTATION), excess_capacity) {
rcl_wait_set_t wait_set = rcl_get_zero_initialized_wait_set();
rcl_ret_t ret = rcl_wait_set_init(&wait_set, 42, 42, 42, 42, 42, rcl_get_default_allocator());
EXPECT_EQ(RCL_RET_OK, ret) << rcl_get_error_string_safe();
int64_t timeout = 1;
ret = rcl_wait(&wait_set, timeout);
ASSERT_EQ(RCL_RET_TIMEOUT, ret) << rcl_get_error_string_safe();
}
// Check rcl_wait can be called in many threads, each with unique wait sets and resources.
TEST(CLASSNAME(WaitSetTestFixture, RMW_IMPLEMENTATION), multi_wait_set_threaded) {
rcl_ret_t ret;