()
| 107 | |
| 108 | #[test] |
| 109 | fn lists() -> Result<()> { |
| 110 | let engine = super::engine(); |
| 111 | let mut store = Store::new(&engine, ()); |
| 112 | |
| 113 | let component = Component::new(&engine, make_echo_component("(list u32)", 8))?; |
| 114 | let instance = Linker::new(&engine).instantiate(&mut store, &component)?; |
| 115 | let func = instance.get_func(&mut store, "echo").unwrap(); |
| 116 | let input = Val::List(vec![ |
| 117 | Val::U32(32343), |
| 118 | Val::U32(79023439), |
| 119 | Val::U32(2084037802), |
| 120 | ]); |
| 121 | let mut output = [Val::Bool(false)]; |
| 122 | func.call(&mut store, &[input.clone()], &mut output)?; |
| 123 | |
| 124 | assert_eq!(input, output[0]); |
| 125 | |
| 126 | // Sad path: type mismatch |
| 127 | |
| 128 | let err = Val::List(vec![ |
| 129 | Val::U32(32343), |
| 130 | Val::U32(79023439), |
| 131 | Val::Float32(3.14159265), |
| 132 | ]); |
| 133 | let err = func.call(&mut store, &[err], &mut output).unwrap_err(); |
| 134 | assert!(err.to_string().contains("type mismatch"), "{err}"); |
| 135 | |
| 136 | Ok(()) |
| 137 | } |
| 138 | |
| 139 | #[test] |
| 140 | fn maps() -> Result<()> { |
nothing calls this directly
no test coverage detected