Skip to content

Blaeste/libfterator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Libfterator 2025

Tests Norminette 42 School

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.

⚡ Installation ultra-rapide (copier/coller)

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).


✨ Points forts

  • ✅ 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

🎯 Couverture des tests (281)

  • 📚 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

💡 Utilisation rapide

# 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

🧰 Options

  • --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)

🌟 Fonctionnalités avancées

🔍 Détection automatique des headers

  • Recherche de libft.h dans inc/, include/, includes/, headers/ et sous-dossiers
  • Ajout automatique des -I nécessaires à la compilation
  • Pas besoin de déplacer libft.h à la racine

🚰 Tests Valgrind intégrés

  • 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)

🛡️ Tests de sur-protection

  • Vérifie que certaines fonctions crashent sur NULL (comportement attendu par la libft)
  • Section séparée des tests normaux pour une lecture claire

🎨 Interface lisible

  • 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

🧾 Système de logs

  • Tous les résultats sont sauvegardés dans out/ avec horodatage
  • Logs norminette, compilation, exécution et métriques

🧩 Compatibilité

  • 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

❓ FAQ rapide

  • 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.

🖥️ Pré-requis

  • Python 3.6+ (par défaut sur Linux des machines 42)
  • Environnement POSIX (Linux/WSL conseillé). Valgrind est recommandé mais optionnel.

🧪 Exemple de sortie (extrait)

╔══════════════════════════════════════════════════════════════════╗
║                          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

🤝 Beta testeurs et support


⭐ Si ce projet vous aide, pensez à lui mettre une étoile ⭐

🏠 Accueil🐛 Issues

About

Automated, Valgrind-aware test suite for libft (42 School) — 281 tests, CI-ready.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages