Skip to content

Набор XCTest не компилировался и теперь компилируется: 23 ошибки, все в тестах #1271

Description

@gHashTag

Побочный, но крупный результат разбора зеркальных списков.

Package.swift называл BR-OUTPUT/HotkeyAnalytics.swift — файл, удалённый коммитом 939028c91 «remove 16 non-whitelisted BR-OUTPUT prototypes». SwiftPM на это не падает: он печатает Invalid Source ...: File not found. предупреждением и собирает дальше. Плюс список расходился с build.sh на 46 путей, из-за чего сборка вставала на cannot find type SessionGuard in scope.

Итог: набор tests/TriOSKitTests никогда не компилировался целиком, а потолок XCTEST_ERROR_CEILING был выставлен ровно в 2 — число ошибок, которые давали эти обломки. Зелёный потолок мерил обломки.

Отдельная жертва: HotkeyAnalyticsEncryptionTests.swift утверждает, что аналитика горячих клавиш шифруется на диске. Его предмет удалён, и всё это время он не утверждал ничего.

Настоящее число

23 различные ошибки компиляции в 4 файлах из 42; в библиотеке — ни одной.

  • ChatFailureTests.swift — 9: изоляция MainActor; три Mock-типа перестали соответствовать протоколам, которые подменяют; у ModelHealthResult нет члена unavailable
  • LocalAuthProviderTests.swift — 7: изоляция, потерянный try, неразрешённые token/accessToken, аргумент proactiveRefreshMaxAge, которого в API больше нет
  • LogsTabViewTests.swift — 6: изоляция, синтаксис литерала, лишний аргумент, Set<LogRotationPolicy> требует Hashable
  • HotkeyAnalyticsEncryptionTests.swift — 1: предмет удалён, в самом тесте неисправимо

Это набор, отставший от Swift 6 и от изменений API, пока он молча не собирался.

Что уже сделано

  • Package.swift приведён к тому, что печатает build.sh; призрак убран.
  • make sources-drift (0,1 с) падает, если списки разошлись, если запись называет несуществующий файл, если объявленное исключение протухло или если любой список пуст. Входит в check, есть самопроверка на пяти заготовках.
  • Потолок 2 -> 23, и число теперь сопровождается словами «набор скомпилирован, значит это весь счёт».

Что нужно

Разобрать 23 ошибки. Двадцать две — дрейф тестов за кодом; двадцать третья требует решить судьбу теста, чей предмет удалён.

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