Skip to content

Набор впервые прогнан: 121 тест, 10 падений — и это утверждения о продукте, а не дрейф #1273

Description

@gHashTag

Продолжение #1271. Там набор научился компилироваться; теперь он впервые прогнан.

TRIOS_E2E_DISABLE_KEYCHAIN=1 TRIOS_VARIANT=dev swift test
выполнено 121, пропущено 2, падений 10 в четырёх наборах
процесс завершился сигналом 5

Два пропуска — намеренные, это тесты с удалённым предметом (#1271), и они говорят почему.

Падения не дрейф

Это не «тест отстал от API». Это утверждения о поведении, которые никто не мог проверить месяцами:

  • ChatFailureTests.testBackgroundPollerStopsAndResumes (:353) — XCTAssertNil не прошёл: BackgroundHealthPoller после остановки не обнулился.
  • ChatFailureTests.testDoctorWithModelFlagRejectedWhenEmpty (:315) — /doctor --model с пустым значением разбирается как doctor(model: nil), а ожидался отказ unknown("/doctor --model"). То есть флаг без значения молча принимается.
  • ChatFailureTests.testProviderStatusDisablesModelProbe (:213) — при выключенном каталоге провайдера ожидалось unavailable, получено unknown(error: "not configured").

Падают четыре набора: ChatFailureTests, ChatRequestBuilderTests, ChatRequestSizerTests, ConversationEncryptionTests.

Средовое, о чём стоит знать

Без TRIOS_E2E_DISABLE_KEYCHAIN=1 прогон обрывается насмерть: KeychainSymmetricKeyStoreTests даёт Fatal error: Unexpectedly found nil, и всё после него не выполняется вовсе — то есть без этой переменной вы видите не десять падений, а обрубок. С переменной те шесть тестов проходят.

Сигнал 5 на выходе остаётся и с переменной: что-то ещё падает после последнего сообщения.

Что нужно

  1. Разобрать десять падений: для каждого решить, ошибка в коде или в ожидании теста. Судя по трём процитированным, минимум два — в коде.
  2. Найти источник сигнала 5.
  3. Решить, где живёт TRIOS_E2E_DISABLE_KEYCHAIN=1 — если прогон без неё обрывается, она часть контракта, а не заклинание в чужой памяти.
  4. Только после этого swift test можно ставить в ворота: сейчас make xctest считает ошибки сборки, а не результаты.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions