diff --git a/doc/tasks.md b/doc/tasks.md index 0c3168656..7a2db50c8 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -5,12 +5,11 @@ ## Текущие задачи -[ ] **GUI: проверить очередь задач в test_settings_save::windowGeometry** — 02.11.2026. - После исправления линковки форматирования полная сборка GUI проходит, но 15 вариантов windowGeometry - падают на test_settings_save.cpp:330: после show()/processEvents() очередь posted_tasks_head уже непустая. - Остальные 79 проверок этого теста проходят; запуск вне песочницы, QT_QPA_PLATFORM=offscreen, XDG_SESSION_TYPE=x11. - Требуется определить источник фоновой задачи и согласовать ожидания стенда. - Лог: /tmp/chat-link-fix-tests-unrestricted.log. +[+] **GUI: проверить очередь задач в test_settings_save::windowGeometry** — 02.11.2026. + Диагностика очереди подтвердила начальный CHAT_DEVGROUP_STATUS от initDevgroupUi при создании MainWindow. + Стенд обрабатывает начальные запросы до проверки очереди, учёта памяти и инъекции OOM для сохранения геометрии. + Все 94 проверки test_settings_save проходят, включая исполнение/отмену и ошибки выделения памяти. + Логи: /tmp/settings-queue-diagnosis.log, /tmp/settings-queue-fix-tests.log. [ ] **Проверить зависание test_group_connect / test_group_connect_standby** — 02.11.2026. Обнаружено при проверке вызовов подгруппы: полный check.sh — таймаут90с в обоих тестах. diff --git a/tools/chatgui/tests/test_settings_save.cpp b/tools/chatgui/tests/test_settings_save.cpp index 05b70d512..2ab1302ba 100644 --- a/tools/chatgui/tests/test_settings_save.cpp +++ b/tools/chatgui/tests/test_settings_save.cpp @@ -316,6 +316,11 @@ private slots: // Ядро принадлежит fixture, nullptr db отключает создание фонового UtunNode в настоящем окне. auto window = std::make_unique(nullptr, nullptr, QString()); window->show(); QCoreApplication::processEvents(); + // Окно запрашивает статус «Моих устройств»; завершаем инициализацию до учёта команд сохранения/OOM. + int startupTasks = 0; + for (auto* task = core.ua->posted_tasks_head; task; task = task->next) ++startupTasks; + DEBUG_DEBUG(DEBUG_CATEGORY_CONFIG, "Window geometry setup: processing startup tasks=%d", startupTasks); + uasync_poll(core.ua, 0); QCoreApplication::processEvents(); auto* splitter = qobject_cast(window->centralWidget()); QVERIFY(splitter); QCOMPARE(splitter->sizes().size(), 3); const QRect geometry = window->normalGeometry();