Replace mjs_detachBody and mjs_detachDefault with mjs_detach.
In a follow-up, mjs_detach will be changed to only remove without deleting an element. PiperOrigin-RevId: 773637351 Change-Id: I9ee4d3584ba88ccc225591337cf036bab806e25c
This commit is contained in:
committed by
Copybara-Service
parent
4ce6293217
commit
0488d9f4eb
+11
-20
@@ -219,7 +219,7 @@ TEST_F(PluginTest, DeletePlugin) {
|
||||
EXPECT_THAT(model->actuator_plugin[0], 0);
|
||||
|
||||
// delete actuator
|
||||
mjs_delete(actuator->element);
|
||||
mjs_delete(spec, actuator->element);
|
||||
|
||||
// recompile and check that the plugin is not present
|
||||
mjModel* newmodel = mj_compile(spec, NULL);
|
||||
@@ -326,7 +326,7 @@ TEST_F(PluginTest, DetachPlugin) {
|
||||
// detach the body and compile
|
||||
mjsBody* body_to_detach = mjs_findBody(parent, "child-body");
|
||||
EXPECT_THAT(body_to_detach, NotNull());
|
||||
EXPECT_THAT(mjs_detachBody(parent, body_to_detach), 0);
|
||||
EXPECT_THAT(mjs_delete(parent, body_to_detach->element), 0);
|
||||
mjModel* model = mj_compile(parent, nullptr);
|
||||
EXPECT_THAT(model, NotNull());
|
||||
EXPECT_THAT(model->nbody, 2);
|
||||
@@ -1368,12 +1368,8 @@ void TestDetachBody(bool compile) {
|
||||
mjsBody* body = mjs_findBody(child, "body");
|
||||
EXPECT_THAT(body, NotNull());
|
||||
|
||||
// get an error if trying to delete the body
|
||||
EXPECT_EQ(mjs_delete(body->element), -1);
|
||||
EXPECT_THAT(mjs_getError(child), HasSubstr("use detach instead"));
|
||||
|
||||
// detach subtree
|
||||
EXPECT_THAT(mjs_detachBody(child, body), 0);
|
||||
// delete subtree
|
||||
EXPECT_THAT(mjs_delete(child, body->element), 0);
|
||||
|
||||
// try saving to XML before compiling again
|
||||
std::array<char, 1024> e;
|
||||
@@ -1898,12 +1894,12 @@ TEST_F(MujocoTest, PreserveState) {
|
||||
// detach subtree
|
||||
mjsBody* body = mjs_findBody(spec, "detachable");
|
||||
EXPECT_THAT(body, NotNull());
|
||||
EXPECT_THAT(mjs_detachBody(spec, body), 0);
|
||||
EXPECT_THAT(mjs_delete(spec, body->element), 0);
|
||||
|
||||
// detach mocap
|
||||
mjsBody* mocap_body = mjs_findBody(spec, "mocap_detach");
|
||||
EXPECT_THAT(mocap_body, NotNull());
|
||||
EXPECT_THAT(mjs_detachBody(spec, mocap_body), 0);
|
||||
EXPECT_THAT(mjs_delete(spec, mocap_body->element), 0);
|
||||
|
||||
// add body
|
||||
mjsBody* newbody = mjs_addBody(mjs_findBody(spec, "world"), 0);
|
||||
@@ -2787,25 +2783,20 @@ TEST_F(MujocoTest, DetachDefault) {
|
||||
mjsDefault* child = mjs_findDefault(spec, "child1");
|
||||
EXPECT_THAT(child, NotNull());
|
||||
|
||||
// try using mjs_delete to remove default, should fail
|
||||
EXPECT_EQ(mjs_delete(child->element), -1);
|
||||
|
||||
// detach default
|
||||
EXPECT_EQ(mjs_detachDefault(spec, child), 0);
|
||||
// delete default
|
||||
EXPECT_EQ(mjs_delete(spec, child->element), 0);
|
||||
child = mjs_findDefault(spec, "child1");
|
||||
EXPECT_THAT(child, IsNull());
|
||||
|
||||
// try and detach previously detached default, should fail
|
||||
EXPECT_EQ(mjs_detachDefault(spec, child), -1);
|
||||
EXPECT_EQ(mjs_delete(spec, nullptr), -1);
|
||||
child = mjs_findDefault(spec, "child1");
|
||||
EXPECT_THAT(child, IsNull());
|
||||
EXPECT_THAT(mjs_getError(spec),
|
||||
HasSubstr("Cannot detach, default is null"));
|
||||
|
||||
// detach parent
|
||||
mjsDefault* parent = mjs_findDefault(spec, "parent");
|
||||
EXPECT_THAT(parent, NotNull());
|
||||
mjs_detachDefault(spec, parent);
|
||||
mjs_delete(spec, parent->element);
|
||||
|
||||
// both parent and remaining child should be removed
|
||||
parent = mjs_findDefault(spec, "parent");
|
||||
@@ -2816,7 +2807,7 @@ TEST_F(MujocoTest, DetachDefault) {
|
||||
// error when trying to detach the 'main' default
|
||||
mjsDefault* main = mjs_findDefault(spec, "main");
|
||||
EXPECT_THAT(main, NotNull());
|
||||
EXPECT_EQ(mjs_detachDefault(spec, main), -1);
|
||||
EXPECT_EQ(mjs_delete(spec, main->element), -1);
|
||||
EXPECT_THAT(mjs_getError(spec),
|
||||
HasSubstr("cannot remove the global default ('main')"));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user