diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 00000000..0dc00ddf --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,39 @@ +name: macOS latest + +on: [push, pull_request] + +jobs: + build: + + env: + PACKAGE: ignition-sensors4 + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Homebrew + id: set-up-homebrew + uses: Homebrew/actions/setup-homebrew@master + - run: brew config + + # Needed for X11Requirement + - run: brew cask install xquartz + - name: Install base dependencies + run: | + brew tap osrf/simulation; + brew install --only-dependencies ${PACKAGE}; + + - run: mkdir build + - name: cmake + working-directory: build + run: cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/Cellar/${PACKAGE}/HEAD + - run: make + working-directory: build + - run: make test + working-directory: build + env: + CTEST_OUTPUT_ON_FAILURE: 1 + - name: make install + working-directory: build + run: | + make install; + brew link ${PACKAGE}; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index bde2e842..268ed90b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -136,3 +136,19 @@ ign_build_tests(TYPE UNIT SOURCES ${gtest_sources} LIB_DEPS ${rendering_target}) ign_build_tests(TYPE UNIT SOURCES Lidar_TEST.cc LIB_DEPS ${lidar_target}) ign_build_tests(TYPE UNIT SOURCES Camera_TEST.cc LIB_DEPS ${camera_target}) ign_build_tests(TYPE UNIT SOURCES ImuSensor_TEST.cc LIB_DEPS ${imu_target}) + +set(plugin_test_targets) +list(APPEND plugin_test_targets "UNIT_Camera_TEST") +list(APPEND plugin_test_targets "UNIT_Lidar_TEST") +list(APPEND plugin_test_targets "UNIT_ImuSensor_TEST") + +foreach(plugin_test ${plugin_test_targets}) + if(TARGET ${plugin_test}) + set(_env_vars) + list(APPEND _env_vars "IGN_PLUGIN_PATH=$") + list(APPEND _env_vars "DYLD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + + set_tests_properties(${plugin_test} PROPERTIES + ENVIRONMENT "${_env_vars}") + endif() +endforeach() diff --git a/test/integration/CMakeLists.txt b/test/integration/CMakeLists.txt index 51802cd5..2c5de9fe 100644 --- a/test/integration/CMakeLists.txt +++ b/test/integration/CMakeLists.txt @@ -53,3 +53,15 @@ ign_build_tests(TYPE INTEGRATION ${PROJECT_LIBRARY_TARGET_NAME}-imu ) +foreach(plugin_test ${dri_tests} ${tests}) + get_filename_component(BINARY_NAME ${plugin_test} NAME_WE) + set(BINARY_NAME "${TEST_TYPE}_${BINARY_NAME}") + if(TARGET ${BINARY_NAME}) + set(_env_vars) + list(APPEND _env_vars "IGN_PLUGIN_PATH=$") + list(APPEND _env_vars "DYLD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + + set_tests_properties(${BINARY_NAME} PROPERTIES + ENVIRONMENT "${_env_vars}") + endif() +endforeach() diff --git a/test/integration/air_pressure_plugin.cc b/test/integration/air_pressure_plugin.cc index 80bb0cf3..a7b74fb4 100644 --- a/test/integration/air_pressure_plugin.cc +++ b/test/integration/air_pressure_plugin.cc @@ -131,7 +131,6 @@ TEST_F(AirPressureSensorTest, CreateAirPressure) // create the sensor using sensor factory ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr sensor = sf.CreateSensor(airPressureSdf); ASSERT_NE(nullptr, sensor); @@ -173,7 +172,6 @@ TEST_F(AirPressureSensorTest, SensorReadings) // create the sensor using sensor factory // try creating without specifying the sensor type and then cast it ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr s = sf.CreateSensor(airPressureSdf); std::unique_ptr sensor( @@ -240,8 +238,6 @@ TEST_F(AirPressureSensorTest, Topic) // Factory ignition::sensors::SensorFactory factory; - factory.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, - "lib")); // Default topic { diff --git a/test/integration/altimeter_plugin.cc b/test/integration/altimeter_plugin.cc index 3c46b9bc..4139ad0e 100644 --- a/test/integration/altimeter_plugin.cc +++ b/test/integration/altimeter_plugin.cc @@ -138,7 +138,6 @@ TEST_F(AltimeterSensorTest, CreateAltimeter) // create the sensor using sensor factory ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr sensor = sf.CreateSensor(altimeterSdf); ASSERT_NE(nullptr, sensor); @@ -179,7 +178,6 @@ TEST_F(AltimeterSensorTest, SensorReadings) // create the sensor using sensor factory // try creating without specifying the sensor type and then cast it ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr s = sf.CreateSensor(altimeterSdf); std::unique_ptr sensor( @@ -268,8 +266,6 @@ TEST_F(AltimeterSensorTest, Topic) // Factory ignition::sensors::SensorFactory factory; - factory.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, - "lib")); // Default topic { diff --git a/test/integration/camera_plugin.cc b/test/integration/camera_plugin.cc index 6a1c8abe..7919ba39 100644 --- a/test/integration/camera_plugin.cc +++ b/test/integration/camera_plugin.cc @@ -63,7 +63,6 @@ void CameraSensorTest::ImagesWithBuiltinSDF(const std::string &_renderEngine) // do the test ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); ignition::sensors::CameraSensor *sensor = mgr.CreateSensor(sensorPtr); diff --git a/test/integration/depth_camera_plugin.cc b/test/integration/depth_camera_plugin.cc index dc30ae88..12460aef 100644 --- a/test/integration/depth_camera_plugin.cc +++ b/test/integration/depth_camera_plugin.cc @@ -203,7 +203,6 @@ void DepthCameraSensorTest::ImagesWithBuiltinSDF( // do the test ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); ignition::sensors::DepthCameraSensor *depthSensor = mgr.CreateSensor(sensorPtr); diff --git a/test/integration/gpu_lidar_sensor_plugin.cc b/test/integration/gpu_lidar_sensor_plugin.cc index fcb13e75..adbb9088 100644 --- a/test/integration/gpu_lidar_sensor_plugin.cc +++ b/test/integration/gpu_lidar_sensor_plugin.cc @@ -188,7 +188,6 @@ void GpuLidarSensorTest::CreateGpuLidar(const std::string &_renderEngine) // Create a sensor manager ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); // Create an scene with a box in it scene->SetAmbientLight(0.3, 0.3, 0.3); @@ -318,7 +317,6 @@ void GpuLidarSensorTest::DetectBox(const std::string &_renderEngine) // Create a sensor manager ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); // Create a GpuLidarSensor ignition::sensors::GpuLidarSensor *sensor = @@ -463,7 +461,6 @@ void GpuLidarSensorTest::TestThreeBoxes(const std::string &_renderEngine) // Create a sensor manager ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); // Create a GpuLidarSensors ignition::sensors::GpuLidarSensor *sensor1 = @@ -609,7 +606,6 @@ void GpuLidarSensorTest::VerticalLidar(const std::string &_renderEngine) // Create a sensor manager ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); // Create a GpuLidarSensor ignition::sensors::GpuLidarSensor *sensor = @@ -727,7 +723,6 @@ void GpuLidarSensorTest::ManualUpdate(const std::string &_renderEngine) // Create a sensor manager ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); // Create a GpuLidarSensors ignition::sensors::GpuLidarSensor *sensor1 = @@ -820,7 +815,6 @@ void GpuLidarSensorTest::Topic(const std::string &_renderEngine) // Create a GpuLidarSensor ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); // Default topic diff --git a/test/integration/imu_plugin.cc b/test/integration/imu_plugin.cc index 436dc2c5..f24fcff6 100644 --- a/test/integration/imu_plugin.cc +++ b/test/integration/imu_plugin.cc @@ -85,7 +85,6 @@ TEST_F(ImuSensorTest, CreateImu) // create the sensor using sensor factory ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr sensor = sf.CreateSensor(imuSdf); ASSERT_NE(nullptr, sensor); @@ -114,7 +113,6 @@ TEST_F(ImuSensorTest, SensorReadings) // create the sensor using sensor factory // try creating without specifying the sensor type and then cast it ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr s = sf.CreateSensor(imuSdf); std::unique_ptr sensor( @@ -245,8 +243,6 @@ TEST_F(ImuSensorTest, Topic) // Factory ignition::sensors::SensorFactory factory; - factory.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, - "lib")); // Default topic { diff --git a/test/integration/logical_camera_plugin.cc b/test/integration/logical_camera_plugin.cc index d9579602..a2f349bb 100644 --- a/test/integration/logical_camera_plugin.cc +++ b/test/integration/logical_camera_plugin.cc @@ -111,7 +111,6 @@ TEST_F(LogicalCameraSensorTest, CreateLogicalCamera) // create the sensor using sensor factory ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr sensor = sf.CreateSensor(logicalCameraSdf); ASSERT_NE(nullptr, sensor); @@ -150,7 +149,6 @@ TEST_F(LogicalCameraSensorTest, DetectBox) // create the sensor using sensor factory // try creating without specifying the sensor type and then cast it ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr s = sf.CreateSensor(logicalCameraSdf); std::unique_ptr sensor( @@ -251,8 +249,6 @@ TEST_F(LogicalCameraSensorTest, Topic) // Factory ignition::sensors::SensorFactory factory; - factory.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, - "lib")); // Default topic { diff --git a/test/integration/magnetometer_plugin.cc b/test/integration/magnetometer_plugin.cc index 71207986..2767515b 100644 --- a/test/integration/magnetometer_plugin.cc +++ b/test/integration/magnetometer_plugin.cc @@ -144,7 +144,6 @@ TEST_F(MagnetometerSensorTest, CreateMagnetometer) // create the sensor using sensor factory ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr sensor = sf.CreateSensor(magnetometerSdf); ASSERT_NE(nullptr, sensor); @@ -184,7 +183,6 @@ TEST_F(MagnetometerSensorTest, SensorReadings) // create the sensor using sensor factory // try creating without specifying the sensor type and then cast it ignition::sensors::SensorFactory sf; - sf.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); std::unique_ptr s = sf.CreateSensor(magnetometerSdf); std::unique_ptr sensor( @@ -304,8 +302,6 @@ TEST_F(MagnetometerSensorTest, Topic) // Factory ignition::sensors::SensorFactory factory; - factory.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, - "lib")); // Default topic { diff --git a/test/integration/rgbd_camera_plugin.cc b/test/integration/rgbd_camera_plugin.cc index 01e05df2..81755601 100644 --- a/test/integration/rgbd_camera_plugin.cc +++ b/test/integration/rgbd_camera_plugin.cc @@ -223,7 +223,6 @@ void RgbdCameraSensorTest::ImagesWithBuiltinSDF( // do the test ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); ignition::sensors::RgbdCameraSensor *rgbdSensor = mgr.CreateSensor(sensorPtr); diff --git a/test/integration/thermal_camera_plugin.cc b/test/integration/thermal_camera_plugin.cc index edabd5d0..6a66c473 100644 --- a/test/integration/thermal_camera_plugin.cc +++ b/test/integration/thermal_camera_plugin.cc @@ -136,7 +136,6 @@ void ThermalCameraSensorTest::ImagesWithBuiltinSDF( root->AddChild(box); ignition::sensors::Manager mgr; - mgr.AddPluginPaths(ignition::common::joinPaths(PROJECT_BUILD_PATH, "lib")); ignition::sensors::ThermalCameraSensor *thermalSensor = mgr.CreateSensor(sensorPtr);