diff --git a/test/xml/xml_api_test.cc b/test/xml/xml_api_test.cc index ade892f9..8988b851 100644 --- a/test/xml/xml_api_test.cc +++ b/test/xml/xml_api_test.cc @@ -64,7 +64,34 @@ TEST_F(LoadXmlTest, InvalidXmlFailsToLoad) { mj_deleteModel(model); } } -// TODO(nimrod): Add more tests for mj_loadXML. + +TEST_F(LoadXmlTest, MultipleBodies) { + static constexpr char xml[] = R"( + + + + + + + + + + + + + )"; + std::array error; + mjModel* model = LoadModelFromString(xml, error.data(), error.size()); + + ASSERT_THAT(model, NotNull()) << "Failed to load model: " << error.data(); + EXPECT_EQ(model->nbody, 3); + + mjData* data = mj_makeData(model); + EXPECT_THAT(data, NotNull()); + mj_step(model, data); + mj_deleteData(data); + mj_deleteModel(model); +} using SaveLastXmlTest = MujocoTest;