Files
workinf_Blender_Wasm/web/tests/fixtures/server-operator-runner.py
mes123456 f3e21c6b98
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled
chore: checkpoint web Blender migration source, tools and docs
Accumulated uncommitted work: GHOST Web backend, WebGL/GPU web layer,
web workflow engine and protocol, tooling, docs and task records.
Large generated evidence, user-testing archives, build snapshots and
imported test assets remain untracked.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-11-10 11:18:01 +08:00

36 lines
1.2 KiB
Python
Executable File

#!/usr/bin/env python3
"""Transport test double, not Blender behavioral evidence."""
import hashlib
import json
import os
from pathlib import Path
import signal
import sys
import time
envelope = json.load(sys.stdin)
request = envelope["request"]
root = Path(envelope["workspaceRoot"])
mode = request["properties"].get("mode", "success")
if mode == "signal":
os.kill(os.getpid(), signal.SIGTERM)
time.sleep(10 if mode == "slow" else 0.4)
if mode == "malformed":
(root / "result.json").write_text("{")
sys.exit(0)
result = {key: request[key] for key in (
"schemaVersion", "route", "jobId", "sourceBlendSha256", "sourceRevision",
"blenderBuild", "propertiesSha256", "requestSha256",
)}
data = b"transport-result"
result.update(status="SUCCEEDED", result=["FINISHED"],
resultSha256=hashlib.sha256(b'["FINISHED"]').hexdigest(),
resultBlendByteLength=len(data),
resultBlendSha256=hashlib.sha256(data).hexdigest())
if mode == "bad-hash":
result["resultBlendSha256"] = "0" * 64
if mode == "bad-binding":
result["sourceRevision"] += 1
(root / "result.blend").write_bytes(data)
(root / "result.json").write_text(json.dumps(result))