en un clic
en un clic
| name | smoke-test |
| description | Run the wasteland smoke test plan against a freshly built wl binary |
Execute the smoke tests defined in test/smoke/TESTPLAN.md.
Read the test plan. Read test/smoke/TESTPLAN.md from the repo root. Parse
each numbered ## Test N: section. Each section has shell commands in fenced
code blocks and expected output markers in Expected lines.
Build. Run make build from the repo root. Fail immediately if the build
fails.
Set up PATH. Put bin/ (from the repo root) at the front of PATH so
the freshly built wl binary is used.
Set REPO_ROOT. Export REPO_ROOT pointing to the repository root so
test commands that reference $REPO_ROOT (e.g., schema file paths) resolve
correctly.
Isolate each test. For every test section, create a fresh temp directory and export:
XDG_DATA_HOME=$tmpdir/dataXDG_CONFIG_HOME=$tmpdir/configHOME=$tmpdir/homeDOLT_ROOT_PATH=$tmpdir/homeCreate $HOME/.dolt/config_global.json with:
{"user.name":"smoke-test","user.email":"smoke@test.local","user.creds":""}
This ensures real user config/data is never touched and each test starts from a clean slate.
Execute tests sequentially. For each ## Test N: section:
<text>" or "Expected output contains: <text>": stdout+stderr
must contain the specified text (case-sensitive substring match).N" (a bare number): stdout must contain that exact value
(used for grep -c checks).$ITEM_ID is referenced, capture it from the wl post output by
extracting the w-<hex> pattern (regex: w-[0-9a-f]+).PASS: Test N — <title> on success.FAIL: Test N — <title> on failure with the actual output, then
stop immediately (do not continue to later tests).Skip Test 8 (go install verification) — it requires a pushed tag and
network access. Print SKIP: Test 8 — go install verification.
Print summary. After all tests, print a summary line:
Smoke tests: X passed, Y failed, Z skipped
Clean up. Remove all temp directories created during the run.
test/smoke/TESTPLAN.md as the
source of truth. If the plan file changes, the tests change automatically.--remote-base) uses local filesystem paths, no network.wl binary and setting PATH to that single directory. Do NOT use
grep -v dolt to filter PATH — dolt is typically in a shared directory like
/usr/local/bin that won't be filtered by name.DOLT_ADD/DOLT_COMMIT stored procedures, then
push to a file:// store directory. A bare dolt init directory is NOT a
valid remote store.dolt sql to verify database contents, cd into the database
directory first — dolt does not support a -d flag. Use -r csv (not
--result-format csv) for output format.dolt on PATH. If dolt is not available, fail with a clear
message rather than producing confusing errors.--no-push on mutation commands (post, claim, done) in Test 6 since the
file provider may not support push in all configurations.dolt init needs HOME and DOLT_ROOT_PATH set to the temp home dir, or
it will try to write to the real home directory.--no-push stay in the local fork only. wl browse clones
from upstream, so posted items may not appear in browse output. This is correct
behavior — verify the post via its ITEM_ID using wl status instead.