Record multicast validation and stabilize report timing test
This commit is contained in:
1 parent
b250e8a44d
commit
f87cda8b13
2 files changed
+18
-2
No files matched your search
@@ -4,6 +4,17 @@
|
||||
|
||||
## Текущие задачи
|
||||
|
||||
[+] **Multicast с исходящими дескрипторами и входящими подписками** — 20.10.2026:
|
||||
Отдельный routing_layer/multicast.c; контракт и примеры использования — multicast.h.
|
||||
Номера 1..65535 выдаются последовательно без поколений; подписки на (группа, source, descriptor).
|
||||
Общая FIFO 256 КиБ на ETCP-соединение, разделение по маршрутам, отмена при close/stop;
|
||||
отчёты с участком src/dst, получателями, префиксом payload и счётчиком: общий бюджет 16 КиБ, таймер 300 мс.
|
||||
test_multicast PASS: разветвление, тихий drop, lifetime, лимиты, таймер, смена маршрута,
|
||||
длинные отчёты, backpressure/restart, исчерпание и обход номеров. Valgrind: 0 ошибок, lost=0.
|
||||
check.sh: 163/165; прежние encrypted_attachment phase=5 и local_transport_packets line=209
|
||||
(отдельный повтор PASS). Логи: /tmp/multicast-full-check.log, /tmp/multicast-valgrind.log,
|
||||
/tmp/multicast-valgrind-test.log, /tmp/multicast-local-transport-retry.log.
|
||||
|
||||
[+] **Выбор битрейта трансляции до 12 Мбит/с** — 20.10.2026:
|
||||
Desktop и Android: верхний ручной пункт 12М, прежние сохранённые значения выше приводятся к лимиту.
|
||||
Android пересекает выбор с диапазоном encoder и сохраняет лимит при смене режима/камеры;
|
||||
@@ -35,6 +46,8 @@
|
||||
Отдельный повтор PASS: миллион hostile packets, bounded flood/events/memory, discovery recovery.
|
||||
Код local transport не менялся. Логи: /tmp/video-warmup-full-check.log,
|
||||
/tmp/video-warmup-local-packets-retry.log; причина и связь с нагрузкой пока не установлены.
|
||||
Проверка multicast: line=209, invitations == before + 9; отдельный повтор PASS.
|
||||
Логи: /tmp/multicast-full-check.log, /tmp/multicast-local-transport-retry.log.
|
||||
|
||||
[+] **Android: fullscreen вдоль длинной стороны и повторное использование codec probes** — 20.10.2026:
|
||||
Общее вписывание со стримами поворачивает только изображение большого видео, интерфейс остаётся
|
||||
|
||||
@@ -304,6 +304,7 @@ static void test_overload(void) {
|
||||
}
|
||||
CHECK(stats(f, B).queued_bytes == MULTICAST_QUEUE_BYTES && stats(f, B).overload_packets == 0);
|
||||
CHECK(c.count == 0 && d.count == 32);
|
||||
uint64_t first_drop = get_time_tb();
|
||||
CHECK(multicast_send(f->inst[A], fd, &one, 1, "one", 3) == 0);
|
||||
CHECK(l.count == 0); pump(f);
|
||||
DEBUG_DEBUG(DEBUG_CATEGORY_GENERAL, "first report: losses=%u pending=%zu sent=%llu received=%llu overload=%llu",
|
||||
@@ -320,8 +321,10 @@ static void test_overload(void) {
|
||||
uint64_t different[] = {3, 5};
|
||||
CHECK(multicast_send(f->inst[A], fd, different, 2, "set", 3) == 0);
|
||||
pump(f); CHECK(l.count == 1);
|
||||
test_clock_run_for(f->ua, 2900); CHECK(l.count == 1);
|
||||
test_clock_run_for(f->ua, 150); CHECK(l.count == 3);
|
||||
uint64_t now = get_time_tb();
|
||||
CHECK(now < first_drop + 2500);
|
||||
test_clock_run_for(f->ua, (int)(first_drop + 2500 - now)); CHECK(l.count == 1);
|
||||
test_clock_run_for(f->ua, 700); pump(f); CHECK(l.count == 3);
|
||||
CHECK(l.item[1].packets == 2 && l.item[1].recipient_count == 1 && memcmp(l.item[1].prefix, "two", 3) == 0);
|
||||
CHECK(l.item[2].packets == 1 && l.item[2].recipient_count == 2 && l.ids[2][0] == 3 && l.ids[2][1] == 5);
|
||||
CHECK(stats(f, B).overload_packets == 4 && stats(f, B).queued_bytes == MULTICAST_QUEUE_BYTES);
|
||||
|
||||
Reference in new issue
Block a user