Skip to content

Commit

Permalink
Merge pull request #6635 from rouault/autotest_fix_minimal_builds
Browse files Browse the repository at this point in the history
autotest: make test pass on a minimal build (fixes #6327)
  • Loading branch information
rouault committed Nov 9, 2022
2 parents f2d1c43 + 81f29d7 commit 6216322
Show file tree
Hide file tree
Showing 147 changed files with 1,215 additions and 178 deletions.
26 changes: 15 additions & 11 deletions .github/workflows/cmake_builds.yml
Expand Up @@ -524,34 +524,38 @@ jobs:
- name: Install dependency
shell: bash -l {0}
run: |
conda install --yes --quiet --name gdalenv -c conda-forge proj clcache
conda install --yes --quiet --name gdalenv -c conda-forge proj clcache pytest pytest-env lxml
cd $CONDA_PREFIX/Library/share/proj
curl http://download.osgeo.org/proj/proj-datumgrid-1.8.tar.gz > proj-datumgrid-1.8.tar.gz
tar xvzf proj-datumgrid-1.8.tar.gz
cd $OLDPWD
- name: Configure
shell: bash -l {0}
run: |
mkdir -p $GITHUB_WORKSPACE/build
export CONDA_PREFIX_BACKUP=${CONDA_PREFIX}
conda deactivate
cmake -A ${architecture} -G "${generator}" -Werror=dev "-DCMAKE_C_COMPILER_LAUNCHER=clcache" "-DCMAKE_CXX_COMPILER_LAUNCHER=clcache" "-DPROJ_INCLUDE_DIR=${CONDA_PREFIX_BACKUP}/Library/include" "-DPROJ_LIBRARY=${CONDA_PREFIX_BACKUP}/Library/lib/proj.lib" -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} -S "$GITHUB_WORKSPACE" -B "$GITHUB_WORKSPACE/build" -DCMAKE_C_FLAGS=" /WX" -DCMAKE_CXX_FLAGS=" /WX" -DGDAL_USE_EXTERNAL_LIBS:BOOL=OFF -DWERROR_DEV_FLAG="-Werror=dev"
cmake -A ${architecture} -G "${generator}" -Werror=dev "-DCMAKE_C_COMPILER_LAUNCHER=clcache" "-DCMAKE_CXX_COMPILER_LAUNCHER=clcache" -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} -S "$GITHUB_WORKSPACE" -B "$GITHUB_WORKSPACE/build" -DCMAKE_C_FLAGS=" /WX" -DCMAKE_CXX_FLAGS=" /WX" -DGDAL_USE_EXTERNAL_LIBS:BOOL=OFF -DWERROR_DEV_FLAG="-Werror=dev"
- name: Build
shell: bash -l {0}
run: cmake --build $GITHUB_WORKSPACE/build --config RelWithDebInfo -j 2
- name: Configure with even less dependencies
shell: bash -l {0}
run: |
export CONDA_PREFIX_BACKUP=${CONDA_PREFIX}
conda deactivate
rm -f build/CMakeCache.txt
cmake -A ${architecture} -G "${generator}" -Werror=dev "-DCMAKE_C_COMPILER_LAUNCHER=clcache" "-DCMAKE_CXX_COMPILER_LAUNCHER=clcache" "-DPROJ_INCLUDE_DIR=${CONDA_PREFIX_BACKUP}/Library/include" "-DPROJ_LIBRARY=${CONDA_PREFIX_BACKUP}/Library/lib/proj.lib" -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} -S "$GITHUB_WORKSPACE" -B "$GITHUB_WORKSPACE/build" -DCMAKE_C_FLAGS=" /WX" -DCMAKE_CXX_FLAGS=" /WX" -DGDAL_USE_EXTERNAL_LIBS:BOOL=OFF -DGDAL_USE_PNG_INTERNAL=OFF -DGDAL_USE_JPEG_INTERNAL=OFF -DGDAL_USE_JPEG12_INTERNAL=OFF -DGDAL_USE_GIF_INTERNAL=OFF -DGDAL_USE_LERC_INTERNAL=OFF -DGDAL_USE_LERCV1_INTERNAL=OFF -DGDAL_USE_QHULL_INTERNAL=OFF -DGDAL_USE_OPENCAD_INTERNAL=OFF -DWERROR_DEV_FLAG="-Werror=dev"
cmake -A ${architecture} -G "${generator}" -Werror=dev "-DCMAKE_C_COMPILER_LAUNCHER=clcache" "-DCMAKE_CXX_COMPILER_LAUNCHER=clcache" -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} -S "$GITHUB_WORKSPACE" -B "$GITHUB_WORKSPACE/build" -DCMAKE_C_FLAGS=" /WX" -DCMAKE_CXX_FLAGS=" /WX" -DGDAL_USE_EXTERNAL_LIBS:BOOL=OFF -DGDAL_USE_PNG_INTERNAL=OFF -DGDAL_USE_JPEG_INTERNAL=OFF -DGDAL_USE_JPEG12_INTERNAL=OFF -DGDAL_USE_GIF_INTERNAL=OFF -DGDAL_USE_LERC_INTERNAL=OFF -DGDAL_USE_LERCV1_INTERNAL=OFF -DGDAL_USE_QHULL_INTERNAL=OFF -DGDAL_USE_OPENCAD_INTERNAL=OFF -DWERROR_DEV_FLAG="-Werror=dev"
- name: Configure with even less dependencies, and disabling all optional drivers
shell: bash -l {0}
run: |
export CONDA_PREFIX_BACKUP=${CONDA_PREFIX}
conda deactivate
rm -f build/CMakeCache.txt
cmake -A ${architecture} -G "${generator}" -Werror=dev "-DCMAKE_C_COMPILER_LAUNCHER=clcache" "-DCMAKE_CXX_COMPILER_LAUNCHER=clcache" "-DPROJ_INCLUDE_DIR=${CONDA_PREFIX_BACKUP}/Library/include" "-DPROJ_LIBRARY=${CONDA_PREFIX_BACKUP}/Library/lib/proj.lib" -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} -S "$GITHUB_WORKSPACE" -B "$GITHUB_WORKSPACE/build" -DCMAKE_C_FLAGS=" /WX" -DCMAKE_CXX_FLAGS=" /WX" -DGDAL_USE_EXTERNAL_LIBS:BOOL=OFF -DGDAL_USE_PNG_INTERNAL=OFF -DGDAL_USE_JPEG_INTERNAL=OFF -DGDAL_USE_JPEG12_INTERNAL=OFF -DGDAL_USE_GIF_INTERNAL=OFF -DGDAL_USE_LERC_INTERNAL=OFF -DGDAL_USE_LERCV1_INTERNAL=OFF -DGDAL_USE_QHULL_INTERNAL=OFF -DGDAL_USE_OPENCAD_INTERNAL=OFF -DGDAL_BUILD_OPTIONAL_DRIVERS=OFF -DOGR_BUILD_OPTIONAL_DRIVERS=OFF -DWERROR_DEV_FLAG="-Werror=dev"
cmake -A ${architecture} -G "${generator}" -Werror=dev "-DCMAKE_C_COMPILER_LAUNCHER=clcache" "-DCMAKE_CXX_COMPILER_LAUNCHER=clcache" -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} -S "$GITHUB_WORKSPACE" -B "$GITHUB_WORKSPACE/build" -DCMAKE_C_FLAGS=" /WX" -DCMAKE_CXX_FLAGS=" /WX" -DGDAL_USE_EXTERNAL_LIBS:BOOL=OFF -DGDAL_USE_PNG_INTERNAL=OFF -DGDAL_USE_JPEG_INTERNAL=OFF -DGDAL_USE_JPEG12_INTERNAL=OFF -DGDAL_USE_GIF_INTERNAL=OFF -DGDAL_USE_LERC_INTERNAL=OFF -DGDAL_USE_LERCV1_INTERNAL=OFF -DGDAL_USE_QHULL_INTERNAL=OFF -DGDAL_USE_OPENCAD_INTERNAL=OFF -DGDAL_BUILD_OPTIONAL_DRIVERS=OFF -DOGR_BUILD_OPTIONAL_DRIVERS=OFF -DWERROR_DEV_FLAG="-Werror=dev"
- name: Build
shell: bash -l {0}
run: cmake --build $GITHUB_WORKSPACE/build --config RelWithDebInfo -j 2
- name: test (with ctest)
shell: bash -l {0}
run: |
ctest --test-dir $GITHUB_WORKSPACE/build -C RelWithDebInfo -V -j 3
env:
SKIP_GDAL_HTTP_SSL_VERIFYSTATUS: YES
BUILD_NAME: "build-windows-conda"
- name: Show gdal.pc
shell: bash -l {0}
run: cat $GITHUB_WORKSPACE/build/gdal.pc
Expand Down
13 changes: 11 additions & 2 deletions autotest/alg/applyverticalshiftgrid.py
Expand Up @@ -31,6 +31,7 @@


