Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions ci/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,15 @@ from):
[`preprocess-require.awk`](preprocess-require.awk) rewrites each `require <ext>` into an
explicit signed `INSTALL <ext> FROM {community,core}; LOAD <ext>;`. `require-env` and
everything else pass through.
5. **Run** — [`run-integration.sh`](run-integration.sh) stages the preprocessed tree, wires
`VGI_TEST_WORKER`/`VGI_SIMPLE_WRITABLE_WORKER`/`VGI_BAD_PROTOCOL_WORKER` at the three built
binaries, `FORCE INSTALL`s the vgi extension (so the run uses what users can install today),
then runs the suite in a single `haybarn-unittest` invocation.
5. **Run** — [`run-integration.sh`](run-integration.sh) stages the preprocessed tree and places
the main worker behind DuckDB's `launch:` AF_UNIX pool, so repeated ATTACHes reuse one warm
.NET process. The small stateful and incompatible-protocol fixture workers remain isolated
subprocesses. The harness `FORCE INSTALL`s the vgi extension (so the run uses what users can
install today), then runs the suite in a single `haybarn-unittest` invocation.

## Scope of this version

This is deliberately a **single lane** (the default subprocess transport, matching
`scripts/run_tests.sh`'s `SUBPROCESS=1` mode) with no coverage collection, no skip-reason
This is deliberately a **single launcher lane** with no coverage collection, no skip-reason
allowlist, and no executed-case floor — unlike `vgi-go`'s CI, which covers stdio/launch/shm/http
lanes and guards against a whole-suite silent skip (a failed `require`/`require-env` is a *skip*,
not a failure, so "all tests passed" alone isn't proof anything ran). That hardening is a natural
Expand Down
18 changes: 12 additions & 6 deletions ci/run-integration.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
# example worker, using a prebuilt standalone `haybarn-unittest` and the signed
# community vgi extension — no C++ build from source. See ci/README.md.
#
# Ported from vgi-go's ci/run-integration.sh, trimmed to a single (stdio)
# transport lane for this first version — vgi-go's version additionally covers
# launch:/shm/http lanes with a skip-reason allowlist and an executed-case
# Ported from vgi-go's ci/run-integration.sh, trimmed to a single launcher
# transport lane — vgi-go's version additionally covers stdio/shm/http lanes
# with a skip-reason allowlist and an executed-case
# floor to catch silent whole-suite skips; that hardening is a natural
# follow-up here once this lane is proven green in real CI (see ci/README.md).
#
Expand Down Expand Up @@ -95,9 +95,15 @@ mkdir -p "$STAGE/test/support"
install -m 0755 "$DATABASE_WORKER_FIXTURE" \
"$STAGE/test/support/database_worker_fixture.sh"

# Matches scripts/run_tests.sh's SUBPROCESS=1 lane — the default DuckDB
# `LOCATION` subprocess transport, no launcher/AF_UNIX pooling.
export VGI_TEST_WORKER="$WORKER"
# Pool the main worker behind DuckDB's AF_UNIX launcher. The suite opens many
# connections and ATTACHes the same worker repeatedly; a bare path starts a new
# .NET process for each connection, while launch: reuses one warm process.
export VGI_TEST_WORKER="launch:$WORKER"
export VGI_REQUIRE_LAUNCHER_TRANSPORT=1

# Keep the small stateful and deliberately-incompatible fixtures isolated.
# They account for only a handful of tests, and process isolation prevents
# their mutable/error state from contaminating the shared main worker.
export VGI_SIMPLE_WRITABLE_WORKER="$SIMPLE_WRITABLE"
export VGI_BAD_PROTOCOL_WORKER="$BAD_PROTOCOL"

Expand Down
Loading