Files
VerseVDI-Protocol/tools/run_native_conformance.py
sechmachine ebfe07376d
Verify Protocol / verify (push) Canceled after 0s
Verify Protocol / module (push) Successful in 2m12s
fix(protocol): harden gateway contract validation
2026-07-29 21:16:53 +07:00

41 lines
1.4 KiB
Python

#!/usr/bin/env python3
from __future__ import annotations
import pathlib
import subprocess
import tempfile
ROOT = pathlib.Path(__file__).resolve().parents[1]
def run(command: list[str]) -> None:
result = subprocess.run(command, cwd=ROOT, text=True, capture_output=True)
if result.returncode != 0:
raise SystemExit(result.stdout + result.stderr)
print(result.stdout.strip())
def main() -> int:
with tempfile.TemporaryDirectory(prefix="versevdi-protocol-conformance-") as directory:
temp = pathlib.Path(directory)
rust_bin = temp / "rust-conformance"
swift_bin = temp / "swift-conformance"
rust_source = temp / "main.rs"
rust_source.write_text(
(ROOT / "gen/rust/protocol.rs").read_text(encoding="utf-8")
+ "\n"
+ (ROOT / "tools/native_conformance.rs").read_text(encoding="utf-8"),
encoding="utf-8",
)
run(["rustc", str(rust_source), "-O", "-o", str(rust_bin)])
run([str(rust_bin)])
main_source = temp / "main.swift"
main_source.write_text((ROOT / "tools/native_conformance.swift").read_text(encoding="utf-8"), encoding="utf-8")
run(["swiftc", "-parse-as-library", "gen/swift/Protocol.swift", str(main_source), "-o", str(swift_bin)])
run([str(swift_bin)])
return 0
if __name__ == "__main__":
raise SystemExit(main())