From 98c9718aaf2524a38e13be823cf545c2d4b2b13b Mon Sep 17 00:00:00 2001 From: Kristian Hartikainen Date: Tue, 4 Apr 2023 19:59:58 +0100 Subject: [PATCH] Add (currently-failing) `mj_sizeModel` test --- test/engine/engine_io_test.cc | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/test/engine/engine_io_test.cc b/test/engine/engine_io_test.cc index 6539930c..aec4b3dc 100644 --- a/test/engine/engine_io_test.cc +++ b/test/engine/engine_io_test.cc @@ -18,7 +18,11 @@ #include #include +#include #include +#include +#include +#include #include #include @@ -47,6 +51,34 @@ mjModel PartialModel(const mjModel* m) { return partial_model; } +TEST_F(EngineIoTest, VerifySizeModel) { + 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(); + + std::filesystem::path temp_file = ( + std::filesystem::temp_directory_path() / "model.mjb"); + + mj_saveModel(model, temp_file.string().c_str(), NULL, 0); + + std::uintmax_t file_size = std::filesystem::file_size(temp_file); + + std::filesystem::remove(temp_file); + + EXPECT_EQ(file_size, mj_sizeModel(model)); +} + TEST_F(EngineIoTest, MakeDataFromPartialModel) { constexpr char xml[] = R"(