summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/exercise.rs10
-rw-r--r--src/main.rs12
-rw-r--r--tests/fixture/failure/exercises/compFailure.rs (renamed from tests/fixture/failure/compFailure.rs)0
-rw-r--r--tests/fixture/failure/exercises/compNoExercise.rs (renamed from tests/fixture/failure/compNoExercise.rs)0
-rw-r--r--tests/fixture/failure/exercises/testFailure.rs (renamed from tests/fixture/failure/testFailure.rs)0
-rw-r--r--tests/fixture/failure/exercises/testNotPassed.rs (renamed from tests/fixture/failure/testNotPassed.rs)0
-rw-r--r--tests/fixture/failure/info.toml4
-rw-r--r--tests/fixture/state/exercises/finished_exercise.rs (renamed from tests/fixture/state/finished_exercise.rs)0
-rw-r--r--tests/fixture/state/exercises/pending_exercise.rs (renamed from tests/fixture/state/pending_exercise.rs)0
-rw-r--r--tests/fixture/state/exercises/pending_test_exercise.rs (renamed from tests/fixture/state/pending_test_exercise.rs)0
-rw-r--r--tests/fixture/state/info.toml7
-rw-r--r--tests/fixture/success/exercises/compSuccess.rs (renamed from tests/fixture/success/compSuccess.rs)0
-rw-r--r--tests/fixture/success/exercises/testSuccess.rs (renamed from tests/fixture/success/testSuccess.rs)0
-rw-r--r--tests/fixture/success/info.toml4
14 files changed, 21 insertions, 16 deletions
diff --git a/src/exercise.rs b/src/exercise.rs
index 7c2e5fd..1125916 100644
--- a/src/exercise.rs
+++ b/src/exercise.rs
@@ -354,7 +354,7 @@ mod test {
File::create(temp_file()).unwrap();
let exercise = Exercise {
name: String::from("example"),
- path: PathBuf::from("tests/fixture/state/pending_exercise.rs"),
+ path: PathBuf::from("tests/fixture/state/exercises/pending_exercise.rs"),
mode: Mode::Compile,
hint: String::from(""),
};
@@ -372,7 +372,7 @@ mod test {
let exercise = Exercise {
name: String::from("example"),
// We want a file that does actually compile
- path: PathBuf::from("tests/fixture/state/pending_exercise.rs"),
+ path: PathBuf::from("tests/fixture/state/exercises/pending_exercise.rs"),
mode: *mode,
hint: String::from(""),
};
@@ -385,7 +385,7 @@ mod test {
fn test_pending_state() {
let exercise = Exercise {
name: "pending_exercise".into(),
- path: PathBuf::from("tests/fixture/state/pending_exercise.rs"),
+ path: PathBuf::from("tests/fixture/state/exercises/pending_exercise.rs"),
mode: Mode::Compile,
hint: String::new(),
};
@@ -426,7 +426,7 @@ mod test {
fn test_finished_exercise() {
let exercise = Exercise {
name: "finished_exercise".into(),
- path: PathBuf::from("tests/fixture/state/finished_exercise.rs"),
+ path: PathBuf::from("tests/fixture/state/exercises/finished_exercise.rs"),
mode: Mode::Compile,
hint: String::new(),
};
@@ -438,7 +438,7 @@ mod test {
fn test_exercise_with_output() {
let exercise = Exercise {
name: "exercise_with_output".into(),
- path: PathBuf::from("tests/fixture/success/testSuccess.rs"),
+ path: PathBuf::from("tests/fixture/success/exercises/testSuccess.rs"),
mode: Mode::Test,
hint: String::new(),
};
diff --git a/src/main.rs b/src/main.rs
index 76b6373..2ac44d5 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -9,6 +9,7 @@ use notify_debouncer_mini::notify::{self, RecursiveMode};
use notify_debouncer_mini::{new_debouncer, DebouncedEventKind};
use shlex::Shlex;
use std::ffi::OsStr;
+use std::fs;
use std::io::{self, prelude::*};
use std::path::Path;
use std::process::{exit, Command};
@@ -100,9 +101,14 @@ fn main() -> Result<()> {
std::process::exit(1);
}
- let exercises = toml_edit::de::from_str::<ExerciseList>(EMBEDDED_FILES.info_toml_content)
- .unwrap()
- .exercises;
+ // Read a local `info.toml` if it exists. Mainly to let the tests work for now.
+ let exercises = if let Ok(file_content) = fs::read_to_string("info.toml") {
+ toml_edit::de::from_str::<ExerciseList>(&file_content)
+ } else {
+ toml_edit::de::from_str::<ExerciseList>(EMBEDDED_FILES.info_toml_content)
+ }
+ .context("Failed to parse `info.toml`")?
+ .exercises;
if matches!(args.command, Some(Subcommands::Init)) {
init::init_rustlings(&exercises).context("Initialization failed")?;
diff --git a/tests/fixture/failure/compFailure.rs b/tests/fixture/failure/exercises/compFailure.rs
index 566856a..566856a 100644
--- a/tests/fixture/failure/compFailure.rs
+++ b/tests/fixture/failure/exercises/compFailure.rs
diff --git a/tests/fixture/failure/compNoExercise.rs b/tests/fixture/failure/exercises/compNoExercise.rs
index f79c691..f79c691 100644
--- a/tests/fixture/failure/compNoExercise.rs
+++ b/tests/fixture/failure/exercises/compNoExercise.rs
diff --git a/tests/fixture/failure/testFailure.rs b/tests/fixture/failure/exercises/testFailure.rs
index b33a5d2..b33a5d2 100644
--- a/tests/fixture/failure/testFailure.rs
+++ b/tests/fixture/failure/exercises/testFailure.rs
diff --git a/tests/fixture/failure/testNotPassed.rs b/tests/fixture/failure/exercises/testNotPassed.rs
index a9fe88d..a9fe88d 100644
--- a/tests/fixture/failure/testNotPassed.rs
+++ b/tests/fixture/failure/exercises/testNotPassed.rs
diff --git a/tests/fixture/failure/info.toml b/tests/fixture/failure/info.toml
index e5949f9..9474ee3 100644
--- a/tests/fixture/failure/info.toml
+++ b/tests/fixture/failure/info.toml
@@ -1,11 +1,11 @@
[[exercises]]
name = "compFailure"
-path = "compFailure.rs"
+path = "exercises/compFailure.rs"
mode = "compile"
hint = ""
[[exercises]]
name = "testFailure"
-path = "testFailure.rs"
+path = "exercises/testFailure.rs"
mode = "test"
hint = "Hello!"
diff --git a/tests/fixture/state/finished_exercise.rs b/tests/fixture/state/exercises/finished_exercise.rs
index 016b827..016b827 100644
--- a/tests/fixture/state/finished_exercise.rs
+++ b/tests/fixture/state/exercises/finished_exercise.rs
diff --git a/tests/fixture/state/pending_exercise.rs b/tests/fixture/state/exercises/pending_exercise.rs
index f579d0b..f579d0b 100644
--- a/tests/fixture/state/pending_exercise.rs
+++ b/tests/fixture/state/exercises/pending_exercise.rs
diff --git a/tests/fixture/state/pending_test_exercise.rs b/tests/fixture/state/exercises/pending_test_exercise.rs
index 8756f02..8756f02 100644
--- a/tests/fixture/state/pending_test_exercise.rs
+++ b/tests/fixture/state/exercises/pending_test_exercise.rs
diff --git a/tests/fixture/state/info.toml b/tests/fixture/state/info.toml
index 547b3a4..8de5d60 100644
--- a/tests/fixture/state/info.toml
+++ b/tests/fixture/state/info.toml
@@ -1,18 +1,17 @@
[[exercises]]
name = "pending_exercise"
-path = "pending_exercise.rs"
+path = "exercises/pending_exercise.rs"
mode = "compile"
hint = """"""
[[exercises]]
name = "pending_test_exercise"
-path = "pending_test_exercise.rs"
+path = "exercises/pending_test_exercise.rs"
mode = "test"
hint = """"""
[[exercises]]
name = "finished_exercise"
-path = "finished_exercise.rs"
+path = "exercises/finished_exercise.rs"
mode = "compile"
hint = """"""
-
diff --git a/tests/fixture/success/compSuccess.rs b/tests/fixture/success/exercises/compSuccess.rs
index f79c691..f79c691 100644
--- a/tests/fixture/success/compSuccess.rs
+++ b/tests/fixture/success/exercises/compSuccess.rs
diff --git a/tests/fixture/success/testSuccess.rs b/tests/fixture/success/exercises/testSuccess.rs
index 7139b50..7139b50 100644
--- a/tests/fixture/success/testSuccess.rs
+++ b/tests/fixture/success/exercises/testSuccess.rs
diff --git a/tests/fixture/success/info.toml b/tests/fixture/success/info.toml
index 68d3538..17ed8c6 100644
--- a/tests/fixture/success/info.toml
+++ b/tests/fixture/success/info.toml
@@ -1,11 +1,11 @@
[[exercises]]
name = "compSuccess"
-path = "compSuccess.rs"
+path = "exercises/compSuccess.rs"
mode = "compile"
hint = """"""
[[exercises]]
name = "testSuccess"
-path = "testSuccess.rs"
+path = "exercises/testSuccess.rs"
mode = "test"
hint = """"""