import gdaltest
import pytest

from osgeo import gdal, osr

Expand Down Expand Up @@ -303,7 +304,11 @@ def test_applyverticalshiftgrid_5():

def test_applyverticalshiftgrid_6():

grid_ds = gdal.GetDriverByName("GTX").Create(
drv = gdal.GetDriverByName("GTX")
if drv is None:
pytest.skip("GTX driver missing")

grid_ds = drv.Create(
"tmp/applyverticalshiftgrid_6.gtx", 1440, 721, 1, gdal.GDT_Float32
)
grid_ds.SetGeoTransform([-180.125, 0.25, 0, 90.125, 0, -0.25])
Expand All @@ -329,7 +334,11 @@ def test_applyverticalshiftgrid_6():

def test_applyverticalshiftgrid_7():

grid_ds = gdal.GetDriverByName("GTX").Create(
drv = gdal.GetDriverByName("GTX")
if drv is None:
pytest.skip("GTX driver missing")

grid_ds = drv.Create(
"tmp/applyverticalshiftgrid_7.gtx", 700, 721, 1, gdal.GDT_Float32
)
grid_ds.SetGeoTransform([-150 + 360, 0.25, 0, 90.125, 0, -0.25])
Expand Down
3 changes: 3 additions & 0 deletions autotest/alg/contour.py
Expand Up @@ -366,6 +366,9 @@ def test_contour_nodata_precision_issue_float32():

def test_contour_too_many_levels():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

ogr_ds = ogr.GetDriverByName("ESRI Shapefile").CreateDataSource(
"/vsimem/contour.shp"
)
Expand Down
19 changes: 19 additions & 0 deletions autotest/alg/polygonize.py
Expand Up @@ -34,6 +34,7 @@
from collections import defaultdict

import ogrtest
import pytest

from osgeo import gdal, ogr

Expand All @@ -43,6 +44,9 @@

def test_polygonize_1(is_int_polygonize=True):

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

src_ds = gdal.Open("data/polygonize_in.grd")
src_band = src_ds.GetRasterBand(1)

Expand Down Expand Up @@ -98,6 +102,9 @@ def test_polygonize_1_float():

def test_polygonize_2():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

src_ds = gdal.Open("data/polygonize_in.grd")
src_band = src_ds.GetRasterBand(1)

Expand Down Expand Up @@ -150,6 +157,9 @@ def test_polygonize_2():

def test_polygonize_3():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

src_ds = gdal.Open("data/polygonize_in_2.grd")
src_band = src_ds.GetRasterBand(1)

Expand Down Expand Up @@ -196,6 +206,9 @@ def test_polygonize_3():

def test_polygonize_4():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

src_ds = gdal.Open("data/polygonize_in.grd")
src_band = src_ds.GetRasterBand(1)

Expand Down Expand Up @@ -247,6 +260,9 @@ def test_polygonize_4():

def test_polygonize_5():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

src_ds = gdal.Open("data/polygonize_in_3.grd")
src_band = src_ds.GetRasterBand(1)

Expand Down Expand Up @@ -293,6 +309,9 @@ def test_polygonize_5():

def test_polygonize_6():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

src_ds = gdal.Open("data/polygonize_in_4.grd")
src_band = src_ds.GetRasterBand(1)

Expand Down
6 changes: 6 additions & 0 deletions autotest/alg/rasterize.py
Expand Up @@ -104,6 +104,9 @@ def test_rasterize_1():

def test_rasterize_2():

if gdal.GetDriverByName("CSV") is None:
pytest.skip("CSV driver missing")

# Setup working spatial reference
sr_wkt = 'LOCAL_CS["arbitrary"]'

Expand Down Expand Up @@ -451,6 +454,9 @@ def test_rasterize_6():

def test_rasterize_7():

if gdal.GetDriverByName("CSV") is None:
pytest.skip("CSV driver missing")

# Setup working spatial reference
sr_wkt = 'LOCAL_CS["arbitrary"]'

Expand Down
21 changes: 21 additions & 0 deletions autotest/alg/sieve.py
Expand Up @@ -40,6 +40,9 @@

def test_sieve_1():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

drv = gdal.GetDriverByName("GTiff")
src_ds = gdal.Open("data/sieve_src.grd")
src_band = src_ds.GetRasterBand(1)
Expand Down Expand Up @@ -69,6 +72,9 @@ def test_sieve_1():

def test_sieve_2():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

drv = gdal.GetDriverByName("GTiff")
src_ds = gdal.Open("data/sieve_src.grd")
src_band = src_ds.GetRasterBand(1)
Expand Down Expand Up @@ -98,6 +104,9 @@ def test_sieve_2():

def test_sieve_3():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

drv = gdal.GetDriverByName("GTiff")
src_ds = gdal.Open("data/unmergable.grd")
src_band = src_ds.GetRasterBand(1)
Expand Down Expand Up @@ -128,6 +137,9 @@ def test_sieve_3():

def test_sieve_4():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

drv = gdal.GetDriverByName("GTiff")
src_ds = gdal.Open("data/sieve_2634.grd")
src_band = src_ds.GetRasterBand(1)
Expand Down Expand Up @@ -158,6 +170,9 @@ def test_sieve_4():

def test_sieve_5():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

drv = gdal.GetDriverByName("GTiff")
src_ds = gdal.Open("data/sieve_src.grd")
src_band = src_ds.GetRasterBand(1)
Expand Down Expand Up @@ -225,6 +240,9 @@ def test_sieve_6():

def test_sieve_7():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

gdal.FileFromMemBuffer(
"/vsimem/sieve_7.asc",
"""ncols 7
Expand Down Expand Up @@ -283,6 +301,9 @@ def test_sieve_7():

def test_sieve_8():

if gdal.GetDriverByName("AAIGRID") is None:
pytest.skip("AAIGRID driver missing")

gdal.FileFromMemBuffer(
"/vsimem/sieve_8.asc",
"""ncols 7
Expand Down
4 changes: 4 additions & 0 deletions autotest/alg/warp.py
Expand Up @@ -1770,6 +1770,10 @@ def test_warp_54(use_optim):

def test_warp_55():

# data/warpedvrt_with_ovr.vrt uses a PNG
if gdal.GetDriverByName("PNG") is None:
pytest.skip("PNG driver missing")

ds = gdal.Open("data/warpedvrt_with_ovr.vrt")
cs = ds.GetRasterBand(1).GetOverview(0).Checksum()
assert cs == 25128
Expand Down
21 changes: 21 additions & 0 deletions autotest/cpp/test_gdal.cpp
Expand Up @@ -1239,6 +1239,7 @@ namespace tut
template<> template<> void object::test<19>()
{
// ENVI
if( GDALGetDriverByName("ENVI") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GDRIVERS_DATA_DIR "envi/envi_rgbsmall_bip.img"));
Expand All @@ -1255,6 +1256,8 @@ namespace tut
ensure_equals( sLayout.nLineOffset, 3 * 50 );
ensure_equals( sLayout.nBandOffset, 1 );
}

if( GDALGetDriverByName("ENVI") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GDRIVERS_DATA_DIR "envi/envi_rgbsmall_bil.img"));
Expand All @@ -1271,6 +1274,8 @@ namespace tut
ensure_equals( sLayout.nLineOffset, 3 * 50 );
ensure_equals( sLayout.nBandOffset, 50 );
}

