diff --git a/test/engine/engine_io_test.cc b/test/engine/engine_io_test.cc
index c7a750f9..6539930c 100644
--- a/test/engine/engine_io_test.cc
+++ b/test/engine/engine_io_test.cc
@@ -224,6 +224,36 @@ TEST_F(EngineIoTest, ResetVariableSizes) {
mj_deleteModel(model);
}
+TEST_F(EngineIoTest, MakeDataResetsAllArenaPointerSizes) {
+ constexpr char xml[] = "";
+
+ std::array error;
+ mjModel* model = LoadModelFromString(xml, error.data(), error.size());
+ ASSERT_THAT(model, NotNull()) << "Failed to load model: " << error.data();
+ mjData* data = mj_makeData(model);
+ ASSERT_THAT(data, NotNull());
+
+ // without calling mj_forward, all array sizes should be zero.
+ EXPECT_EQ(data->parena, 0) << "expecting empty arena";
+
+#define X(type, name, nr, nc) \
+ EXPECT_EQ(nr*nc, 0) << "expecting (" #nr " x " #nc ") to be zero";
+
+#undef MJ_D
+#undef MJ_M
+#define MJ_D(name) data->name
+#define MJ_M(name) model->name
+ MJDATA_ARENA_POINTERS;
+#undef MJ_D
+#undef MJ_M
+#define MJ_D(n) n
+#define MJ_M(n) n
+#undef X
+
+ mj_deleteData(data);
+ mj_deleteModel(model);
+}
+
using ValidateReferencesTest = MujocoTest;
TEST_F(ValidateReferencesTest, BodyReferences) {