diff --git a/asks/live_acceptance_test.go b/asks/live_acceptance_test.go new file mode 100644 index 0000000..cb519b2 --- /dev/null +++ b/asks/live_acceptance_test.go @@ -0,0 +1,17 @@ +package asks + +import ( + "os/exec" + "testing" +) + +// live-acceptance.sh is run by a person at the terminal and by no test: its syntax is judged here, as the lab's script +// judged it with `sh -n` (novox/hq ADR 0529). +func TestTheLiveAcceptanceScriptIsValidShell(t *testing.T) { + if _, err := exec.LookPath("sh"); err != nil { + t.Skip("NOT TESTED HERE: no sh on the path") + } + if out, err := exec.Command("sh", "-n", "live-acceptance.sh").CombinedOutput(); err != nil { + t.Fatalf("live-acceptance.sh is not valid shell: %v\n%s", err, out) + } +} diff --git a/asks/merge-check.sh b/asks/merge-check.sh deleted file mode 100644 index 0ecb971..0000000 --- a/asks/merge-check.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# mesh-check-toolchain: go -# -# The proof of the operator's answers (novox/hq ADR 0259), the Go part of the lab's own check: run by the -# build seat in the mesh's Go toolchain, its own container, because the lab's merge-check.sh declares it -# (`# mesh-check-also: go asks/merge-check.sh`) — and by hand: `sh asks/merge-check.sh`. -# -# Formatted, vetted, and run against the clones beside the lab: on the build seat those are the controller, -# the runtime and the catalogue **the mesh runs**, so every pull request of the lab proves the answers the -# operator would get today. By hand, MESH_LAB_REPOS, or MESH_LAB_CONTROLLER, MESH_LAB_TOOLS and -# MESH_LAB_CATALOGUE, point it at branches under review. It takes about four minutes when it runs. -# -# **Said, never passed silently**: where a clone is missing, or the controller predates the proof's fixture, -# it says NOT RUN and why, in capitals, and passes; a proof that runs and fails, fails the check. -set -eu -cd "$(dirname "$0")" -export GOPRIVATE=git.novox.be - -unformatted=$(gofmt -l .) -if [ -n "$unformatted" ]; then - echo "not gofmt'd:" - echo "$unformatted" - exit 1 -fi -sh -n live-acceptance.sh -go vet ./... -out=$(mktemp) -status=0 -go test -count=1 -timeout 25m -v -run '^(TestTheOperatorsAnswerEndToEnd|TestTheFakePhoneShowsHTMLAsTelegramDoes)$' . >"$out" 2>&1 || status=$? -grep -E '^(--- | --- |ok|FAIL|PASS)' "$out" || true -if grep -q 'NOT RUN' "$out"; then - echo "NOT RUN: THE PROOF OF THE OPERATOR'S ANSWERS DID NOT RUN HERE:" - grep -o 'NOT RUN: .*' "$out" | head -3 -fi -[ "$status" -eq 0 ] || tail -60 "$out" -rm -f "$out" -exit "$status" diff --git a/asks/proof_test.go b/asks/proof_test.go index 1343f10..ea36d04 100644 --- a/asks/proof_test.go +++ b/asks/proof_test.go @@ -1,3 +1,5 @@ +//go:build integration + package asks import (