if( GDALGetDriverByName("ENVI") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GDRIVERS_DATA_DIR "envi/envi_rgbsmall_bsq.img"));
Expand All @@ -1289,6 +1294,7 @@ namespace tut
}

// GTiff
if( GDALGetDriverByName("GTiff") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GCORE_DATA_DIR "byte.tif"));
Expand All @@ -1305,6 +1311,8 @@ namespace tut
ensure_equals( sLayout.nLineOffset, 20 );
ensure_equals( sLayout.nBandOffset, 0 );
}

if( GDALGetDriverByName("GTiff") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GCORE_DATA_DIR "rgbsmall.tif"));
Expand All @@ -1313,6 +1321,8 @@ namespace tut
// Compressed
ensure( !poDS->GetRawBinaryLayout(sLayout) );
}

if( GDALGetDriverByName("GTiff") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GCORE_DATA_DIR "stefan_full_rgba.tif"));
Expand All @@ -1329,6 +1339,8 @@ namespace tut
ensure_equals( sLayout.nLineOffset, 162 * 4 );
ensure_equals( sLayout.nBandOffset, 1 );
}

if( GDALGetDriverByName("GTiff") != nullptr )
{
GDALDatasetUniquePtr poSrcDS(
GDALDataset::Open(GCORE_DATA_DIR "rgbsmall.tif"));
Expand All @@ -1353,6 +1365,8 @@ namespace tut
poDS.reset();
VSIUnlink(tmpFilename);
}

