mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-20 21:48:47 +02:00
Lot 28 : tests contre les mutations survivantes de l'optimiseur
105 mutations du verrou et du job ; le premier passage en tuait 39. Les survivantes le sont désormais par des tests ajoutés : - l'essai noté dans le verrou pendant la mesure, la sauvegarde notée avant d'écrire, l'application refusée pendant la mesure, la cible inconnue ; - l'application gardée : preset qui n'est plus en service, API externe, clé changée ailleurs pendant l'application (défaite) ; - l'application planifiée : clé sur option refusée sans l'option ; - l'essai muet (délai de chargement), /props sans default_generation_settings, SIDE_SLOT sur un seul slot, threads comptés sur les cœurs de la sonde, aucun changement de moteur signalé quand son build est inconnu ; - VRAM mesurée par un faux nvidia-smi, budget, profondeur, notes et poids, écarts de mesure, essais écartés, moteur piloté par la façade. nvidia-smi, la pause entre deux lectures de VRAM et l'unité du budget deviennent réglables (tests). Le test de l'essai orphelin lit l'identité du processus une fois l'exec visible dans /proc : lue trop tôt, elle portait l'exécutable du test (échec intermittent en CI). Les vingt survivantes restantes, équivalentes ou hors de portée d'un test (courses, estimation seulement), sont décrites dans la spec. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
This commit is contained in:
6 files changed
+963
-52
No files matched your search
@@ -81,6 +81,9 @@ pub struct FakeGo {
|
||||
/// /internal/v1/preset/apply écrit-il le preset dans la configuration
|
||||
/// (`applyPresetFile` : clés « appareil » et BIN de la machine gardés) ?
|
||||
pub apply_presets: Mutex<bool>,
|
||||
/// Clés que l'application d'un preset ajoute à la configuration (un
|
||||
/// réglage changé ailleurs pendant l'application).
|
||||
pub apply_extra: Mutex<Vec<(String, String)>>,
|
||||
/// /internal/v1/chat/generating : le Go écrit une réponse.
|
||||
pub generating: Mutex<bool>,
|
||||
/// /internal/v1/service/prestart reçus.
|
||||
@@ -571,6 +574,9 @@ async fn handle(st: Arc<FakeGo>, req: Request<Incoming>) -> Response<Full<Bytes>
|
||||
if let Some(bin) = cur.get("BIN").filter(|v| !v.is_empty()) {
|
||||
next.insert("BIN".into(), String::from_utf8_lossy(bin).into_owned());
|
||||
}
|
||||
for (k, v) in st.apply_extra.lock().unwrap().iter() {
|
||||
next.insert(k.clone(), v.clone());
|
||||
}
|
||||
*cur = next.into_iter().map(|(k, v)| (k, v.into_bytes())).collect();
|
||||
}
|
||||
st.preset_applies.lock().unwrap().push((path, mode));
|
||||
|
||||
Reference in new issue
Block a user