#!/bin/sh

set -ex

uv run --frozen coverage erase
# PYTHONWARNDEFAULTENCODING=1 mirrors CI: text I/O without encoding= fails under pytest's "error" filter.
PYTHONWARNDEFAULTENCODING=1 uv run --frozen coverage run -m pytest -n auto "$@"
uv run --frozen coverage combine
uv run --frozen coverage report
# strict-no-cover spawns `uv run coverage json` internally without --frozen;
# UV_FROZEN=1 propagates to that subprocess so it doesn't touch uv.lock.
UV_FROZEN=1 uv run --frozen strict-no-cover
