Skip to content

Сторож расхождения интерфейсов красный при первом же завершившемся прогоне #1268

Description

@gHashTag

Побочный результат #1267. Пока make drift-guard висел, никто не видел его вердикта. Он завершился впервые — и упал:

FAIL - the drift guard fails a combined tree whose signature and caller disagree
FAIL - the drift summary reports the build failure, not just a boolean
2 of 722 test(s) failed.
make: *** [drift-guard] Error 1

То есть сценарий строит временное дерево, где подпись метода и место вызова расходятся, и ожидает, что сторож это поймает. Он не ловит.

Две возможности, и обе стоят проверки:

  1. Сторож действительно не ловит расхождение — тогда это дыра в том самом, ради чего он написан (Границы по файлам не спасают от расхождения интерфейса: две пчелы, разные файлы, сломанная сборка #1111: две пчелы, разные файлы, сломанная сборка).
  2. Сломан сам сценарий — он никогда не доходил до конца, значит никогда и не отлаживался; заготовка могла разойтись с настоящим кодом за месяцы.

Разделить их дёшево: собрать то же комбинированное дерево руками и посмотреть, падает ли сборка. Если падает, а сторож молчит — первое. Если не падает — заготовка перестала расходиться и её надо чинить.

Отдельно: make drift-guard не входит в check, и это его и спасло от внимания. Стоит решить, входит ли он теперь, когда завершается: прогон занимает около четырёх минут.

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