diff --git a/tests/test_stream_service.c b/tests/test_stream_service.c index 2b3c27a9..94506206 100644 --- a/tests/test_stream_service.c +++ b/tests/test_stream_service.c @@ -634,7 +634,15 @@ static void test_automatic(void) { CHECK(stream_subscribe_open(nodes[1], GROUP2, nodes[3]->node_id, &subscribers[1]) == STREAM_OK); CHECK(stream_subscribe_open(nodes[1], GROUP2, nodes[3]->node_id, &second) == STREAM_OK); CHECK(stream_subscribe_manual_open(nodes[1], GROUP2, nodes[3]->node_id, &manual) == STREAM_ERR_STATE && !manual); - wait_state(2, 1, GROUP2, origin.descriptor.source_epoch, 1); + deadline = get_time_tb() + 150000; + int relay_announced = 0; + do { + struct stream_member_state member; + relay_announced = stream_member_load(nodes[2], GROUP2, nodes[1]->node_id, &member, NULL) == STREAM_OK + && stream_member_has_subscription(&member, nodes[3]->node_id, origin.descriptor.source_epoch); + if (!relay_announced) test_clock_poll(ua, 100); + } while (!relay_announced && get_time_tb() < deadline); + CHECK(relay_announced); CHECK(stream_subscribe_open(nodes[2], GROUP2, nodes[3]->node_id, &subscribers[2]) == STREAM_OK); struct stream_selection_settings settings = {200, 1000, 100}; for (unsigned i = 1; i < 3; i++) {