mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-16 19:59:56 +02:00
git_status, git_diff et git_clone (rust/loki-rs/src/tools/git.rs) quand la façade tient la conversation : dépôt deviné comme le Go (sous-dossier demandé, racine, unique sous-dossier dépôt), sorties mêlées et bornées, jamais d'invite, clone limité à https:// et git@hôte: et rangé dans le dossier de la discussion. Toujours sur cette machine, cible distante ou non, comme le Go. Parité : TestPariteOutilsGit (deux dépôts, l'un modifié, l'autre sans commit ; aucun appel réseau) range tests/parity_tools/git.json ; tests/tools_git.rs le retrouve à l'identique. Le rejeu des journaux des outils est partagé (tests/common/toolsfx.rs). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016tcGfJWefW5kUGoC2wL8cv
34 lines
1004 B
Rust
34 lines
1004 B
Rust
//! Parité des outils git avec le Go (lot 7) : `tests/parity_tools/git.json`
|
|
//! (`TestPariteOutilsGit`), rejoué dans `tools::exec_local`. Binaire à part :
|
|
//! la configuration de git de la machine est écartée par des variables
|
|
//! d'environnement, posées avant tout autre fil.
|
|
|
|
mod common;
|
|
|
|
#[tokio::test]
|
|
async fn outils_git_comme_le_go() {
|
|
if std::process::Command::new("git")
|
|
.arg("--version")
|
|
.output()
|
|
.is_err()
|
|
{
|
|
eprintln!("git absent : test sauté");
|
|
return;
|
|
}
|
|
// SAFETY : seul test de ce binaire, rien d'autre ne lit l'environnement.
|
|
unsafe {
|
|
std::env::set_var(
|
|
"GIT_CONFIG_GLOBAL",
|
|
if cfg!(windows) { "NUL" } else { "/dev/null" },
|
|
);
|
|
std::env::set_var("GIT_CONFIG_NOSYSTEM", "1");
|
|
}
|
|
let diffs = common::toolsfx::replay("git").await;
|
|
assert!(
|
|
diffs.is_empty(),
|
|
"{} écart(s) avec le Go :\n\n{}",
|
|
diffs.len(),
|
|
diffs.join("\n\n")
|
|
);
|
|
}
|