Add ASAN and MSAN instrumentation for arena and mjData stack.

PiperOrigin-RevId: 535635490
Change-Id: Ia1e58771bae25bf72c861f57452fb8faa2b918fb
This commit is contained in:
Saran Tunyasuvunakool
2023-05-26 09:16:39 -07:00
committed by Copybara-Service
parent 1d79657512
commit f887c1e928
54 changed files with 266 additions and 105 deletions
@@ -422,6 +422,7 @@ BENCHMARK(BM_MatVecSparse_1);
static void BM_combineSparse(benchmark::State& state, CombineFuncPtr func) {
static mjModel* m = LoadModelFromPath("humanoid/humanoid.xml");
m->opt.jacobian = mjJAC_SPARSE;
mjData* d = mj_makeData(m);
+6 -1
View File
@@ -25,10 +25,15 @@ test_model() {
local model="$1"
echo "Testing $model" >&2
local iterations=10
if [[ "$model" == */composite/particle.xml && ${TESTSPEED_ASAN:-0} != 0 ]]; then
iterations=2
fi
# run testspeed, writing its output to stderr.
# die if testspeed returns a failure code, or if it doesn't have the string
# "Simulation time" in the output.
("$TARGET_BINARY" "$model" 10 || die "testspeed failed") \
("$TARGET_BINARY" "$model" "$iterations" || die "testspeed failed") \
| tee >(cat 1>&2) | grep -q "$EXPECTED_STR"
if [ "$?" != 0 ]; then
+8 -8
View File
@@ -43,12 +43,12 @@ TEST_F(XMLReaderTest, MemorySize) {
{
static constexpr char xml[] = R"(
<mujoco>
<size memory="128"/>
<size memory="256"/>
</mujoco>
)";
mjModel* model = LoadModelFromString(xml, error.data(), error.size());
ASSERT_THAT(model, NotNull());
EXPECT_EQ(model->nstack, 128 / sizeof(mjtNum));
ASSERT_THAT(model, NotNull()) << error.data();
EXPECT_EQ(model->nstack, 256 / sizeof(mjtNum));
mj_deleteModel(model);
}
{
@@ -58,7 +58,7 @@ TEST_F(XMLReaderTest, MemorySize) {
</mujoco>
)";
mjModel* model = LoadModelFromString(xml, error.data(), error.size());
ASSERT_THAT(model, NotNull());
ASSERT_THAT(model, NotNull()) << error.data();
EXPECT_EQ(model->nstack, 1024 / sizeof(mjtNum));
mj_deleteModel(model);
}
@@ -69,7 +69,7 @@ TEST_F(XMLReaderTest, MemorySize) {
</mujoco>
)";
mjModel* model = LoadModelFromString(xml, error.data(), error.size());
ASSERT_THAT(model, NotNull());
ASSERT_THAT(model, NotNull()) << error.data();
EXPECT_EQ(model->nstack, 10240 / sizeof(mjtNum));
mj_deleteModel(model);
}
@@ -80,7 +80,7 @@ TEST_F(XMLReaderTest, MemorySize) {
</mujoco>
)";
mjModel* model = LoadModelFromString(xml, error.data(), error.size());
ASSERT_THAT(model, NotNull());
ASSERT_THAT(model, NotNull()) << error.data();
EXPECT_EQ(model->nstack, 4*1024*1024 / sizeof(mjtNum));
mj_deleteModel(model);
}
@@ -91,7 +91,7 @@ TEST_F(XMLReaderTest, MemorySize) {
</mujoco>
)";
mjModel* model = LoadModelFromString(xml, error.data(), error.size());
ASSERT_THAT(model, NotNull());
ASSERT_THAT(model, NotNull()) << error.data();
EXPECT_EQ(model->nstack, 1024*1024*1024 / sizeof(mjtNum));
mj_deleteModel(model);
}
@@ -102,7 +102,7 @@ TEST_F(XMLReaderTest, MemorySize) {
</mujoco>
)";
mjModel* model = LoadModelFromString(xml, error.data(), error.size());
ASSERT_THAT(model, NotNull());
ASSERT_THAT(model, NotNull()) << error.data();
EXPECT_EQ(model->nstack, 1024*1024*1024 / sizeof(mjtNum));
mj_deleteModel(model);
}