# Test du script bench.sh avec corrections

## Corrections appliquées

1. ✅ **Migration 002 appliquée** - Ajout de la colonne `network_results_json` à la table `benchmarks`
2. ✅ **Payload RAM corrigé** - Ajout de `used_mb`, `free_mb`, `shared_mb` dans le payload JSON
3. ✅ **Mode debug implémenté** - Variable `DEBUG_PAYLOAD=1` pour afficher le payload complet

## Comment tester

### Test normal (sans debug)
```bash
sudo bash /home/gilles/Documents/vscode/serv_benchmark/scripts/bench.sh
```

### Test avec debug (affiche le payload)
```bash
DEBUG_PAYLOAD=1 sudo bash /home/gilles/Documents/vscode/serv_benchmark/scripts/bench.sh
```

Le mode debug va :
1. Afficher le payload JSON complet formaté
2. Sauvegarder le fichier dans `/tmp/bench_payload_YYYYMMDD_HHMMSS.json`
3. Demander confirmation avant d'envoyer

## Problèmes résolus

### 1. Erreur HTTP 500
**Cause** : Colonne `network_results_json` manquante dans la base de données
**Solution** : Migration SQL appliquée directement via Docker

```sql
ALTER TABLE benchmarks ADD COLUMN network_results_json TEXT;
```

### 2. Données RAM manquantes dans le payload
**Cause** : Le script collectait les données (used_mb, free_mb, shared_mb) mais ne les incluait pas dans le payload JSON
**Solution** : Ajout des champs dans la construction du payload (lignes 869-871 du script)

**Avant** :
```javascript
ram: {
  total_mb: .total_mb,
  slots_total: .slots_total,
  // ... manque used_mb, free_mb, shared_mb
}
```

**Après** :
```javascript
ram: {
  total_mb: .total_mb,
  used_mb: .used_mb,         // ✅ AJOUTÉ
  free_mb: .free_mb,         // ✅ AJOUTÉ
  shared_mb: .shared_mb,     // ✅ AJOUTÉ
  slots_total: .slots_total,
  // ...
}
```

### 3. Debug du payload
**Implémentation** : Mode debug avec variable d'environnement

```bash
# Activer le debug
DEBUG_PAYLOAD=1 sudo bash scripts/bench.sh

# Le script affichera :
# ════════════════════════════════════════════════════════
# DEBUG: Payload JSON complet
# ════════════════════════════════════════════════════════
# {
#   "device_identifier": "lenovo-bureau",
#   "bench_script_version": "1.1.0",
#   "hardware": {
#     "cpu": { ... },
#     "ram": {
#       "total_mb": 7771,
#       "used_mb": 4530,      // ✅ Maintenant présent
#       "free_mb": 1291,      // ✅ Maintenant présent
#       "shared_mb": 1950,    // ✅ Maintenant présent
#       ...
#     },
#     ...
#   },
#   "results": {
#     "network": {
#       "upload_mbps": 427.86,
#       "download_mbps": 398.94,
#       "ping_ms": 44.16,
#       ...
#     }
#   }
# }
# ════════════════════════════════════════════════════════
# ✓ Payload sauvegardé dans: /tmp/bench_payload_20251207_233745.json
#
# Appuyez sur Entrée pour continuer l'envoi ou Ctrl+C pour annuler...
```

## Vérification frontend

Après un nouveau benchmark réussi, vérifier dans l'interface web :

1. **Section RAM** : Doit afficher le pourcentage d'utilisation et les détails
   ```
   💾 RAM: 8 GB (58% utilisé)
       Utilisée: 4GB • Libre: 1GB • Partagée: 2GB
       4 / 4 slots
   ```

2. **Section Réseau** : Doit afficher les interfaces avec WoL et les résultats iperf3
   ```
   🔌 eno1 (ethernet)                    [WoL ✓]
       IP: 10.0.1.169
       MAC: xx:xx:xx:xx:xx:xx
       Vitesse: 1000 Mbps

   📈 Résultats Benchmark Réseau (iperf3)
   ↑ 427.86         ↓ 398.94        44.16           41.34
   Upload Mbps     Download Mbps    Ping ms         Score
   ```

## Prochaines étapes

1. Lancer un nouveau benchmark : `sudo bash scripts/bench.sh`
2. Vérifier qu'il n'y a plus d'erreur HTTP 500
3. Consulter la page device detail dans l'interface web
4. Vérifier l'affichage des nouvelles données RAM et réseau
