mirror of
https://github.com/roc-lang/roc.git
synced 2025-10-02 08:11:12 +00:00
Simplify expect_runtime_error_panic
This commit is contained in:
parent
c512b76cdb
commit
0a94f82bc6
1 changed files with 12 additions and 52 deletions
|
@ -509,31 +509,16 @@ where
|
||||||
|
|
||||||
#[allow(unused_macros)]
|
#[allow(unused_macros)]
|
||||||
macro_rules! assert_wasm_evals_to {
|
macro_rules! assert_wasm_evals_to {
|
||||||
($src:expr, $expected:expr, $ty:ty, $transform:expr, $ignore_problems:expr, $expect_failure:expr) => {
|
($src:expr, $expected:expr, $ty:ty, $transform:expr, $ignore_problems:expr) => {
|
||||||
match $crate::helpers::llvm::assert_wasm_evals_to_help::<$ty>($src, $ignore_problems) {
|
match $crate::helpers::llvm::assert_wasm_evals_to_help::<$ty>($src, $ignore_problems) {
|
||||||
Err(msg) => panic!("Wasm test failed: {:?}", msg),
|
Err(msg) => panic!("Wasm test failed: {:?}", msg),
|
||||||
Ok(actual) => {
|
Ok(actual) => {
|
||||||
if $expect_failure {
|
#[allow(clippy::bool_assert_comparison)]
|
||||||
assert!(false, "Expected failure during wasm execution!")
|
assert_eq!($transform(actual), $expected, "Wasm test failed")
|
||||||
} else {
|
|
||||||
#[allow(clippy::bool_assert_comparison)]
|
|
||||||
assert_eq!($transform(actual), $expected, "Wasm test failed")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
($src:expr, $expected:expr, $ty:ty, $transform:expr, $ignore_problems:expr) => {
|
|
||||||
$crate::helpers::llvm::assert_wasm_evals_to!(
|
|
||||||
$src,
|
|
||||||
$expected,
|
|
||||||
$ty,
|
|
||||||
$crate::helpers::llvm::identity,
|
|
||||||
$ignore_problems,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
($src:expr, $expected:expr, $ty:ty) => {
|
($src:expr, $expected:expr, $ty:ty) => {
|
||||||
$crate::helpers::llvm::assert_wasm_evals_to!(
|
$crate::helpers::llvm::assert_wasm_evals_to!(
|
||||||
$src,
|
$src,
|
||||||
|
@ -551,7 +536,7 @@ macro_rules! assert_wasm_evals_to {
|
||||||
|
|
||||||
#[allow(unused_macros)]
|
#[allow(unused_macros)]
|
||||||
macro_rules! assert_llvm_evals_to {
|
macro_rules! assert_llvm_evals_to {
|
||||||
($src:expr, $expected:expr, $ty:ty, $transform:expr, $ignore_problems:expr, $expect_rt_error:expr) => {
|
($src:expr, $expected:expr, $ty:ty, $transform:expr, $ignore_problems:expr) => {
|
||||||
use bumpalo::Bump;
|
use bumpalo::Bump;
|
||||||
use inkwell::context::Context;
|
use inkwell::context::Context;
|
||||||
use roc_gen_llvm::run_jit_function;
|
use roc_gen_llvm::run_jit_function;
|
||||||
|
@ -573,47 +558,26 @@ macro_rules! assert_llvm_evals_to {
|
||||||
);
|
);
|
||||||
|
|
||||||
let transform = |success| {
|
let transform = |success| {
|
||||||
if $expect_rt_error {
|
let expected = $expected;
|
||||||
assert_eq!(
|
#[allow(clippy::redundant_closure_call)]
|
||||||
true, false,
|
let given = $transform(success);
|
||||||
"Runtime error expected, but evaluation succeeded!"
|
assert_eq!(&given, &expected, "LLVM test failed");
|
||||||
)
|
|
||||||
} else {
|
|
||||||
let expected = $expected;
|
|
||||||
#[allow(clippy::redundant_closure_call)]
|
|
||||||
let given = $transform(success);
|
|
||||||
assert_eq!(&given, &expected, "LLVM test failed");
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
run_jit_function!(lib, main_fn_name, $ty, transform, errors)
|
run_jit_function!(lib, main_fn_name, $ty, transform, errors)
|
||||||
};
|
};
|
||||||
|
|
||||||
($src:expr, $expected:expr, $ty:ty, $transform:expr, $ignore_problems:expr) => {
|
|
||||||
$crate::helpers::llvm::assert_llvm_evals_to!(
|
|
||||||
$src,
|
|
||||||
$expected,
|
|
||||||
$ty,
|
|
||||||
$transform,
|
|
||||||
$ignore_problems,
|
|
||||||
false
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
($src:expr, $expected:expr, $ty:ty) => {
|
($src:expr, $expected:expr, $ty:ty) => {
|
||||||
$crate::helpers::llvm::assert_llvm_evals_to!(
|
$crate::helpers::llvm::assert_llvm_evals_to!(
|
||||||
$src,
|
$src,
|
||||||
$expected,
|
$expected,
|
||||||
$ty,
|
$ty,
|
||||||
$crate::helpers::llvm::identity,
|
$crate::helpers::llvm::identity,
|
||||||
false,
|
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
($src:expr, $expected:expr, $ty:ty, $transform:expr) => {
|
($src:expr, $expected:expr, $ty:ty, $transform:expr) => {
|
||||||
$crate::helpers::llvm::assert_llvm_evals_to!(
|
$crate::helpers::llvm::assert_llvm_evals_to!($src, $expected, $ty, $transform, false);
|
||||||
$src, $expected, $ty, $transform, false, false
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -630,9 +594,7 @@ macro_rules! assert_evals_to {
|
||||||
$src, $expected, $ty, $transform, false, false
|
$src, $expected, $ty, $transform, false, false
|
||||||
);
|
);
|
||||||
|
|
||||||
$crate::helpers::llvm::assert_llvm_evals_to!(
|
$crate::helpers::llvm::assert_llvm_evals_to!($src, $expected, $ty, $transform, false);
|
||||||
$src, $expected, $ty, $transform, false, false
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -645,8 +607,7 @@ macro_rules! expect_runtime_error_panic {
|
||||||
false, // fake value/type for eval
|
false, // fake value/type for eval
|
||||||
bool,
|
bool,
|
||||||
$crate::helpers::llvm::identity,
|
$crate::helpers::llvm::identity,
|
||||||
true, // ignore problems
|
true // ignore problems
|
||||||
true // expect runtime error
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$crate::helpers::llvm::assert_llvm_evals_to!(
|
$crate::helpers::llvm::assert_llvm_evals_to!(
|
||||||
|
@ -654,8 +615,7 @@ macro_rules! expect_runtime_error_panic {
|
||||||
false, // fake value/type for eval
|
false, // fake value/type for eval
|
||||||
bool,
|
bool,
|
||||||
$crate::helpers::llvm::identity,
|
$crate::helpers::llvm::identity,
|
||||||
true, // ignore problems
|
true // ignore problems
|
||||||
true // expect runtime error
|
|
||||||
);
|
);
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue