| 4 | using namespace wasmtime; |
| 5 | |
| 6 | TEST(EqRef, CopyAndMove) { |
| 7 | Config config; |
| 8 | config.wasm_gc(true); |
| 9 | Engine engine(std::move(config)); |
| 10 | Store store(engine); |
| 11 | |
| 12 | auto cx = store.context(); |
| 13 | |
| 14 | // Create an i31 eqref. |
| 15 | EqRef eq = EqRef::from_i31(cx, 42); |
| 16 | EXPECT_TRUE(eq.is_i31(cx)); |
| 17 | |
| 18 | // Copy constructor |
| 19 | EqRef eq2(eq); |
| 20 | |
| 21 | // Move constructor |
| 22 | EqRef eq3(std::move(eq2)); |
| 23 | |
| 24 | // Copy assignment |
| 25 | EqRef eq4 = eq3; |
| 26 | |
| 27 | // Move assignment |
| 28 | EqRef eq5 = std::move(eq4); |
| 29 | |
| 30 | EXPECT_TRUE(eq.ty(cx).is_i31()); |
| 31 | |
| 32 | // Upcast to anyref and check value |
| 33 | AnyRef upcast = eq.to_anyref(); |
| 34 | auto val = upcast.u31(cx); |
| 35 | ASSERT_TRUE(val.has_value()); |
| 36 | EXPECT_EQ(*val, 42u); |
| 37 | |
| 38 | EXPECT_TRUE(upcast.ty(cx).is_i31()); |
| 39 | } |
| 40 | |
| 41 | TEST(EqRef, NullEqRef) { |
| 42 | wasmtime_eqref_t raw; |
nothing calls this directly
no test coverage detected