|
|
|
|
@ -1144,13 +1144,14 @@ static void test_supernode_relay(void) {
|
|
|
|
|
while (relay_data[2] < 3 && get_time_tb() < deadline) test_clock_poll(ua, 100); |
|
|
|
|
CHECK(relay_data[2] == 3 && relay_requests_seen && !relay_data[1]); |
|
|
|
|
CHECK(get_time_tb() - started < 10000 && relay_race.request_tb - started >= 990); |
|
|
|
|
uint64_t connected_ms = (get_time_tb() - started) / 10; |
|
|
|
|
test_clock_run_for(ua, 1000); CHECK(relay_race.accepted == 255); |
|
|
|
|
CHECK(relay_race.helper_subscribes && !relay_race.source_subscribes); |
|
|
|
|
relay_release_info(); test_clock_run_for(ua, 1000); |
|
|
|
|
CHECK(!relay_race.source_subscribes && relay_data[2] == 3); |
|
|
|
|
relay_race.check_starts = 0; |
|
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_STREAM, "[PASS] bootstrap helper wins: elapsed_ms=%llu, n=8 r=2, common_start=%llu, stale direct INFO ignored", |
|
|
|
|
(unsigned long long)((get_time_tb() - started) / 10), (unsigned long long)relay_race.start); |
|
|
|
|
(unsigned long long)connected_ms, (unsigned long long)relay_race.start); |
|
|
|
|
CHECK(stream_local_get(nodes[1], &origin.descriptor, &local) == STREAM_OK && local.relay_only); |
|
|
|
|
/* Поздний обычный подписчик также удерживает раздачу, даже без собственного запроса помощи. */ |
|
|
|
|
CHECK(stream_subscribe_open(nodes[0], GROUP2, nodes[3]->node_id, &viewers[0]) == STREAM_OK); |
|
|
|
|
|