if( GDALGetDriverByName("GTiff") != nullptr )
{
GDALDatasetUniquePtr poSrcDS(
GDALDataset::Open(GCORE_DATA_DIR "rgbsmall.tif"));
Expand Down Expand Up @@ -1382,6 +1396,8 @@ namespace tut
poDS.reset();
VSIUnlink(tmpFilename);
}

if( GDALGetDriverByName("GTiff") != nullptr )
{
GDALDatasetUniquePtr poSrcDS(
GDALDataset::Open(GCORE_DATA_DIR "rgbsmall.tif"));
Expand Down Expand Up @@ -1413,6 +1429,7 @@ namespace tut
}

// ISIS3
if( GDALGetDriverByName("ISIS3") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GDRIVERS_DATA_DIR "isis3/isis3_detached.lbl"));
Expand All @@ -1431,6 +1448,7 @@ namespace tut
}

// VICAR
if( GDALGetDriverByName("VICAR") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GDRIVERS_DATA_DIR "vicar/test_vicar_truncated.bin"));
Expand All @@ -1449,6 +1467,7 @@ namespace tut
}

// FITS
if( GDALGetDriverByName("FITS") != nullptr )
{
GDALDatasetUniquePtr poSrcDS(
GDALDataset::Open(GCORE_DATA_DIR "int16.tif"));
Expand Down Expand Up @@ -1481,6 +1500,7 @@ namespace tut
}

// PDS 3
if( GDALGetDriverByName("PDS") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GDRIVERS_DATA_DIR "pds/mc02_truncated.img"));
Expand All @@ -1499,6 +1519,7 @@ namespace tut
}

// PDS 4
if( GDALGetDriverByName("PDS4") != nullptr )
{
GDALDatasetUniquePtr poDS(
GDALDataset::Open(GDRIVERS_DATA_DIR "pds4/byte_pds4_cart_1700.xml"));
Expand Down

0 comments on commit 6216322

Please sign in to comment.