Refactor 'ParseXML' and 'ParseSpecFromString' to use a shared helper function.

This allows us to remove the special "LoadModelFromString" resource provider.

PiperOrigin-RevId: 854207845
Change-Id: I6d00f2ab99b4351866e1d39dbeed96f29aaaf915
This commit is contained in:
Haroon Qureshi
2026-01-09 08:39:35 -08:00
committed by Copybara-Service
parent 398e3dcf15
commit 45e164bf8f
2 changed files with 72 additions and 78 deletions
+14
View File
@@ -115,6 +115,20 @@ TEST_F(SaveLastXmlTest, EmptyModel) {
mj_deleteModel(model);
}
TEST_F(LoadXmlTest, NullFileFails) {
std::array<char, 1000> error;
mjSpec* spec = mj_parseXML(nullptr, nullptr, error.data(), error.size());
EXPECT_THAT(spec, IsNull()) << "Expected model loading to fail.";
EXPECT_THAT(error.data(), HasSubstr("filename argument required"));
}
TEST_F(LoadXmlTest, InvalidFileFails) {
std::array<char, 1000> error;
mjSpec* spec = mj_parseXML("invalid", nullptr, error.data(), error.size());
EXPECT_THAT(spec, IsNull()) << "Expected model loading to fail.";
EXPECT_THAT(error.data(), HasSubstr("No such file or directory"));
}
TEST_F(MujocoTest, SaveXmlShortString) {
std::array<char, 1000> error;