Skip to content

Commit

Permalink
Add better way to retrieve full file path for files in the
Browse files Browse the repository at this point in the history
test set
  • Loading branch information
nyalldawson committed Oct 6, 2023
1 parent 5dd5cfc commit 4edd328
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 21 deletions.
2 changes: 2 additions & 0 deletions src/test/CMakeLists.txt
@@ -1,3 +1,5 @@
add_definitions(-DTEST_DATA_DIR="${TEST_DATA_DIR}")

# for installing headers

include_directories(SYSTEM
Expand Down
10 changes: 10 additions & 0 deletions src/test/qgstest.h
Expand Up @@ -144,6 +144,7 @@ class TEST_EXPORT QgsTest : public QObject
QgsTest( const QString &name, const QString &controlPathPrefix = QString() )
: mName( name )
, mControlPathPrefix( controlPathPrefix )
, mTestDataDir( QStringLiteral( TEST_DATA_DIR ) + '/' ) //defined in CmakeLists.txt
{}

~QgsTest() override
Expand All @@ -152,11 +153,20 @@ class TEST_EXPORT QgsTest : public QObject
writeLocalHtmlReport( mReport );
}

/**
* Returns the full path to the test data with the given file path.
*/
QString testDataPath( const QString &filePath ) const
{
return mTestDataDir.filePath( filePath.startsWith( '/' ) ? filePath.mid( 1 ) : filePath );
}

protected:

QString mName;
QString mReport;
QString mControlPathPrefix;
const QDir mTestDataDir;

