2.4 KiB
Delta 0.2.5-pre.006-fix.001 — alignement des tests de persistence sur le contrat Password
Base requise
livraison : 0.2.5-pre.006
workspace.package.version = "0.2.5-pre.6"
Motif
Les validations opérateur de pre.006 donnent :
cargo fmt --all OK
cargo check --workspace OK
cargo clippy --workspace --all-targets ECHEC dans les tests Wallet
Les nouveaux tests de persistence et de surface publique construisaient ViewPassword et OwnerPassword comme si leurs constructeurs avaient le contrat historique/hypothétique :
Password::new("...").expect("...")
Or le contrat acquis de pre.002+ est :
ViewPassword::new(String) -> ViewPassword
OwnerPassword::new(String) -> OwnerPassword
Les erreurs observées sont donc :
E0308 : expected `String`, found `&str`
E0599 : no method named `expect` found for `ViewPassword` / `OwnerPassword`
Le code de production de pre.006 compile ; l'incohérence est limitée aux nouveaux tests.
Correction
Les cinq constructions fautives sont alignées sur le contrat public existant avec std::string::String::from(...) et sans .expect(...) sur les wrappers Password.
Exemple :
let owner_password = crate::OwnerPassword::new(std::string::String::from("pre006-owner-password"));
Le correctif ne modifie pas :
ViewPasswordouOwnerPassword;- les règles de validation/password ;
- la persistence no-clobber ;
- le wire
.kspwalletV1 ; - les paramètres ou primitives cryptographiques ;
- les dépendances ;
- les API fichier introduites par
pre.006.
Version Cargo
Le correctif modifie des tests Rust participant au build :
0.2.5-pre.6 -> 0.2.5-pre.6.fix.1
Fichiers modifiés
Cargo.toml
crates/ksp-wallet-lib/unit_tests/persistence.rs
crates/ksp-wallet-lib/tests/public_api.rs
Fichiers ajoutés
deltas/0.2.5/pre.006-fix.001.md
Fichiers supprimés
Aucun.
Validation attendue après application
cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-wallet-lib
cargo test --workspace
Le cargo tree de pre.006 n'est pas modifié par ce fix ; les résultats opérateur déjà obtenus pour tempfile@3.27.0 restent valides.
Commit attendu
v0.2.5-pre.006-fix.001