refact: Remove some lazy_static test globals

(cherry picked from commit 4f0ce4960ec468679993cc9fd70820f6d0532c09)
This commit is contained in:
Robert Hensing 2024-07-19 18:36:58 +02:00
parent ee6c04a941
commit b5f9764c4c

View file

@ -549,16 +549,10 @@ mod tests {
test_init(); test_init();
} }
lazy_static! {
pub static ref FUNCTION_ANONYMOUS: CString = CString::new("anonymous-primop").unwrap();
static ref FUNCTION_ANONYMOUS_ARG: CString = CString::new("x").unwrap();
static ref FUNCTION_ANONYMOUS_DOC: CString = CString::new("anonymous primop").unwrap();
}
/// A worse quality shortcut for calling [new_value_primop]. /// A worse quality shortcut for calling [new_value_primop].
pub fn new_value_function<const N: usize>( pub fn new_value_function<const N: usize>(
es: &mut EvalState, es: &mut EvalState,
name: *const i8, name: &CStr,
f: Box<dyn Fn(&mut EvalState, &[Value; N]) -> Result<Value>>, f: Box<dyn Fn(&mut EvalState, &[Value; N]) -> Result<Value>>,
) -> Result<Value> { ) -> Result<Value> {
if N == 0 { if N == 0 {
@ -573,16 +567,14 @@ mod tests {
); );
} }
let name = unsafe { CStr::from_ptr(name) }; let args: [&CStr; N] = [cstr!("arg"); N];
let args: [&CStr; N] = [FUNCTION_ANONYMOUS_ARG.as_ref(); N];
let prim = primop::PrimOp::new( let prim = primop::PrimOp::new(
es, es,
primop::PrimOpMeta { primop::PrimOpMeta {
name, name,
args, args,
doc: FUNCTION_ANONYMOUS_DOC.as_ref(), doc: cstr!("anonymous test function"),
}, },
f, f,
)?; )?;
@ -1370,7 +1362,7 @@ mod tests {
let bias_control = bias.clone(); let bias_control = bias.clone();
let f = new_value_function( let f = new_value_function(
&mut es, &mut es,
FUNCTION_ANONYMOUS.as_ptr(), cstr!("testFunction"),
Box::new(move |es, [a, b]| { Box::new(move |es, [a, b]| {
let a = es.require_int(a)?; let a = es.require_int(a)?;
let b = es.require_int(b)?; let b = es.require_int(b)?;
@ -1402,7 +1394,7 @@ mod tests {
let mut es = EvalState::new(store, []).unwrap(); let mut es = EvalState::new(store, []).unwrap();
let f = new_value_function( let f = new_value_function(
&mut es, &mut es,
FUNCTION_ANONYMOUS.as_ptr(), cstr!("throwingTestFunction"),
Box::new(move |es, [a]| { Box::new(move |es, [a]| {
let a = es.require_int(a)?; let a = es.require_int(a)?;
bail!("error with arg [{}]", a); bail!("error with arg [{}]", a);
@ -1431,7 +1423,7 @@ mod tests {
let mut es = EvalState::new(store, []).unwrap(); let mut es = EvalState::new(store, []).unwrap();
let v = new_value_function( let v = new_value_function(
&mut es, &mut es,
FUNCTION_ANONYMOUS.as_ptr(), cstr!("zeroArgTestFunction"),
Box::new(move |es, []| Ok(es.new_value_int(42)?)), Box::new(move |es, []| Ok(es.new_value_int(42)?)),
) )
.unwrap(); .unwrap();
@ -1452,7 +1444,7 @@ mod tests {
let mut es = EvalState::new(store, []).unwrap(); let mut es = EvalState::new(store, []).unwrap();
let v = new_value_function( let v = new_value_function(
&mut es, &mut es,
FUNCTION_ANONYMOUS.as_ptr(), cstr!("zeroArgTestFunction"),
Box::new(move |_es, []| { Box::new(move |_es, []| {
bail!("error message in test case eval_state_primop_anon_call_no_args_lazy") bail!("error message in test case eval_state_primop_anon_call_no_args_lazy")
}), }),