|
|
|
|
@ -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++) { |
|
|
|
|
|