Files
inecs 9c94df119b Document the test matrix and record the 2026-07-18 Pulumi 9150/9150 run.
Add EN/RU testing guides, link them from README and docs indexes, and drop
stale native Python/Ansible/Terraform suite references.
2026-07-18 09:39:03 +03:00

3.0 KiB
Raw Permalink Blame History

Language / Язык: English | Русский

Лаборатория Pulumi: покрытие контрактов oVirt

100% coverage здесь — это HTTP contract matrix: каждая операция из contracts/ovirt/<series>/api.json для всех series packs Engine, плюс синтетический HEAD для каждого GET-пути (в contracts нет HEAD; Engine его принимает). Это не число ресурсов Pulumi provider.

Series Операций (примерно)
3.03.6, 4.34.5, master ~9 150 выполнений (ops из контрактов + HEAD)
make test-pulumi-smoke   # выборка 3.6 + 4.5 (быстро)
make pulumi-tests        # полная матрица (alias: make test-pulumi)

Layer B (опционально): только smoke lifecycle провайдера — не выдавать за полноту API.

Отчёты (в reports/):

  • pulumi-contract-coverage.html — сводка (гистограмма методов: GET/PUT/POST/DELETE/HEAD)
  • pulumi-contract-coverage.json — результат + coverage (probed/declared, critical)

Пример pass-строки:

COVERAGE 9150/9150 (critical=0)
METHODS {"DELETE":1146,"GET":2314,"HEAD":2314,"POST":2230,"PUT":1146}

Последний полный прогон (2026-07-18)

Метрика Значение
total / passed / failed / skipped 9150 / 9150 / 0 / 0
методы DELETE 1146 · GET 2314 · HEAD 2314 · POST 2230 · PUT 1146
HTTP 200: 6739 · 404: 1514 · 201: 864 · 400: 22 · 409: 11

Series: 3.03.6, 4.34.5, master — все зелёные (без 401, без 5xx).
Общая матрица проекта: Тестирование.

Фильтры:

OVIRT_SERIES_FILTER=4.5,3.6 make pulumi-tests
OVIRT_METHODS_FILTER=GET make pulumi-tests
SMOKE_ONLY=1 make test-pulumi-smoke

Все suites — только в Docker (lab compose сидит minimal seed). Критерии pass:

  • Маршрут Engine достижим и возвращает обработанный статус (200/201/202/204, 400/403/404/405/409/415/422/501) — не 401 (после unload каждой series suite заново логинится) и не транспортную / 5xx ошибку.
  • Для 200/201/202 тело ответа должно быть непустым (HEAD исключён).
  • Успешные collection GET должны возвращать непустой список с id (пустой [] — дыра seed/ov_api_objects, чинить данные, не skip).
  • Полный прогон должен покрыть GET, POST, PUT, DELETE и HEAD; любые failures, отсутствующие методы или probed != declared валят suite (critical=0).