Testeur complet et pro pour la libft de l'École 42 — 281 tests, Valgrind intégré, sur-protection, interface lisible et logs détaillés.
git clone https://github.com/Blaeste/libfterator.git
cd libfterator
./tester.py /chemin/vers/votre/libft
# Exemple: ./tester.py ../libft
C'est tout ! Aucune dépendance requise. Fonctionne avec Python 3.6+ (installé par défaut sur les machines 42).
- ✅ Norminette intégrée (vérification automatique)
- 🧪 281 tests exhaustifs avec cas limites et edge cases
- 🔒 Validation de sur-protection (NULL pointers attendus)
- 🚰 Valgrind intégré avec fallback si non installé
- 🎨 Interface claire avec sous-sections par fonction
- 🧾 Logs complets et métriques détaillées
- 📚 Partie 1 — Fonctions de la libc: 149 tests
- 🔧 Partie 2 — Fonctions supplémentaires: 80 tests
- 🎁 Bonus — Listes chaînées: 19 tests
- 🚰 Valgrind — Fuites mémoire: 22 tests
- 🛡️ Validation — Sur-protection: 8 tests
# Lister tous les tests disponibles
./tester.py /chemin/vers/libft --list
# Exécuter tous les tests
./tester.py /chemin/vers/libft
# Exécuter une fonction spécifique
./tester.py /chemin/vers/libft --run strlen
./tester.py /chemin/vers/libft --run memcpy
./tester.py /chemin/vers/libft --run list
# Mode verbeux (progression + logs complets)
./tester.py /chemin/vers/libft --verbose
# Désactiver les couleurs (pratique pour les logs CI)
./tester.py /chemin/vers/libft --no-color
# Mode sécurisé (aucune modif temporaire côté projet)
./tester.py /chemin/vers/libft --safe
- --list: affiche tous les tests disponibles et leur nom exécutable
- --run : exécute une sous-section (ex: strlen, memcpy, list)
- --verbose: affiche la progression détaillée et les logs complets
- --no-color: désactive les couleurs (utile pour la CI/logs)
- Recherche de
libft.h
dansinc/
,include/
,includes/
,headers/
et sous-dossiers - Ajout automatique des
-I
nécessaires à la compilation - Pas besoin de déplacer
libft.h
à la racine
- Détection des fuites mémoire avec
--leak-check=full
et code retour d’erreur dédié - Couverture spécifique:
calloc
,strdup
,substr
,strjoin
,strtrim
,split
,itoa
,strmapi
, et fonctions bonus de listes - Fallback gracieux si Valgrind est absent (les tests fonctionnent quand même)
- Vérifie que certaines fonctions crashent sur
NULL
(comportement attendu par la libft) - Section séparée des tests normaux pour une lecture claire
- Affichage hiérarchique avec sous-sections par fonction (📂)
- Codes couleur: PASS ✅, FAIL ❌, LEAK 🚰
- Compteurs de progression et résumés en fin d’exécution
- Tous les résultats sont sauvegardés dans
out/
avec horodatage - Logs norminette, compilation, exécution et métriques
- Linux (recommandé) et WSL: support complet; Valgrind disponible via le gestionnaire de paquets
- macOS: fonctionnement OK; Valgrind n’est pas installé par défaut (fallback automatique)
- Windows natif: utilisez WSL pour une expérience optimale
- Valgrind n’est pas installé ? Les tests s’exécutent quand même, mais sans détection de fuites (fallback). Installez-le via votre gestionnaire de paquets pour activer la section fuites mémoire.
- Où sont les logs ? Dans le dossier
out/
, avec un horodatage par session. - Faut-il déplacer
libft.h
? Non. Le testeur détecte automatiquement les répertoires d’en-têtes et ajoute les-I
.
- Python 3.6+ (par défaut sur Linux des machines 42)
- Environnement POSIX (Linux/WSL conseillé). Valgrind est recommandé mais optionnel.
╔══════════════════════════════════════════════════════════════════╗
║ Libfterator 2025 ║
║ 281 tests • 5 sections • color ║
╚══════════════════════════════════════════════════════════════════╝
[norm] check ................................................ PASS
🔹 PARTIE 1 — Fonctions de la libc
📂 strlen
[ 1/281] basic ......................................... PASS
[ 2/281] empty ......................................... PASS
...
Résumé — 281/281 PASS • 0 LEAK
- Un grand merci aux beta testeurs qui ont aidé à stabiliser ce projet 🙌
- Issues: https://github.com/Blaeste/libfterator/issues