bool renderMapSettingsCheck( const QString &name, const QString &referenceImage, const QgsMapSettings &mapSettings, int allowedMismatch = 0, int colorTolerance = 0 )
{
Expand Down
37 changes: 16 additions & 21 deletions tests/src/3d/testqgs3drendering.cpp
Expand Up @@ -184,16 +184,15 @@ void TestQgs3DRendering::initTestCase()

mProject.reset( new QgsProject );

const QString dataDir( TEST_DATA_DIR );
mLayerDtm = new QgsRasterLayer( dataDir + "/3d/dtm.tif", "dtm", "gdal" );
mLayerDtm = new QgsRasterLayer( testDataPath( "/3d/dtm.tif" ), "dtm", "gdal" );
QVERIFY( mLayerDtm->isValid() );
mProject->addMapLayer( mLayerDtm );

mLayerRgb = new QgsRasterLayer( dataDir + "/3d/rgb.tif", "rgb", "gdal" );
mLayerRgb = new QgsRasterLayer( testDataPath( "/3d/rgb.tif" ), "rgb", "gdal" );
QVERIFY( mLayerRgb->isValid() );
mProject->addMapLayer( mLayerRgb );

mLayerBuildings = new QgsVectorLayer( dataDir + "/3d/buildings.shp", "buildings", "ogr" );
mLayerBuildings = new QgsVectorLayer( testDataPath( "/3d/buildings.shp" ), "buildings", "ogr" );
QVERIFY( mLayerBuildings->isValid() );
mProject->addMapLayer( mLayerBuildings );

Expand All @@ -209,23 +208,23 @@ void TestQgs3DRendering::initTestCase()
QgsVectorLayer3DRenderer *renderer3d = new QgsVectorLayer3DRenderer( symbol3d );
mLayerBuildings->setRenderer3D( renderer3d );

mLayerMeshTerrain = new QgsMeshLayer( dataDir + "/mesh/quad_flower.2dm", "mesh", "mdal" );
mLayerMeshTerrain = new QgsMeshLayer( testDataPath( "/mesh/quad_flower.2dm" ), "mesh", "mdal" );
QVERIFY( mLayerMeshTerrain->isValid() );
mLayerMeshTerrain->setCrs( mLayerDtm->crs() ); // this testing mesh does not have any CRS defined originally
mProject->addMapLayer( mLayerMeshTerrain );

mLayerMeshDataset = new QgsMeshLayer( dataDir + "/mesh/quad_and_triangle.2dm", "mesh", "mdal" );
mLayerMeshDataset->dataProvider()->addDataset( dataDir + "/mesh/quad_and_triangle_vertex_scalar.dat" );
mLayerMeshDataset->dataProvider()->addDataset( dataDir + "/mesh/quad_and_triangle_vertex_vector.dat" );
mLayerMeshDataset->dataProvider()->addDataset( dataDir + "/mesh/quad_and_triangle_els_face_scalar.dat" );
mLayerMeshDataset = new QgsMeshLayer( testDataPath( "/mesh/quad_and_triangle.2dm" ), "mesh", "mdal" );
mLayerMeshDataset->dataProvider()->addDataset( testDataPath( "/mesh/quad_and_triangle_vertex_scalar.dat" ) );
mLayerMeshDataset->dataProvider()->addDataset( testDataPath( "/mesh/quad_and_triangle_vertex_vector.dat" ) );
mLayerMeshDataset->dataProvider()->addDataset( testDataPath( "/mesh/quad_and_triangle_els_face_scalar.dat" ) );
QVERIFY( mLayerMeshDataset->isValid() );
mLayerMeshDataset->setCrs( mLayerDtm->crs() ); // this testing mesh does not have any CRS defined originally
mLayerMeshDataset->temporalProperties()->setIsActive( false );
mLayerMeshDataset->setStaticScalarDatasetIndex( QgsMeshDatasetIndex( 1, 0 ) );
mLayerMeshDataset->setStaticVectorDatasetIndex( QgsMeshDatasetIndex( 2, 0 ) );
mProject->addMapLayer( mLayerMeshDataset );

mLayerMeshSimplified = new QgsMeshLayer( dataDir + "/mesh/trap_steady_05_3D.nc", "mesh", "mdal" );
mLayerMeshSimplified = new QgsMeshLayer( testDataPath( "/mesh/trap_steady_05_3D.nc" ), "mesh", "mdal" );
mLayerMeshSimplified->setCrs( mProject->crs() );
QVERIFY( mLayerMeshSimplified->isValid() );
mProject->addMapLayer( mLayerMeshSimplified );
Expand Down Expand Up @@ -764,7 +763,7 @@ void TestQgs3DRendering::testBufferedLineRendering()
{
const QgsRectangle fullExtent = mLayerDtm->extent();

QgsVectorLayer *layerLines = new QgsVectorLayer( QString( TEST_DATA_DIR ) + "/3d/lines.shp", "lines", "ogr" );
QgsVectorLayer *layerLines = new QgsVectorLayer( testDataPath( "/3d/lines.shp" ), "lines", "ogr" );
QVERIFY( layerLines->isValid() );

QgsLine3DSymbol *lineSymbol = new QgsLine3DSymbol;
Expand Down Expand Up @@ -811,7 +810,7 @@ void TestQgs3DRendering::testBufferedLineRenderingWidth()
{
const QgsRectangle fullExtent = mLayerDtm->extent();

QgsVectorLayer *layerLines = new QgsVectorLayer( QString( TEST_DATA_DIR ) + "/3d/lines.shp", "lines", "ogr" );
QgsVectorLayer *layerLines = new QgsVectorLayer( testDataPath( "/3d/lines.shp" ), "lines", "ogr" );
QVERIFY( layerLines->isValid() );

QgsLine3DSymbol *lineSymbol = new QgsLine3DSymbol;
Expand Down Expand Up @@ -1280,7 +1279,7 @@ void TestQgs3DRendering::testEpsg4978LineRendering()
QgsCoordinateReferenceSystem newCrs( QStringLiteral( "EPSG:4978" ) );
p.setCrs( newCrs );

QgsVectorLayer *layerLines = new QgsVectorLayer( QString( TEST_DATA_DIR ) + "/3d/earth_size_sphere_4978.gpkg", "lines", "ogr" );
QgsVectorLayer *layerLines = new QgsVectorLayer( testDataPath( "/3d/earth_size_sphere_4978.gpkg" ), "lines", "ogr" );

QgsLine3DSymbol *lineSymbol = new QgsLine3DSymbol;
lineSymbol->setRenderAsSimpleLines( true );
Expand Down Expand Up @@ -1506,8 +1505,7 @@ void TestQgs3DRendering::testAmbientOcclusion()
{
// =============================================
// =========== creating Qgs3DMapSettings
const QString dataDir( TEST_DATA_DIR );
QgsRasterLayer *layerDtm = new QgsRasterLayer( dataDir + "/3d/dtm.tif", "dtm", "gdal" );
QgsRasterLayer *layerDtm = new QgsRasterLayer( testDataPath( "/3d/dtm.tif" ), "dtm", "gdal" );
QVERIFY( layerDtm->isValid() );

const QgsRectangle fullExtent = layerDtm->extent();
Expand Down Expand Up @@ -1568,8 +1566,7 @@ void TestQgs3DRendering::testDepthBuffer()
{
// =============================================
// =========== creating Qgs3DMapSettings
const QString dataDir( TEST_DATA_DIR );
QgsRasterLayer *layerDtm = new QgsRasterLayer( dataDir + "/3d/dtm.tif", "dtm", "gdal" );
QgsRasterLayer *layerDtm = new QgsRasterLayer( testDataPath( "/3d/dtm.tif" ), "dtm", "gdal" );
QVERIFY( layerDtm->isValid() );
QgsProject project;
project.addMapLayer( layerDtm );
Expand Down Expand Up @@ -1713,8 +1710,7 @@ void TestQgs3DRendering::testDebugMap()
{
// =============================================
// =========== creating Qgs3DMapSettings
const QString dataDir( TEST_DATA_DIR );
QgsRasterLayer *layerDtm = new QgsRasterLayer( dataDir + "/3d/dtm.tif", "dtm", "gdal" );
QgsRasterLayer *layerDtm = new QgsRasterLayer( testDataPath( "/3d/dtm.tif" ), "dtm", "gdal" );
QVERIFY( layerDtm->isValid() );

const QgsRectangle fullExtent = layerDtm->extent();
Expand Down Expand Up @@ -1807,8 +1803,7 @@ void TestQgs3DRendering::test3DSceneExporter()
{
// =============================================
// =========== creating Qgs3DMapSettings
const QString dataDir( TEST_DATA_DIR );
QgsVectorLayer *layerPoly = new QgsVectorLayer( dataDir + "/3d/polygons.gpkg.gz", "polygons", "ogr" );
QgsVectorLayer *layerPoly = new QgsVectorLayer( testDataPath( "/3d/polygons.gpkg.gz" ), "polygons", "ogr" );
QVERIFY( layerPoly->isValid() );

const QgsRectangle fullExtent = layerPoly->extent();
Expand Down

0 comments on commit 4edd328

Please sign in to comment.