tests/test_engine.sh : coups d'ouverture connus à 0 et 2 plis, nombre de coups légaux, bornes et symétrie des probabilités, décisions de videau évidentes, erreurs. test_makefile.sh essaie make clean sur un dossier jetable, pour ne plus forcer la recompilation du moteur à chaque test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
1.1 KiB
Bash
Executable File
28 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Vérifie le contrat du Makefile décrit dans CLAUDE.md :
|
|
# toutes les commandes obligatoires existent et apparaissent dans `make help`,
|
|
# et `make clean` supprime le dossier de build et peut être relancé sans erreur.
|
|
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
|
|
# Lancé depuis `make test` : repartir d'un make indépendant du make parent.
|
|
unset MAKEFLAGS MFLAGS MAKELEVEL
|
|
|
|
aide="$(make help)"
|
|
for cible in setup build test lint deploy clean help; do
|
|
if ! grep -qE "^ make $cible " <<<"$aide"; then
|
|
echo "make help ne mentionne pas « $cible »"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
# make clean est essayé sur un dossier de build jetable : vider le vrai build/
|
|
# forcerait à recompiler le moteur et à régénérer ses données à chaque test.
|
|
faux_build="$(mktemp -d)"
|
|
touch "$faux_build/artefact"
|
|
make clean BUILD_DIR="$faux_build" >/dev/null
|
|
make clean BUILD_DIR="$faux_build" >/dev/null
|
|
[ ! -e "$faux_build" ] || { echo "make clean n'a pas supprimé le dossier de build"; exit 1; }
|
|
grep -qx 'BUILD_DIR := build' Makefile || { echo "BUILD_DIR ne vaut plus build"; exit 1; }
|