From a9781d9beafd5b078538d41548065bebda6f99aa Mon Sep 17 00:00:00 2001 From: Alessio Quaglino Date: Thu, 17 Nov 2022 05:05:18 -0800 Subject: [PATCH] Activate plugin tests on Windows. PiperOrigin-RevId: 489183597 Change-Id: I1e5212777514fbc5a246f02a4446a9dbb8a0dbd3 --- test/CMakeLists.txt | 16 ++++++++++++---- test/plugin/elasticity/CMakeLists.txt | 2 +- test/plugin/elasticity/elasticity_test.cc | 22 +++++++++++++++++++++- 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 860b079d..1e4c1c49 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -33,6 +33,17 @@ macro(mujoco_test name) set_tests_properties( ${testList} PROPERTIES ENVIRONMENT "PATH=$;$ENV{PATH}" ) + set_tests_properties( + ${testList} PROPERTIES ENVIRONMENT "MUJOCO_PLUGIN_DIR=${CMAKE_BINARY_DIR}/bin" + ) + elseif(APPLE) + set_tests_properties( + ${testList} PROPERTIES ENVIRONMENT "MUJOCO_PLUGIN_DIR=${CMAKE_BINARY_DIR}/lib" + ) + else() + set_tests_properties( + ${testList} PROPERTIES ENVIRONMENT "MUJOCO_PLUGIN_DIR=${CMAKE_BINARY_DIR}/lib" + ) endif() endmacro() @@ -65,7 +76,4 @@ add_subdirectory(engine) add_subdirectory(sample) add_subdirectory(user) add_subdirectory(xml) - -if(NOT WIN32) - add_subdirectory(plugin/elasticity) -endif() +add_subdirectory(plugin/elasticity) diff --git a/test/plugin/elasticity/CMakeLists.txt b/test/plugin/elasticity/CMakeLists.txt index e62dae06..20671245 100644 --- a/test/plugin/elasticity/CMakeLists.txt +++ b/test/plugin/elasticity/CMakeLists.txt @@ -13,5 +13,5 @@ # limitations under the License. mujoco_test(elasticity_test) -target_link_libraries(elasticity_test fixture gmock elasticity) +target_link_libraries(elasticity_test fixture gmock) diff --git a/test/plugin/elasticity/elasticity_test.cc b/test/plugin/elasticity/elasticity_test.cc index c5e70674..b94c74a9 100644 --- a/test/plugin/elasticity/elasticity_test.cc +++ b/test/plugin/elasticity/elasticity_test.cc @@ -27,8 +27,28 @@ namespace mujoco { namespace { -using PluginTest = MujocoTest; +class PluginTest : public MujocoTest { + public: + // load plugin library + PluginTest() : MujocoTest() { + #if defined(_WIN32) || defined(__CYGWIN__) + mj_loadPluginLibrary(( + std::string(std::getenv("MUJOCO_PLUGIN_DIR")) + + std::string("\\elasticity.dll")).c_str()); + #else + #if defined(__APPLE__) + mj_loadPluginLibrary(( + std::string(std::getenv("MUJOCO_PLUGIN_DIR")) + + std::string("/libelasticity.dylib")).c_str()); + #else + mj_loadPluginLibrary(( + std::string(std::getenv("MUJOCO_PLUGIN_DIR")) + + std::string("/libelasticity.so")).c_str()); + #endif + #endif + } +}; // -------------------------------- cable -----------------------------------