Skip to content

Commit c54dccb

Browse files
committed
compare custom elems w/ string literals
Signed-off-by: Jenn Nguyen <jenn@openrobotics.org>
1 parent 1c6c0a5 commit c54dccb

1 file changed

Lines changed: 72 additions & 8 deletions

File tree

test/integration/sdf_custom.cc

Lines changed: 72 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -123,14 +123,29 @@ TEST(SDFParser, ReloadCustomElements)
123123
model2->Element()->FindElement("mysim:transmission");
124124
ASSERT_NE(nullptr, customElem1);
125125
ASSERT_NE(nullptr, customElem2);
126-
EXPECT_EQ(customElem1->ToString(""), customElem2->ToString(""));
126+
127+
const std::string customElemStr =
128+
R"(<mysim:transmission name='simple_trans'>
129+
<mysim:type>transmission_interface/SimpleTransmission</mysim:type>
130+
<mysim:joint name='J1'>
131+
<mysim:hardwareInterface>EffortJointInterface</mysim:hardwareInterface>
132+
</mysim:joint>
133+
</mysim:transmission>
134+
)";
135+
EXPECT_EQ(customElemStr, customElem1->ToString(""));
136+
EXPECT_EQ(customElemStr, customElem2->ToString(""));
137+
127138
sdf::ElementPtr customDesc1 =
128139
world1->Element()->FindElement("mysim:description");
129140
sdf::ElementPtr customDesc2 =
130141
world2->Element()->FindElement("mysim:description");
131142
ASSERT_NE(nullptr, customDesc1);
132143
ASSERT_NE(nullptr, customDesc2);
133-
EXPECT_EQ(customDesc1->ToString(""), customDesc2->ToString(""));
144+
145+
const std::string customDescStr =
146+
"<mysim:description>Description of this world</mysim:description>\n";
147+
EXPECT_EQ(customDescStr, customDesc1->ToString(""));
148+
EXPECT_EQ(customDescStr, customDesc2->ToString(""));
134149
}
135150

136151
/////////////////////////////////////////////////
@@ -184,8 +199,11 @@ R"(<sdf version='1.7'>
184199
const sdf::Link *model12link2 = model12->LinkByIndex(0);
185200
ASSERT_NE(nullptr, model11link1);
186201
ASSERT_NE(nullptr, model12link2);
187-
EXPECT_EQ(model11link1->Element()->ToString(""),
188-
model12link2->Element()->ToString(""));
202+
203+
const std::string linkCustomAttrStr =
204+
"<link name='L1' mysim:custom_attr_str='A' mysim:custom_attr_int='5'/>\n";
205+
EXPECT_EQ(linkCustomAttrStr, model11link1->Element()->ToString(""));
206+
EXPECT_EQ(linkCustomAttrStr, model12link2->Element()->ToString(""));
189207

190208
// //model[@name=M1]/model[@name=M2]
191209
const sdf::Model *model21 = model11->ModelByIndex(0);
@@ -202,14 +220,34 @@ R"(<sdf version='1.7'>
202220
EXPECT_EQ(model21link1->Element()->ToString(""),
203221
model22link2->Element()->ToString(""));
204222

223+
// check custom attributes
224+
sdf::ParamPtr param1 =
225+
model21link1->Element()->GetAttribute("mysim:custom_attr_str");
226+
sdf::ParamPtr param2 =
227+
model22link2->Element()->GetAttribute("mysim:custom_attr_str");
228+
ASSERT_NE(nullptr, param1);
229+
ASSERT_NE(nullptr, param2);
230+
EXPECT_EQ("B", param1->GetAsString());
231+
EXPECT_EQ("B", param2->GetAsString());
232+
205233
// //model[@name=M1]/model[@name=M2]/link[@name=L1]/mysim:transmission
206234
sdf::ElementPtr customElem1 =
207235
model21link1->Element()->FindElement("mysim:transmission");
208236
sdf::ElementPtr customElem2 =
209237
model22link2->Element()->FindElement("mysim:transmission");
210238
ASSERT_NE(nullptr, customElem1);
211239
ASSERT_NE(nullptr, customElem2);
212-
EXPECT_EQ(customElem1->ToString(""), customElem2->ToString(""));
240+
241+
const std::string customElemStr =
242+
R"(<mysim:transmission name='simple_trans'>
243+
<mysim:type>transmission_interface/SimpleTransmission</mysim:type>
244+
<mysim:joint name='J1'>
245+
<mysim:hardwareInterface>EffortJointInterface</mysim:hardwareInterface>
246+
</mysim:joint>
247+
</mysim:transmission>
248+
)";
249+
EXPECT_EQ(customElemStr, customElem1->ToString(""));
250+
EXPECT_EQ(customElemStr, customElem2->ToString(""));
213251
}
214252

215253
/////////////////////////////////////////////////
@@ -273,8 +311,14 @@ R"(<sdf version='1.7'>
273311
const sdf::Link *model12link2 = model12->LinkByIndex(0);
274312
ASSERT_NE(nullptr, model11link1);
275313
ASSERT_NE(nullptr, model12link2);
276-
EXPECT_EQ(model11link1->Element()->ToString(""),
277-
model12link2->Element()->ToString(""));
314+
315+
const std::string linkCustomAttrStr =
316+
R"(<link name='M1::L1' mysim:custom_attr_str='A' mysim:custom_attr_int='5'>
317+
<pose relative_to='M1::__model__'>0 0 0 0 -0 0</pose>
318+
</link>
319+
)";
320+
EXPECT_EQ(linkCustomAttrStr, model11link1->Element()->ToString(""));
321+
EXPECT_EQ(linkCustomAttrStr, model12link2->Element()->ToString(""));
278322

279323
// //model[@name=test]/model[@name=M1::M2]
280324
const sdf::Model *model21 = model11->ModelByIndex(0);
@@ -291,6 +335,16 @@ R"(<sdf version='1.7'>
291335
EXPECT_EQ(model21link1->Element()->ToString(""),
292336
model22link2->Element()->ToString(""));
293337

338+
// check custom attributes
339+
sdf::ParamPtr param1 =
340+
model21link1->Element()->GetAttribute("mysim:custom_attr_str");
341+
sdf::ParamPtr param2 =
342+
model22link2->Element()->GetAttribute("mysim:custom_attr_str");
343+
ASSERT_NE(nullptr, param1);
344+
ASSERT_NE(nullptr, param2);
345+
EXPECT_EQ("B", param1->GetAsString());
346+
EXPECT_EQ("B", param2->GetAsString());
347+
294348
// //model[@name=test]/model[@name=M1::M2]/link[@name=M1::L1]
295349
// /mysim:transmission
296350
sdf::ElementPtr customElem1 =
@@ -299,5 +353,15 @@ R"(<sdf version='1.7'>
299353
model22link2->Element()->FindElement("mysim:transmission");
300354
ASSERT_NE(nullptr, customElem1);
301355
ASSERT_NE(nullptr, customElem2);
302-
EXPECT_EQ(customElem1->ToString(""), customElem2->ToString(""));
356+
357+
const std::string customElemStr =
358+
R"(<mysim:transmission name='simple_trans'>
359+
<mysim:type>transmission_interface/SimpleTransmission</mysim:type>
360+
<mysim:joint name='M1::J1'>
361+
<mysim:hardwareInterface>EffortJointInterface</mysim:hardwareInterface>
362+
</mysim:joint>
363+
</mysim:transmission>
364+
)";
365+
EXPECT_EQ(customElemStr, customElem1->ToString(""));
366+
EXPECT_EQ(customElemStr, customElem2->ToString(""));
303367
}

0 commit comments

Comments
 (0)