Files
Pierre MARTINandClaude Opus 5.5 a90f8ac9bf Tests du moteur embarqué
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>
2026-11-02 13:58:00 +01:00

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; }