From 3fc462f90fec10cfacd3d81e944b11bb776a2941 Mon Sep 17 00:00:00 2001 From: mo8it Date: Thu, 1 Aug 2024 19:17:40 +0200 Subject: Fix tests --- src/dev/check.rs | 17 +++++++---------- src/dev/update.rs | 23 +++++++++-------------- 2 files changed, 16 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/dev/check.rs b/src/dev/check.rs index cf1d976..0b243b2 100644 --- a/src/dev/check.rs +++ b/src/dev/check.rs @@ -25,10 +25,13 @@ fn forbidden_char(input: &str) -> Option { // Check that the Cargo.toml file is up-to-date. fn check_cargo_toml( exercise_infos: &[ExerciseInfo], - current_cargo_toml: &str, + cargo_toml_path: &str, exercise_path_prefix: &[u8], ) -> Result<()> { - let (bins_start_ind, bins_end_ind) = bins_start_end_ind(current_cargo_toml)?; + let current_cargo_toml = fs::read_to_string(cargo_toml_path) + .with_context(|| format!("Failed to read the file `{cargo_toml_path}`"))?; + + let (bins_start_ind, bins_end_ind) = bins_start_end_ind(¤t_cargo_toml)?; let old_bins = ¤t_cargo_toml.as_bytes()[bins_start_ind..bins_end_ind]; let mut new_bins = Vec::with_capacity(BINS_BUFFER_CAPACITY); @@ -305,15 +308,9 @@ pub fn check(require_solutions: bool) -> Result<()> { if cfg!(debug_assertions) { // A hack to make `cargo run -- dev check` work when developing Rustlings. - check_cargo_toml( - &info_file.exercises, - include_str!("../../dev-Cargo.toml"), - b"../", - )?; + check_cargo_toml(&info_file.exercises, "dev/Cargo.toml", b"../")?; } else { - let current_cargo_toml = - fs::read_to_string("Cargo.toml").context("Failed to read the file `Cargo.toml`")?; - check_cargo_toml(&info_file.exercises, ¤t_cargo_toml, b"")?; + check_cargo_toml(&info_file.exercises, "Cargo.toml", b"")?; } let cmd_runner = CmdRunner::build()?; diff --git a/src/dev/update.rs b/src/dev/update.rs index 680d302..6de3c8f 100644 --- a/src/dev/update.rs +++ b/src/dev/update.rs @@ -9,12 +9,14 @@ use crate::{ // Update the `Cargo.toml` file. fn update_cargo_toml( exercise_infos: &[ExerciseInfo], - current_cargo_toml: &str, - exercise_path_prefix: &[u8], cargo_toml_path: &str, + exercise_path_prefix: &[u8], ) -> Result<()> { + let current_cargo_toml = fs::read_to_string(cargo_toml_path) + .with_context(|| format!("Failed to read the file `{cargo_toml_path}`"))?; + let updated_cargo_toml = - updated_cargo_toml(exercise_infos, current_cargo_toml, exercise_path_prefix)?; + updated_cargo_toml(exercise_infos, ¤t_cargo_toml, exercise_path_prefix)?; fs::write(cargo_toml_path, updated_cargo_toml) .context("Failed to write the `Cargo.toml` file")?; @@ -25,21 +27,14 @@ fn update_cargo_toml( pub fn update() -> Result<()> { let info_file = InfoFile::parse()?; - // A hack to make `cargo run -- dev update` work when developing Rustlings. if cfg!(debug_assertions) { - update_cargo_toml( - &info_file.exercises, - include_str!("../../dev-Cargo.toml"), - b"../", - "dev/Cargo.toml", - ) - .context("Failed to update the file `dev/Cargo.toml`")?; + // A hack to make `cargo run -- dev update` work when developing Rustlings. + update_cargo_toml(&info_file.exercises, "dev/Cargo.toml", b"../") + .context("Failed to update the file `dev/Cargo.toml`")?; println!("Updated `dev/Cargo.toml`"); } else { - let current_cargo_toml = - fs::read_to_string("Cargo.toml").context("Failed to read the file `Cargo.toml`")?; - update_cargo_toml(&info_file.exercises, ¤t_cargo_toml, b"", "Cargo.toml") + update_cargo_toml(&info_file.exercises, "Cargo.toml", &[]) .context("Failed to update the file `Cargo.toml`")?; println!("Updated `Cargo.toml`"); -- cgit v1.2.3