diff --git a/CMakeLists.txt b/CMakeLists.txt index 88d81593578..c9953597a6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,11 @@ endif() # don't relink it only the shared object changes set(CMAKE_LINK_DEPENDS_NO_SHARED ON) +# This needs to be set before any add_directory in order to be visible +# by the subdirectories +set(QGIS_TEST_TMP_DIR "${CMAKE_BINARY_DIR}/tmp") +message (STATUS "Ctest Temp Directory set to: ${QGIS_TEST_TMP_DIR}") + ############################################################# # Project and version set(CPACK_PACKAGE_VERSION_MAJOR "3") diff --git a/cmake/UsePythonTest.cmake b/cmake/UsePythonTest.cmake index 874d22c3a64..18593162ca9 100644 --- a/cmake/UsePythonTest.cmake +++ b/cmake/UsePythonTest.cmake @@ -77,6 +77,9 @@ macro(ADD_PYTHON_TEST TESTNAME FILENAME) set_tests_properties(${TESTNAME} PROPERTIES TIMEOUT ${TEST_TIMEOUT}) endif() - set_tests_properties(${TESTNAME} PROPERTIES FIXTURES_REQUIRED SOURCETREE) + set_tests_properties(${TESTNAME} PROPERTIES + FIXTURES_REQUIRED SOURCETREE + ENVIRONMENT "TMPDIR=${QGIS_TEST_TMP_DIR};QGIS_CUSTOM_CONFIG_PATH=${QGIS_TEST_TMP_DIR}/config" + ) endmacro(ADD_PYTHON_TEST) diff --git a/tests/src/3d/testqgs3drendering.cpp b/tests/src/3d/testqgs3drendering.cpp index 76caea4fbe3..867bf6c3610 100644 --- a/tests/src/3d/testqgs3drendering.cpp +++ b/tests/src/3d/testqgs3drendering.cpp @@ -1752,7 +1752,7 @@ void TestQgs3DRendering::do3DSceneExport( int zoomLevelsCount, int expectedObjec exporter.setScale( 1.0 ); QVERIFY( exporter.parseVectorLayerEntity( scene->layerEntity( layerPoly ), layerPoly ) ); - exporter.save( QString( "test3DSceneExporter-%1" ).arg( zoomLevelsCount ), "/tmp/" ); + exporter.save( QString( "test3DSceneExporter-%1" ).arg( zoomLevelsCount ), QDir::tempPath() ); int sum = 0; for ( auto o : exporter.mObjects ) diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt index a653575ad4d..92f88aec1eb 100644 --- a/tests/src/CMakeLists.txt +++ b/tests/src/CMakeLists.txt @@ -26,7 +26,11 @@ if (ENABLE_TESTS) set_tests_properties(${TESTNAME} PROPERTIES LABELS ${ARG_QGIS_TEST_LABELS}) endif() - set_tests_properties(${TESTNAME} PROPERTIES FIXTURES_REQUIRED SOURCETREE) + set_tests_properties(${TESTNAME} PROPERTIES + FIXTURES_REQUIRED SOURCETREE + ENVIRONMENT "TMPDIR=${QGIS_TEST_TMP_DIR};QGIS_CUSTOM_CONFIG_PATH=${QGIS_TEST_TMP_DIR}/config" + ) + target_compile_definitions(${TESTNAME} PRIVATE "CMAKE_SOURCE_DIR=\"${CMAKE_SOURCE_DIR}\"") endmacro() diff --git a/tests/src/core/testqgslabelingengine.cpp b/tests/src/core/testqgslabelingengine.cpp index 37366863826..7d20e93ff22 100644 --- a/tests/src/core/testqgslabelingengine.cpp +++ b/tests/src/core/testqgslabelingengine.cpp @@ -4346,7 +4346,7 @@ void TestQgsLabelingEngine::labelingResultsWithCallouts() job.start(); job.waitForFinished(); - job.renderedImage().save( QStringLiteral( "/tmp/renderer.png" ) ); + job.renderedImage().save( QString( "%s/renderer.png" ).arg( QDir::tempPath() ) ); std::unique_ptr< QgsLabelingResults > results( job.takeLabelingResults() ); QVERIFY( results ); diff --git a/tests/src/core/testqgsproject.cpp b/tests/src/core/testqgsproject.cpp index bda528eb36b..7437ced09d3 100644 --- a/tests/src/core/testqgsproject.cpp +++ b/tests/src/core/testqgsproject.cpp @@ -1083,6 +1083,7 @@ void TestQgsProject::testAsynchronousLayerLoading() int layersCount = layers.count(); project->addMapLayers( layers ); + project->writeEntry( QStringLiteral( "Paths" ), QStringLiteral( "Absolute" ), true ); QCOMPARE( project->mapLayers( true ).count(), layersCount - 2 ); QCOMPARE( project->mapLayers( false ).count(), layersCount );