docs: Consolidate all plans into docs/plans/ directory
- Create new docs/plans/ directory with organized structure - Add comprehensive PLAN_deadlock_detection_prevention.md (15h plan) - ThreadSanitizer integration (2h) - Helgrind validation (3h) - std::scoped_lock refactoring (4h) - std::shared_mutex optimization (6h) - Migrate 16 plans from planTI/ to docs/plans/ - Rename all files to PLAN_*.md convention - Update README.md with index and statuses - Remove old planTI/ directory - Add run_all_tests.sh script for test automation Plans now include: - 1 active development plan (deadlock prevention) - 3 test architecture plans - 13 integration test scenario plans 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
063549bf17
commit
572e133f4e
1034
docs/plans/PLAN_deadlock_detection_prevention.md
Normal file
1034
docs/plans/PLAN_deadlock_detection_prevention.md
Normal file
File diff suppressed because it is too large
Load Diff
100
docs/plans/README.md
Normal file
100
docs/plans/README.md
Normal file
@ -0,0 +1,100 @@
|
||||
# Plans de Développement - GroveEngine
|
||||
|
||||
Ce dossier contient tous les plans de développement structurés pour le projet GroveEngine.
|
||||
|
||||
## 📋 Liste des Plans
|
||||
|
||||
### Plans Actifs
|
||||
|
||||
| Fichier | Sujet | Date | Durée | Statut |
|
||||
|---------|-------|------|-------|--------|
|
||||
| [PLAN_deadlock_detection_prevention.md](./PLAN_deadlock_detection_prevention.md) | Détection & Prévention Deadlock (TSan, Helgrind, scoped_lock, shared_mutex) | 2025-01-21 | 15h | 🟡 En cours |
|
||||
|
||||
### Plans Tests d'Intégration
|
||||
|
||||
| Fichier | Sujet | Date | Durée | Statut |
|
||||
|---------|-------|------|-------|--------|
|
||||
| [PLAN_integration_tests_global.md](./PLAN_integration_tests_global.md) | Plan global des tests d'intégration (13 scénarios) | 2024-11-13 | 5-7 jours | 🟢 Terminé |
|
||||
| [PLAN_architecture_tests.md](./PLAN_architecture_tests.md) | Architecture de la suite de tests d'intégration | 2024-11-13 | - | 🟢 Terminé |
|
||||
| [PLAN_seuils_success.md](./PLAN_seuils_success.md) | Seuils de succès pour les métriques de test | 2024-11-13 | - | 🟢 Terminé |
|
||||
|
||||
### Plans Scénarios Individuels (Tests d'Intégration)
|
||||
|
||||
| Fichier | Scénario | Description | Durée | Statut |
|
||||
|---------|----------|-------------|-------|--------|
|
||||
| [PLAN_scenario_01_production_hotreload.md](./PLAN_scenario_01_production_hotreload.md) | Production Hot-Reload | Hot-reload avec state complexe en conditions réelles | ~30s | 🟢 Implémenté |
|
||||
| [PLAN_scenario_02_chaos_monkey.md](./PLAN_scenario_02_chaos_monkey.md) | Chaos Monkey | Failures aléatoires (crashes, corruptions, recovery) | ~30s | 🟢 Implémenté |
|
||||
| [PLAN_scenario_03_stress_test.md](./PLAN_scenario_03_stress_test.md) | Stress Test | Long-running avec 120 reloads répétés sur 10 min | ~10min | 🟢 Implémenté |
|
||||
| [PLAN_scenario_04_race_condition.md](./PLAN_scenario_04_race_condition.md) | Race Condition Hunter | Compilation concurrente + reload automatique | ~10s | 🟢 Implémenté |
|
||||
| [PLAN_scenario_05_multimodule.md](./PLAN_scenario_05_multimodule.md) | Multi-Module Orchestration | Interactions entre plusieurs modules | ~1min | 🔴 Non implémenté |
|
||||
| [PLAN_scenario_07_limits.md](./PLAN_scenario_07_limits.md) | Limite Tests | Large state (100k particules), timeouts, corruption | ~3min | 🟢 Implémenté |
|
||||
| [PLAN_scenario_08_config_hotreload.md](./PLAN_scenario_08_config_hotreload.md) | Config Hot-Reload | Changement config à la volée, validation, rollback | ~1min | 🟢 Implémenté |
|
||||
| [PLAN_scenario_09_module_dependencies.md](./PLAN_scenario_09_module_dependencies.md) | Module Dependencies | Cascade reload, cycle detection, isolation | ~1min | 🟢 Implémenté |
|
||||
| [PLAN_scenario_10_multiversion_coexistence.md](./PLAN_scenario_10_multiversion_coexistence.md) | Multi-Version Coexistence | Canary deployment, progressive migration, rollback | ~2min | 🟢 Implémenté |
|
||||
| [PLAN_scenario_11_io_system.md](./PLAN_scenario_11_io_system.md) | IO System Stress | Pub/sub IntraIO, batching, backpressure, thread safety | ~1min | 🟢 Implémenté |
|
||||
| [PLAN_scenario_12_datanode.md](./PLAN_scenario_12_datanode.md) | DataNode Integration | Typed API, hashing, tree operations | ~30s | 🟢 Implémenté |
|
||||
| [PLAN_scenario_13_cross_system.md](./PLAN_scenario_13_cross_system.md) | Cross-System Integration | IO + DataNode, config hot-reload broadcasting | ~1min | 🟡 Deadlock à fixer |
|
||||
|
||||
## 📊 Statistiques
|
||||
|
||||
- **Plans totaux** : 17
|
||||
- **En cours** : 2 (Deadlock prevention, Scenario 13 fix)
|
||||
- **Terminés** : 14
|
||||
- **Non démarrés** : 1 (Scenario 05)
|
||||
|
||||
## 📝 Convention de Nommage
|
||||
|
||||
Format : `PLAN_<nom_descriptif>.md`
|
||||
|
||||
Exemples :
|
||||
- `PLAN_deadlock_detection_prevention.md` - Plan d'amélioration technique
|
||||
- `PLAN_integration_tests_global.md` - Plan global multi-scénarios
|
||||
- `PLAN_scenario_XX_<nom>.md` - Plan de test individuel
|
||||
- `PLAN_architecture_<nom>.md` - Document d'architecture
|
||||
|
||||
## 🗂️ Structure d'un Plan
|
||||
|
||||
Chaque plan devrait contenir :
|
||||
|
||||
1. **Vue d'ensemble**
|
||||
- Durée totale
|
||||
- Objectif principal
|
||||
- Tableau récapitulatif des phases
|
||||
|
||||
2. **Phases détaillées**
|
||||
- Phase 1, 2, 3...
|
||||
- Modifications précises (fichiers, lignes)
|
||||
- Exemples de code AVANT/APRÈS
|
||||
- Tests de validation
|
||||
|
||||
3. **Livrables**
|
||||
- Checklist de validation
|
||||
- Critères de succès
|
||||
|
||||
4. **Calendrier**
|
||||
- Timeline avec effort estimé
|
||||
|
||||
## 🎯 Statuts
|
||||
|
||||
- 🔴 Non démarré
|
||||
- 🟡 En cours
|
||||
- 🟢 Terminé
|
||||
- ⚫ Archivé
|
||||
|
||||
## 💡 Utilisation
|
||||
|
||||
1. **Créer un nouveau plan** lors d'une grosse feature
|
||||
2. **Suivre la structure standard**
|
||||
3. **Mettre à jour le statut** dans ce README
|
||||
4. **Archiver les plans terminés** (optionnel : déplacer vers `archive/`)
|
||||
|
||||
## 🔗 Liens Utiles
|
||||
|
||||
- [Tests d'intégration (répertoire)](../../tests/integration/)
|
||||
- [Documentation architecture](../architecture/)
|
||||
- [Guide de contribution](../../CONTRIBUTING.md)
|
||||
|
||||
---
|
||||
|
||||
**Dernière mise à jour** : 2025-01-21
|
||||
**Fichiers dans ce dossier** : 17 plans
|
||||
97
run_all_tests.sh
Normal file
97
run_all_tests.sh
Normal file
@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
# GroveEngine - Run All Integration Tests
|
||||
# Usage: ./run_all_tests.sh [options]
|
||||
#
|
||||
# Options:
|
||||
# --verbose Show full test output
|
||||
# --parallel Run tests in parallel (faster but harder to read)
|
||||
# --summary Only show pass/fail summary
|
||||
# --continue Continue running tests even if one fails
|
||||
|
||||
set -e
|
||||
|
||||
VERBOSE=false
|
||||
PARALLEL=false
|
||||
SUMMARY=false
|
||||
CONTINUE=false
|
||||
BUILD_DIR="build"
|
||||
|
||||
# Parse arguments
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--verbose|-v)
|
||||
VERBOSE=true
|
||||
shift
|
||||
;;
|
||||
--parallel|-j)
|
||||
PARALLEL=true
|
||||
shift
|
||||
;;
|
||||
--summary|-s)
|
||||
SUMMARY=true
|
||||
shift
|
||||
;;
|
||||
--continue|-c)
|
||||
CONTINUE=true
|
||||
shift
|
||||
;;
|
||||
--help|-h)
|
||||
echo "Usage: $0 [options]"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " --verbose, -v Show full test output"
|
||||
echo " --parallel, -j Run tests in parallel"
|
||||
echo " --summary, -s Only show pass/fail summary"
|
||||
echo " --continue, -c Continue running tests even if one fails"
|
||||
echo " --help, -h Show this help message"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option: $1"
|
||||
echo "Use --help for usage information"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Check if build directory exists
|
||||
if [ ! -d "$BUILD_DIR" ]; then
|
||||
echo "Error: Build directory '$BUILD_DIR' not found"
|
||||
echo "Run 'cmake -B build && cmake --build build' first"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$BUILD_DIR"
|
||||
|
||||
echo "════════════════════════════════════════════════════════════════"
|
||||
echo " GroveEngine - Integration Test Suite"
|
||||
echo "════════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
|
||||
# Run with CTest
|
||||
if [ "$PARALLEL" = true ]; then
|
||||
echo "Running tests in parallel..."
|
||||
if [ "$VERBOSE" = true ]; then
|
||||
ctest -j$(nproc) --output-on-failure
|
||||
else
|
||||
ctest -j$(nproc)
|
||||
fi
|
||||
elif [ "$SUMMARY" = true ]; then
|
||||
echo "Running tests (summary only)..."
|
||||
ctest --output-on-failure 2>&1 | grep -E "(Test|Passed|Failed|Total)"
|
||||
elif [ "$VERBOSE" = true ]; then
|
||||
echo "Running tests (verbose mode)..."
|
||||
ctest --verbose
|
||||
else
|
||||
echo "Running tests..."
|
||||
if [ "$CONTINUE" = true ]; then
|
||||
ctest --output-on-failure || true
|
||||
else
|
||||
ctest --output-on-failure
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "════════════════════════════════════════════════════════════════"
|
||||
echo " Test Run Complete"
|
||||
echo "════════════════════════════════════════════════════════════════"
|
||||
@ -32,8 +32,7 @@ public:
|
||||
private:
|
||||
std::vector<Tank> tanks;
|
||||
int frameCount = 0;
|
||||
std::string moduleVersion = "v1.0";
|
||||
std::shared_ptr<spdlog::logger> logger;
|
||||
std::string moduleVersion = "v1.0";std::shared_ptr<spdlog::logger> logger;
|
||||
std::unique_ptr<IDataNode> config;
|
||||
|
||||
void updateTank(Tank& tank, float dt);
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
#include <memory>
|
||||
|
||||
// This line will be modified by AutoCompiler during race condition tests
|
||||
std::string moduleVersion = "v11";
|
||||
std::string moduleVersion = "v1";
|
||||
|
||||
namespace grove {
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user