mirror of
https://github.com/elder-plinius/OBLITERATUS.git
synced 2026-08-17 16:37:30 +02:00
test: add Gate 3 numerical oracle contracts
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
"""Fail-closed mutmut prepared-artifact reuse hooks for CI."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
|
||||
|
||||
if (
|
||||
os.environ.get("OBLITERATUS_MUTMUT_REUSE_COVERAGE") == "1"
|
||||
or os.environ.get("OBLITERATUS_MUTMUT_REUSE_STATS") == "1"
|
||||
or os.environ.get("OBLITERATUS_MUTMUT_SUBPROCESS_PREFLIGHT") == "1"
|
||||
):
|
||||
from mutmut import __main__ as mutmut_main
|
||||
|
||||
from scripts.prepare_mutation_coverage import validate_execution_manifest
|
||||
from scripts.prepare_mutation_coverage import validate_manifest
|
||||
|
||||
def store_lines_covered_by_tests_from_prepared_artifacts() -> None:
|
||||
validate_manifest()
|
||||
print("Reusing prepared mutmut covered-line artifacts")
|
||||
|
||||
mutmut_main.store_lines_covered_by_tests = store_lines_covered_by_tests_from_prepared_artifacts
|
||||
|
||||
if os.environ.get("OBLITERATUS_MUTMUT_REUSE_STATS") == "1":
|
||||
|
||||
def collect_or_load_prepared_stats(
|
||||
runner,
|
||||
*,
|
||||
mutants_caught_by_type_checker=None,
|
||||
apply_config_invalidation=False,
|
||||
invalidate_stale_callers=True,
|
||||
) -> None:
|
||||
del runner, mutants_caught_by_type_checker
|
||||
del apply_config_invalidation, invalidate_stale_callers
|
||||
validate_execution_manifest()
|
||||
if not mutmut_main.load_stats():
|
||||
raise RuntimeError("prepared mutmut stats failed to load")
|
||||
print("Reusing prepared mutmut test-selection stats")
|
||||
|
||||
mutmut_main.collect_or_load_stats = collect_or_load_prepared_stats
|
||||
|
||||
if os.environ.get("OBLITERATUS_MUTMUT_SUBPROCESS_PREFLIGHT") == "1":
|
||||
_original_execute_pytest = mutmut_main.PytestRunner.execute_pytest
|
||||
|
||||
def execute_pytest_with_subprocess_preflight(self, params, **kwargs):
|
||||
if kwargs:
|
||||
return _original_execute_pytest(self, params, **kwargs)
|
||||
if os.environ.get("MUTANT_UNDER_TEST") not in {"", "fail"}:
|
||||
return _original_execute_pytest(self, params, **kwargs)
|
||||
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
full_params = ["--rootdir=.", "--tb=native", *params, *self._pytest_add_cli_args]
|
||||
result = subprocess.run([sys.executable, "-m", "pytest", *full_params], check=False)
|
||||
if result.returncode == 4:
|
||||
raise mutmut_main.BadTestExecutionCommandsException(full_params)
|
||||
return int(result.returncode)
|
||||
|
||||
mutmut_main.PytestRunner.execute_pytest = execute_pytest_with_subprocess_preflight
|
||||
Reference in New Issue
Block a user