diff --git a/src/protocol/tests/eval_calls.rs b/src/protocol/tests/eval_calls.rs new file mode 100644 index 0000000000000000000000000000000000000000..46a5cfe377b50fb58dbd2ea76dbe31e8f631fb4d --- /dev/null +++ b/src/protocol/tests/eval_calls.rs @@ -0,0 +1,31 @@ +use super::*; +use crate::protocol::eval::*; + +#[test] +fn test_function_call() { + Tester::new_single_source_expect_ok("with literal arg", " + func add_two(u32 value) -> u32 { + return value + 2; + } + func foo() -> u32 { + return add_two(5); + } + ").for_function("foo", |f| { + f.call(Some(Value::UInt32(7))); + }); + + println!("\n\n\n\n\n\n\n"); + + Tester::new_single_source_expect_ok("with variable arg", " + func add_two(u32 value) -> u32 { + value += 1; + return value + 1; + } + func foo() -> bool { + auto initial = 5; + auto result = add_two(initial); + return initial == 5 && result == 7; + }").for_function("foo", |f| { + f.call(Some(Value::Bool(true))); + }); +} \ No newline at end of file