# XCE project — test targets # Usage: # make test # unit tests only (no server needed, CGO_ENABLED=0) # make test-backend # backend CGO conversion tests (requires nix dev shell + build dir) # make test-integration # regression suite against live server # make test-all # unit + integration tests XCE_BIN ?= /tmp/xce_static SRV_URL ?= http://localhost:8080 GOFLAGS := CGO_ENABLED=0 .PHONY: build-cli build-server test test-backend test-integration test-all build-cli: cd xcecli && $(GOFLAGS) go build -o $(XCE_BIN) ./cmd/main.go build-server: cd apiserver && go build -o /tmp/apiserver ./cmd/main.go ## Run all Go unit tests that do not require CGO or a live server. test: @echo "=== Unit tests: apiserver ===" cd apiserver && $(GOFLAGS) go test ./store/... ./utils/... ./controllers/... ./backend/... -count=1 @echo "" @echo "=== Unit tests: xcecli ===" cd xcecli && $(GOFLAGS) go test ./... -count=1 ## Run backend CGO conversion tests. ## Requires CGO_ENABLED=1 and CGO_CFLAGS/CGO_LDFLAGS pointing at the build tree. ## Run from within the nix develop shell after a full meson build. test-backend: @echo "=== Backend CGO tests: apiserver/backend ===" cd apiserver && CGO_ENABLED=1 go test ./backend/... -count=1 ## Run regression suite against a live server (requires XCE_BIN and SRV_URL) test-integration: build-cli @echo "=== Integration regression: $(SRV_URL) ===" XCE=$(XCE_BIN) URL=$(SRV_URL) bash tests/regression/run.sh ## Run everything test-all: test test-integration