From e559dfa2a2f5685073e4c7dcce3c0d8a0a37e9bb Mon Sep 17 00:00:00 2001 From: wangdequan Date: Fri, 19 Jun 2026 06:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AA=8C=E8=AF=81ToolDb=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E8=AF=81=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 结论:已新增Tool DB browser smoke,验证protocol transcript、OPFS flat-file/transcript persistence和diagnostics guard,baseline保持28/28/131/0且promotion继续锁定。 --- .../tool_db_process_browser_smoke.html | 115 ++++++++++++++++++ .../browser/verify_tool_db_process_browser.sh | 74 +++++++++++ 2 files changed, 189 insertions(+) create mode 100644 wasm-port/tests/browser/tool_db_process_browser_smoke.html create mode 100644 wasm-port/tests/browser/verify_tool_db_process_browser.sh diff --git a/wasm-port/tests/browser/tool_db_process_browser_smoke.html b/wasm-port/tests/browser/tool_db_process_browser_smoke.html new file mode 100644 index 0000000..9def663 --- /dev/null +++ b/wasm-port/tests/browser/tool_db_process_browser_smoke.html @@ -0,0 +1,115 @@ + + + + + LinuxCNC Tool DB Process Browser Smoke + + +
running
+ + + diff --git a/wasm-port/tests/browser/verify_tool_db_process_browser.sh b/wasm-port/tests/browser/verify_tool_db_process_browser.sh new file mode 100644 index 0000000..0464ce9 --- /dev/null +++ b/wasm-port/tests/browser/verify_tool_db_process_browser.sh @@ -0,0 +1,74 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "$0")/../.." && pwd)" +CHROMIUM="${CHROMIUM:-$(command -v chromium || command -v chromium-browser || command -v google-chrome || command -v google-chrome-stable || true)}" + +if [[ -z "$CHROMIUM" ]]; then + echo "missing Chromium-compatible browser; set CHROMIUM=/path/to/browser" >&2 + exit 1 +fi + +TMP_DIR="$(mktemp -d)" +PORT_FILE="$TMP_DIR/port" +SERVER_LOG="$TMP_DIR/server.log" +CHROME_PROFILE="$TMP_DIR/chrome-profile" +mkdir -p "$CHROME_PROFILE" + +cleanup() { + if [[ -n "${SERVER_PID:-}" ]]; then + kill "$SERVER_PID" 2>/dev/null || true + wait "$SERVER_PID" 2>/dev/null || true + fi + rm -rf "$TMP_DIR" +} +trap cleanup EXIT + +python3 - <<'PY' "$ROOT_DIR" "$PORT_FILE" >"$SERVER_LOG" 2>&1 & +import functools +import http.server +import pathlib +import socketserver +import sys + +root = pathlib.Path(sys.argv[1]) +port_file = pathlib.Path(sys.argv[2]) + +handler = functools.partial(http.server.SimpleHTTPRequestHandler, directory=str(root)) +with socketserver.TCPServer(("127.0.0.1", 0), handler) as httpd: + port_file.write_text(str(httpd.server_address[1]), encoding="ascii") + httpd.serve_forever() +PY +SERVER_PID=$! + +for _ in $(seq 1 100); do + [[ -s "$PORT_FILE" ]] && break + sleep 0.05 +done + +if [[ ! -s "$PORT_FILE" ]]; then + echo "Tool DB process browser smoke HTTP server did not start" >&2 + cat "$SERVER_LOG" >&2 || true + exit 1 +fi + +PORT="$(cat "$PORT_FILE")" +URL="http://127.0.0.1:$PORT/tests/browser/tool_db_process_browser_smoke.html" +OUT="$TMP_DIR/chromium.out" + +"$CHROMIUM" \ + --headless=new \ + --disable-gpu \ + --no-sandbox \ + --user-data-dir="$CHROME_PROFILE" \ + --virtual-time-budget=10000 \ + --dump-dom \ + "$URL" >"$OUT" 2>&1 + +if ! grep -Fq "browser_tool_db_process_smoke=ok" "$OUT"; then + echo "Tool DB process browser smoke failed" >&2 + sed -n '1,220p' "$OUT" >&2 + exit 1 +fi + +echo "browser_tool_db_process_smoke=ok"