summaryrefslogtreecommitdiff
path: root/src/util.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.rs')
-rw-r--r--src/util.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/util.rs b/src/util.rs
index 4a96ee9..8fcf693 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -1,4 +1,29 @@
use std::fs::remove_file;
+use std::process::{Command, Output};
+
+const RUSTC_COLOR_ARGS: &[&str] = &["--color", "always"];
+
+pub fn compile_test_cmd(filename: &str) -> Output {
+ Command::new("rustc")
+ .args(&["--test", filename, "-o", "temp"])
+ .args(RUSTC_COLOR_ARGS)
+ .output()
+ .expect("failed to compile exercise")
+}
+
+pub fn compile_cmd(filename: &str) -> Output {
+ Command::new("rustc")
+ .args(&[filename, "-o", "temp"])
+ .args(RUSTC_COLOR_ARGS)
+ .output()
+ .expect("failed to compile exercise")
+}
+
+pub fn run_cmd() -> Output {
+ Command::new("./temp")
+ .output()
+ .expect("failed to run exercise")
+}
pub fn clean() {
let _ignored = remove_file("temp");