mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-20 21:48:47 +02:00
bash_bg et bash_tail des tours de la façade ne passent plus par /tool/exec du Go : src/tools/jobs.rs porte code_jobs.go. Refus avant lancement (commande vide ou dangereuse, optimisation en cours), journal .loki/jobs/<id>.log dans le dossier de la discussion, processus qui survit au tour, shell sans le jeton interne ; relecture bornée (40 lignes par défaut, 200 au plus), état et durée, arrêt relu aussitôt comme le Go. paths::go_mkdir_all reproduit os.MkdirAll, erreur comprise. Les jobs d'une discussion supprimée s'arrêtent avec elle. L'optimiseur du Go compte ceux de la façade (POST /internal/facade/v1/bgjobs) avant de mesurer ; façade injoignable : les siens seulement. Parité : journal de 24 étapes tiré du Go (parity_jobs_test.go → tests/parity_jobs/jobs.json), rejoué par tests/jobs.rs ; un tour de la façade qui lance un job (tests/lot6.rs) ; TestFacadeJobsArrierePlan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
36 lines
834 B
Go
36 lines
834 B
Go
package loki
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
// Lot 43 : les jobs d'arrière-plan des tours de la façade comptent pour
|
|
// l'optimiseur du Go ; façade en panne, seuls les siens.
|
|
func TestFacadeJobsArrierePlan(t *testing.T) {
|
|
testHome(t)
|
|
jobsMu.Lock()
|
|
saved := jobs
|
|
jobs = map[string]*bgJob{"job1": {ID: "job1"}}
|
|
jobsMu.Unlock()
|
|
t.Cleanup(func() {
|
|
jobsMu.Lock()
|
|
jobs = saved
|
|
jobsMu.Unlock()
|
|
})
|
|
f := demarrerFacade(t)
|
|
f.internalStatus = 200
|
|
f.internalBody = `{"running":2}`
|
|
if n := bgJobsRunning(); n != 3 {
|
|
t.Fatalf("jobs : %d, attendu 3 (1 ici, 2 à la façade)", n)
|
|
}
|
|
vu := f.recu()
|
|
if len(vu) != 1 || !strings.HasPrefix(vu[0], "POST /internal/facade/v1/bgjobs jeton ") {
|
|
t.Fatalf("appel : %v", vu)
|
|
}
|
|
f.internalStatus = 500
|
|
if n := bgJobsRunning(); n != 1 {
|
|
t.Fatalf("façade en panne : %d", n)
|
|
}
|
|
}
|