@@ -54,6 +54,36 @@ TEST(LinkGraphTest, AddressAccess) {
5454 EXPECT_EQ (B1.getFixupAddress (E1 ), B1Addr + 8 ) << " Incorrect fixup address" ;
5555}
5656
57+ TEST (LinkGraphTest, DefinedSymbolProperties) {
58+ // Check that Section::empty behaves as expected.
59+ LinkGraph G (" foo" , std::make_shared<orc::SymbolStringPool>(),
60+ Triple (" x86_64-apple-darwin" ), SubtargetFeatures (),
61+ getGenericEdgeKindName);
62+ auto &Sec =
63+ G.createSection (" __data" , orc::MemProt::Read | orc::MemProt::Write);
64+ auto &B =
65+ G.createContentBlock (Sec, BlockContent, orc::ExecutorAddr (0x1000 ), 8 , 0 );
66+ auto &S = G.addDefinedSymbol (B, 0 , " sym" , 4 , Linkage::Strong, Scope::Default,
67+ false , false );
68+
69+ EXPECT_TRUE (S.hasName ());
70+ EXPECT_EQ (*S.getName (), " sym" );
71+ EXPECT_TRUE (S.isDefined ());
72+ EXPECT_FALSE (S.isLive ());
73+ EXPECT_FALSE (S.isCallable ());
74+ EXPECT_FALSE (S.isExternal ());
75+ EXPECT_FALSE (S.isAbsolute ());
76+ EXPECT_EQ (&S.getBlock (), &B);
77+ EXPECT_EQ (&S.getSection (), &Sec);
78+ EXPECT_EQ (S.getOffset (), 0U );
79+ EXPECT_EQ (S.getSize (), 4U );
80+ EXPECT_EQ (S.getRange (), orc::ExecutorAddrRange (B.getAddress (), 4 ));
81+ EXPECT_EQ (S.getSymbolContent (), BlockContent.slice (0 , 4 ));
82+ EXPECT_EQ (S.getLinkage (), Linkage::Strong);
83+ EXPECT_EQ (S.getScope (), Scope::Default);
84+ EXPECT_EQ (S.getTargetFlags (), 0U );
85+ }
86+
5787TEST (LinkGraphTest, SectionEmpty) {
5888 // Check that Section::empty behaves as expected.
5989 LinkGraph G (" foo" , std::make_shared<orc::SymbolStringPool>(),
0 commit comments