| 34 | using namespace tvm::ffi::testing; |
| 35 | |
| 36 | TEST(Func, FromPacked) { |
| 37 | Function fadd1 = Function::FromPacked([](const AnyView* args, int32_t num_args, Any* rv) { |
| 38 | EXPECT_EQ(num_args, 1); |
| 39 | int32_t a = args[0].cast<int32_t>(); |
| 40 | *rv = a + 1; |
| 41 | }); |
| 42 | int b = fadd1(1).cast<int>(); |
| 43 | EXPECT_EQ(b, 2); |
| 44 | |
| 45 | Function fadd2 = Function::FromPacked([](const AnyView* args, int32_t num_args, Any* rv) { |
| 46 | EXPECT_EQ(num_args, 1); |
| 47 | auto a = args[0].cast<TInt>(); |
| 48 | EXPECT_EQ(a.use_count(), 2); |
| 49 | *rv = a->value + 1; |
| 50 | }); |
| 51 | EXPECT_EQ(fadd2(TInt(12)).cast<int>(), 13); |
| 52 | } |
| 53 | |
| 54 | TEST(Func, PackedArgs) { |
| 55 | Function fadd1 = Function::FromPacked([](PackedArgs args, Any* rv) { |
nothing calls this directly
no test coverage detected