From 1f17a20767c15e1d37f5bf7aeae0516c8c4e2d12 Mon Sep 17 00:00:00 2001 From: Aleksander Einarsen <aleksace@stud.ntnu.no> Date: Thu, 17 Oct 2024 08:13:00 +0200 Subject: [PATCH] #86 Changed cargo check to cargo build, and added cargo test and test files for running code with tests --- .../rust_compiler_v2/rust_compiler.go | 4 ++- .../rust_compiler_v2/rust_compiler_test.go | 10 ++++++ .../should_compile_and_run_tests | 36 +++++++++++++++++++ .../should_compile_with_faulty_test | 32 +++++++++++++++++ 4 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 modules/compiler_v2/rust_compiler_v2/should_compile_and_run_tests create mode 100644 modules/compiler_v2/rust_compiler_v2/should_compile_with_faulty_test diff --git a/modules/compiler_v2/rust_compiler_v2/rust_compiler.go b/modules/compiler_v2/rust_compiler_v2/rust_compiler.go index 9078256..6dd5f45 100644 --- a/modules/compiler_v2/rust_compiler_v2/rust_compiler.go +++ b/modules/compiler_v2/rust_compiler_v2/rust_compiler.go @@ -44,7 +44,9 @@ func (gb *RustCompiler) CheckCompileErrors(srcCode []byte, dependencies ...strin } // Run go build - cmdString += " cargo check" + cmdString += " cargo build" + + cmdString += " && cargo test" //cmdSlice := strings.Fields(cmdString) cmd := utils.MakeCommand(cmdString) diff --git a/modules/compiler_v2/rust_compiler_v2/rust_compiler_test.go b/modules/compiler_v2/rust_compiler_v2/rust_compiler_test.go index 4e3d3e0..169049b 100644 --- a/modules/compiler_v2/rust_compiler_v2/rust_compiler_test.go +++ b/modules/compiler_v2/rust_compiler_v2/rust_compiler_test.go @@ -27,6 +27,16 @@ func TestCompileStringToRust(t *testing.T) { shouldCompile: true, dependencies: []string{"rand", "colored"}, }, + { + filename: "should_compile_and_run_tests", + shouldCompile: true, + dependencies: nil, + }, + { + filename: "should_compile_with_faulty_test", + shouldCompile: false, + dependencies: nil, + }, } for _, test := range tests { diff --git a/modules/compiler_v2/rust_compiler_v2/should_compile_and_run_tests b/modules/compiler_v2/rust_compiler_v2/should_compile_and_run_tests new file mode 100644 index 0000000..1a75cfa --- /dev/null +++ b/modules/compiler_v2/rust_compiler_v2/should_compile_and_run_tests @@ -0,0 +1,36 @@ +fn divide(a: f64, b: f64) -> Result<f64, String> { + if b == 0.0 { + return Err(String::from("Cannot divide by zero")); + } + Ok(a / b) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_divide_positive_numbers() { + let result = divide(10.0, 2.0); + assert_eq!(result.unwrap(), 5.0); + } + + #[test] + fn test_divide_negative_numbers() { + let result = divide(-10.0, 2.0); + assert_eq!(result.unwrap(), -5.0); + } + + #[test] + fn test_divide_by_zero() { + let result = divide(10.0, 0.0); + assert!(result.is_err()); + } +} + +fn main() { + match divide(10.0, 2.0) { + Ok(result) => println!("10.0 divided by 2.0 is {}", result), + Err(e) => println!("Error: {}", e), + } +} diff --git a/modules/compiler_v2/rust_compiler_v2/should_compile_with_faulty_test b/modules/compiler_v2/rust_compiler_v2/should_compile_with_faulty_test new file mode 100644 index 0000000..d22217d --- /dev/null +++ b/modules/compiler_v2/rust_compiler_v2/should_compile_with_faulty_test @@ -0,0 +1,32 @@ +// Function to add two numbers +fn add(a: i32, b: i32) -> i32 { + a + b +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_add_positive_numbers() { + let result = add(2, 3); + assert_eq!(result, 5); + } + + #[test] + fn test_add_negative_numbers() { + let result = add(-2, -3); + assert_eq!(result, -5); + } + + #[test] + fn test_add_faulty() { + // This test is intentionally faulty + let result = add(2, 2); + assert_eq!(result, 5); // This will fail because 2 + 2 is actually 4 + } +} + +fn main() { + println!("2 + 3 = {}", add(2, 3)); +} -- GitLab