From 3fc462f90fec10cfacd3d81e944b11bb776a2941 Mon Sep 17 00:00:00 2001 From: mo8it Date: Thu, 1 Aug 2024 19:17:40 +0200 Subject: [PATCH] Fix tests --- src/dev/check.rs | 17 +++++++---------- src/dev/update.rs | 23 +++++++++-------------- tests/test_exercises/Cargo.toml | 11 ----------- tests/test_exercises/dev/Cargo.toml | 11 +++++++++++ 4 files changed, 27 insertions(+), 35 deletions(-) delete mode 100644 tests/test_exercises/Cargo.toml create mode 100644 tests/test_exercises/dev/Cargo.toml diff --git a/src/dev/check.rs b/src/dev/check.rs index cf1d9760..0b243b2f 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 680d302f..6de3c8f7 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`"); diff --git a/tests/test_exercises/Cargo.toml b/tests/test_exercises/Cargo.toml deleted file mode 100644 index 6b817518..00000000 --- a/tests/test_exercises/Cargo.toml +++ /dev/null @@ -1,11 +0,0 @@ -bin = [ - { name = "compilation_success", path = "exercises/compilation_success.rs" }, - { name = "compilation_failure", path = "exercises/compilation_failure.rs" }, - { name = "test_success", path = "exercises/test_success.rs" }, - { name = "test_failure", path = "exercises/test_failure.rs" }, -] - -[package] -name = "test_exercises" -edition = "2021" -publish = false diff --git a/tests/test_exercises/dev/Cargo.toml b/tests/test_exercises/dev/Cargo.toml new file mode 100644 index 00000000..01fe7c10 --- /dev/null +++ b/tests/test_exercises/dev/Cargo.toml @@ -0,0 +1,11 @@ +bin = [ + { name = "compilation_success", path = "../exercises/compilation_success.rs" }, + { name = "compilation_failure", path = "../exercises/compilation_failure.rs" }, + { name = "test_success", path = "../exercises/test_success.rs" }, + { name = "test_failure", path = "../exercises/test_failure.rs" }, +] + +[package] +name = "test_exercises" +edition = "2021" +publish = false