test: regression coverage for V8 Intl crash (#70), cross-exec loopback (#88), and JSON-over-VFS result decode (#11/#59)#97
Merged
Conversation
…ble) Add permanent regression tests for four issues that are already fixed on main but lacked dedicated coverage. - #70 (toLocaleDateString crashed embedded V8 with SIGTRAP): new helper javascript_execution_to_locale_date_string_does_not_crash_embedded_v8 in crates/execution/tests/javascript_v8.rs, wired into javascript_v8_suite(). Runs the exact repro (en-GB toLocaleDateString with day/month/year options and an explicit Europe/Warsaw time zone) and asserts the guest exits 0 and returns a non-empty string, guarding the near-heap-limit OOM guard that now converts ICU's fatal abort into clean termination. - #88 (cross-exec server/client over loopback in one VM): new test javascript_net_cross_exec_loopback_routes_through_kernel_socket_table in crates/sidecar/tests/service.rs, wired into the service suite. Starts two distinct guest exec processes in one VM, has process A net.listen and a separate process B net.connect to it, asserts B's socket has a kernel_socket_id (routed through the shared kernel socket table), and that a byte written by B crosses the exec boundary and is read by A. Guards the per-VM socket-path context that collects every concurrent exec's listeners. - #11 / #59 (host-engine / Node-version sensitivity and Lambda cold-start crash): new packages/core/tests/node-runtime-decode.test.ts asserts the host run()/decode path uses no node:v8 deserialize and decodes structured results as JSON read back over the VFS, with a nested-value round-trip through that exact path. These issues are largely environmental; this guards the testable root cause in a plain Node-host CI. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
🚅 Environment secure-exec-pr-97 in rivet-frontend has no services deployed. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds permanent regression tests for four issues already fixed on
mainbut lacking dedicated coverage.Closes #70—javascript_execution_to_locale_date_string_does_not_crash_embedded_v8runs the exacttoLocaleDateStringrepro (en-GB, day/month/year,Europe/Warsaw) and asserts clean termination with a non-empty string, guarding the near-heap-limit OOM guard incrates/v8-runtime/src/isolate.rs.Closes #88—javascript_net_cross_exec_loopback_routes_through_kernel_socket_tableproves a listener in one exec and a connector in a different exec inside the same VM communicate over loopback, with the client routed through the shared kernel socket table and bytes crossing the exec boundary.Refs #11/Refs #59—packages/core/tests/node-runtime-decode.test.tslocks in the architectural fix: no host-sidenode:v8deserialize, structured results decoded as JSON over the VFS. These issues are largely environmental (host Node/V8 version sensitivity, Lambda cold-start); this is the testable root-cause guard in a plain Node-host CI, alongside the existing binary-resolution suite (packages/sidecar/tests/index.test.cjs). Not markedClosesbecause full behavioral coverage would need a live sidecar binary.Verification
cargo test -p secure-exec-execution --test javascript_v8 javascript_v8_suite→ passed (includes the toLocaleDateString() crashes embedded V8 with SIGTRAP #70 test).cargo test -p secure-exec-sidecar --test service). Note: thesecure-exec-sidecarservice suite carries a pre-existing environmental flake injavascript_tls_client_upgrade_query_and_cipher_list_work(host TLS-server port-ownership EACCES), reproducible on cleanmainand unrelated to this change.pnpm --filter @secure-exec/core exec vitest run tests/node-runtime-decode.test.ts→ 3 passed.