tests/write/test_pack_3064.py exercises the unpack=True read -> pack=True write round-trip on numpy and dask+numpy only. Its module docstring still says "mask_and_scale is a CPU eager + dask read feature (GPU/VRT reject it)", which #3075 made stale: unpack=True now works with gpu=True and with gpu=True, chunks=N. Nothing in the suite writes a GPU-read array back with pack=True.
The gap hides a real crash. Both GPU-backed variants raise today (#3112): the pack transform runs in to_geotiff before backend dispatch, so the GPU writer never even sees the data.
Wanted:
Test-only change; the source fix belongs to #3112.
Found by /sweep-test-coverage (category 1, backend coverage; severity HIGH).
tests/write/test_pack_3064.pyexercises theunpack=Trueread ->pack=Truewrite round-trip on numpy and dask+numpy only. Its module docstring still says "mask_and_scale is a CPU eager + dask read feature (GPU/VRT reject it)", which #3075 made stale:unpack=Truenow works withgpu=Trueand withgpu=True, chunks=N. Nothing in the suite writes a GPU-read array back withpack=True.The gap hides a real crash. Both GPU-backed variants raise today (#3112): the pack transform runs in
to_geotiffbefore backend dispatch, so the GPU writer never even sees the data.Wanted:
pack=Trueround-trip tests next to the existing numpy/dask ones, behind the GPU-skip marker,xfail(strict=True)on to_geotiff(pack=True) crashes on cupy and dask+cupy input #3112 until the crash is fixed so they flip to failures when it is.Test-only change; the source fix belongs to #3112.
Found by /sweep-test-coverage (category 1, backend coverage; severity HIGH).