docs: clarify Claro v1 status and validation
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
EXE = ROOT / ("claro.exe" if os.name == "nt" else "claro")
|
||||
|
||||
def run(cmd, cwd=ROOT, input_text=None):
|
||||
result = subprocess.run(cmd, cwd=cwd, input=input_text, text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
print("$", " ".join(map(str, cmd)))
|
||||
print(result.stdout, end="")
|
||||
if result.returncode != 0:
|
||||
raise SystemExit(result.returncode)
|
||||
return result.stdout
|
||||
|
||||
if not EXE.exists():
|
||||
run(["gcc", "-std=c99", "src/claro.c", "-O0", "-o", str(EXE), "-lm"])
|
||||
|
||||
run([str(EXE), "--version"])
|
||||
run([str(EXE), "test"])
|
||||
run([str(EXE), "validate"])
|
||||
|
||||
with tempfile.TemporaryDirectory() as td:
|
||||
work = Path(td)
|
||||
shutil.copy2(EXE, work / EXE.name)
|
||||
local = work / EXE.name
|
||||
run([str(local), "new", "DemoProject"], cwd=work)
|
||||
proj = work / "DemoProject"
|
||||
run([str(local), "package", "doctor"], cwd=proj)
|
||||
run([str(local), "package", "add", "text"], cwd=proj)
|
||||
run([str(local), "package", "add", "text"], cwd=proj)
|
||||
listing = run([str(local), "package", "list"], cwd=proj)
|
||||
if listing.count("text") != 1:
|
||||
raise SystemExit("Package was duplicated in listing")
|
||||
bad = subprocess.run([str(local), "package", "add", "../bad"], cwd=proj, text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
print("$", local, "package add ../bad")
|
||||
print(bad.stdout, end="")
|
||||
if bad.returncode == 0:
|
||||
raise SystemExit("Unsafe package name was accepted")
|
||||
run([str(local), "package", "remove", "text"], cwd=proj)
|
||||
run([str(local), "run"], cwd=proj)
|
||||
|
||||
print("Validation passed. Claro v1.18.26 networking reliability is ready for use.")
|
||||
Reference in New Issue
Block a user