45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
import subprocess
|
|
from pathlib import Path
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
CLASSIFIER = ROOT / "post-start-smoke-process-classifier.awk"
|
|
|
|
|
|
def classify(sample: str) -> str:
|
|
result = subprocess.run(
|
|
["awk", "-f", str(CLASSIFIER)],
|
|
input=sample,
|
|
text=True,
|
|
capture_output=True,
|
|
check=True,
|
|
)
|
|
return result.stdout
|
|
|
|
|
|
def test_ignores_gitea_git_log_with_playwright_path() -> None:
|
|
sample = """\
|
|
PID PPID PGID STAT %CPU %MEM COMMAND COMMAND
|
|
3686370 1249344 3686370 R 48.0 0.0 git /usr/bin/git log -- .playwright-mcp docs
|
|
1249344 1249342 1249344 Ssl 60.6 1.1 gitea /usr/local/bin/gitea web
|
|
"""
|
|
assert classify(sample) == ""
|
|
|
|
|
|
def test_detects_real_chromium_process() -> None:
|
|
sample = """\
|
|
PID PPID PGID STAT %CPU %MEM COMMAND COMMAND
|
|
123 1 123 Sl 95.0 1.0 chromium /usr/bin/chromium --headless
|
|
"""
|
|
output = classify(sample)
|
|
assert "chromium" in output
|
|
|
|
|
|
def test_detects_stockplatform_smoke_process() -> None:
|
|
sample = """\
|
|
PID PPID PGID STAT %CPU %MEM COMMAND COMMAND
|
|
456 1 456 Sl 88.0 0.8 node node scripts/ops/stockplatform-review-bulk-ux-smoke.mjs
|
|
"""
|
|
output = classify(sample)
|
|
assert "stockplatform-review-bulk-ux-smoke" in output
|