MCPcopy Create free account
hub / github.com/WasmEdge/WasmEdge / TEST

Function TEST

test/component/ComponentLoaderTest.cpp:21–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19using namespace std::literals;
20
21TEST(ComponentNameParserTest, Parse) {
22 {
23 auto CName = Validator::ComponentName::parse("[constructor]my-class"sv);
24 ASSERT_TRUE(CName.has_value());
25 EXPECT_EQ(CName->getKind(), Validator::ComponentNameKind::Constructor);
26 EXPECT_EQ(CName->getDetail().get<Validator::ConstructorDetail>().Label,
27 "my-class"sv);
28 EXPECT_EQ(CName->getNoTagName(), "my-class"sv);
29 EXPECT_EQ(CName->getOriginalName(), "[constructor]my-class"sv);
30 }
31 {
32 auto CName =
33 Validator::ComponentName::parse("[method]my-resource.my-method"sv);
34 ASSERT_TRUE(CName.has_value());
35 EXPECT_EQ(CName->getKind(), Validator::ComponentNameKind::Method);
36 EXPECT_EQ(CName->getDetail().get<Validator::MethodDetail>().Resource,
37 "my-resource"sv);
38 EXPECT_EQ(CName->getDetail().get<Validator::MethodDetail>().Method,
39 "my-method"sv);
40 EXPECT_EQ(CName->getNoTagName(), "my-resource.my-method"sv);
41 EXPECT_EQ(CName->getOriginalName(), "[method]my-resource.my-method"sv);
42 }
43 {
44 auto CName =
45 Validator::ComponentName::parse("[static]my-resource.my-method"sv);
46 ASSERT_TRUE(CName.has_value());
47 EXPECT_EQ(CName->getKind(), Validator::ComponentNameKind::Static);
48 EXPECT_EQ(CName->getDetail().get<Validator::StaticDetail>().Resource,
49 "my-resource"sv);
50 EXPECT_EQ(CName->getDetail().get<Validator::StaticDetail>().Method,
51 "my-method"sv);
52 EXPECT_EQ(CName->getNoTagName(), "my-resource.my-method"sv);
53 EXPECT_EQ(CName->getOriginalName(), "[static]my-resource.my-method"sv);
54 }
55 {
56 auto CName = Validator::ComponentName::parse(
57 "name-space:a-label/projection-label@1.2.3"sv);
58 ASSERT_TRUE(CName.has_value());
59 EXPECT_EQ(CName->getKind(), Validator::ComponentNameKind::InterfaceType);
60 auto &D = CName->getDetail().get<Validator::InterfaceDetail>();
61 EXPECT_EQ(D.Namespace, "name-space"sv);
62 EXPECT_EQ(D.Package, "a-label"sv);
63 EXPECT_EQ(D.Interface, "projection-label"sv);
64 EXPECT_EQ(D.Version, "1.2.3"sv);
65 }
66 // Invalid names
67 EXPECT_FALSE(Validator::ComponentName::parse("[constructor]"sv));
68 EXPECT_FALSE(Validator::ComponentName::parse("[method]"sv));
69 EXPECT_FALSE(Validator::ComponentName::parse("[method]resource"sv));
70 EXPECT_FALSE(Validator::ComponentName::parse("[unknown]label"sv));
71 EXPECT_FALSE(Validator::ComponentName::parse(""sv));
72 EXPECT_FALSE(Validator::ComponentName::parse("123-abc"sv));
73 // Valid labels
74 {
75 auto CName = Validator::ComponentName::parse("simple-label"sv);
76 ASSERT_TRUE(CName.has_value());
77 EXPECT_EQ(CName->getKind(), Validator::ComponentNameKind::Label);
78 }

Callers

nothing calls this directly

Calls 15

getKindMethod · 0.80
getNoTagNameMethod · 0.80
getOriginalNameMethod · 0.80
AddImportedNameMethod · 0.80
addProposalMethod · 0.80
parseWasmUnitMethod · 0.80
getSectionsMethod · 0.80
isFuncTypeMethod · 0.80
getEnumMethod · 0.80
removeProposalMethod · 0.80
isAddrI64Method · 0.80
getResourceTypeMethod · 0.80

Tested by

no test coverage detected