diff --git a/tests/auto/decisions/run-decisions.sh b/tests/auto/decisions/run-decisions.sh index da9bc95..9876b09 100755 --- a/tests/auto/decisions/run-decisions.sh +++ b/tests/auto/decisions/run-decisions.sh @@ -12,6 +12,11 @@ # AGENTS.md : UN PROCESSUS PAR TEST, chacun sous MemoryMax=2G. Les tests ne tournent jamais en # parallèle (le harnais nymea ouvre des ports fixes). Un test qui sort en erreur est rejoué UNE # fois — instabilité connue du port 4847 — et le rejeu est annoncé, jamais masqué. +# +# RÉSEAU PRIVÉ PAR PROCESSUS (`--unshare-net`). Les ports fixes du harnais sont la seule chose +# qu'un /tmp privé n'isole pas : depuis le 2026-10-16, deux agents testent en parallèle sur la +# même machine, et un 4847 tenu par l'un faisait échouer l'autre. Dans son propre espace réseau, +# chaque processus a sa boucle locale et ses ports — aucun test n'a besoin d'un autre réseau. set -u ICI="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" @@ -48,7 +53,7 @@ lancer() { # $1 = fonction, $2 = fichier NDJSON du test rm -f "$2" ( cd "$BIN_DIR" && ETM_DECISIONS_OUT="$2" ETM_DECISIONS_EPOCH="$EPOQUE" \ systemd-run --user --scope -q -p MemoryMax=2G -p MemorySwapMax=0 \ - bwrap --dev-bind / / --tmpfs /tmp --bind "$BUILD" "$BUILD" --bind "$TRAVAIL" "$TRAVAIL" \ + bwrap --dev-bind / / --unshare-net --tmpfs /tmp --bind "$BUILD" "$BUILD" --bind "$TRAVAIL" "$TRAVAIL" \ --chdir "$BIN_DIR" \ ./target_wrapper.sh ./nymea-energy-decisions "$1" > "$TRAVAIL/$1.log" 2>&1 ) }