fix(tests): сторож документации называет непрошедшую проверку, кластерная больше не виснет
Зачем. Сторож `tests/docs-guards.sh` падал через `set -e`: единственным следом была единица в коде возврата, а какое именно утверждение о README перестало быть правдой — не сообщалось. Со стороны файл выглядел набором несвязанных grep без объяснения, зачем каждый из них нужен. Отдельно: `make smoke-cluster` мог зависнуть навсегда. У запроса INSERT clickhouse-client дочитывает данные из стандартного ввода и ждёт его конца; при запуске не из терминала, а из фонового процесса с открытым вводом конец не наступает никогда. Проверка молча висела больше двадцати минут. Что. - Проверки собраны в именованные функции, каждая с комментарием, зачем она существует и что ломается, когда она краснеет. - Обёртка `check` печатает утверждение и при успехе, и при провале, считает пройденные и выходит с понятным сообщением. - Ввод запросов ClickHouse закрыт через `</dev/null`, рядом — объяснение причины. - README: раздел «Какую проверку когда запускать» — лесенка от дешёвой статической проверки к дорогой интеграционной, с ответом, зачем внутри `make smoke-guards` три прогона `make smoke`. Проверка. make config-test — пройдено 3, 3 и 6, ошибок 0. Фальсификация сторожа: порт ноды 2 в README изменён — «ОШИБКА: не подтвердилось: README перечисляет HTTP- и нативные порты обеих нод», код 1; двоеточие в строке про перезапуск ClickHouse заменено на тире — «ОШИБКА: не подтвердилось: README требует перезапуск ClickHouse после изменения настройки метрик», код 1. README восстановлен из индекса. make smoke-cluster с открытым стандартным вводом — 8 проверок за 7 с; до починки та же команда висела 23 минуты и была снята вручную. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -10,10 +10,14 @@ compose() {
|
||||
docker compose --project-directory "$ROOT_DIR" "$@"
|
||||
}
|
||||
|
||||
# Ввод закрыт намеренно: у запроса INSERT clickhouse-client дочитывает данные
|
||||
# из стандартного ввода и ждёт его конца. Если проверку запустили не из
|
||||
# терминала, а из фонового процесса с открытым вводом, конца не наступает
|
||||
# никогда, и команда висит без сообщений.
|
||||
query() {
|
||||
local service="$1"
|
||||
local sql="$2"
|
||||
compose exec -T "$service" clickhouse-client --query "$sql"
|
||||
compose exec -T "$service" clickhouse-client --query "$sql" </dev/null
|
||||
}
|
||||
|
||||
query_with_timeout() {
|
||||
|
||||
Reference in New Issue
Block a user