- C: emit profiles/diagnostics/fourier only when enable flags are set; null otherwise - API: fieldTraceability on case parse/default and solve; fix GET /solve/default options - Tests: golden fingerprint, quality gates, C diagnostics invariants; cardQa mean empty guard - Makefile: test-solver-sanitize ASan/UBSan target; README and COMPUTE_PLAN updates - GUI: taper weight/MTS/guides/sinker round-trip, rod catalog, solver output toggles, results (profiles/diagnostics/Fourier/traceability), engineering checks and tabs - Restore canonical WellName in base-case for regression; trace TaperGuidesCountArray Made-with: Cursor
42 lines
1.1 KiB
Makefile
42 lines
1.1 KiB
Makefile
SHELL := /bin/bash
|
|
|
|
.PHONY: run down logs test smoke test-solver-sanitize
|
|
|
|
run:
|
|
docker compose up --build
|
|
|
|
down:
|
|
docker compose down
|
|
|
|
logs:
|
|
docker compose logs -f
|
|
|
|
test:
|
|
cd solver-api && npm test
|
|
cd gui-ts && npm test
|
|
./solver-c/test_solver
|
|
|
|
# ASan/UBSan regression for solver-c (rebuilds a throwaway binary under solver-c/)
|
|
test-solver-sanitize:
|
|
cd solver-c && gcc -std=c99 -fsanitize=address,undefined -g -O1 \
|
|
-Iinclude \
|
|
src/solver_common.c src/json_stdin.c src/trajectory.c src/solver_diagnostic.c \
|
|
src/solver.c src/solver_fea.c src/solver_fourier.c \
|
|
tests/test_solver.c -lm -o test_solver_sanitize && ./test_solver_sanitize
|
|
|
|
smoke:
|
|
@echo "Checking API health..."
|
|
@for i in {1..30}; do \
|
|
if curl --fail --silent http://localhost:4400/health > /dev/null; then \
|
|
echo "API healthy"; \
|
|
break; \
|
|
fi; \
|
|
sleep 1; \
|
|
if [ $$i -eq 30 ]; then \
|
|
echo "API did not become healthy in time"; \
|
|
exit 1; \
|
|
fi; \
|
|
done
|
|
@echo "Checking solve endpoint with base case..."
|
|
@curl --fail --silent http://localhost:4400/solve/default > /dev/null && echo "Solve endpoint healthy"
|