diff --git a/.ci/test_blocklist_qt6.txt b/.ci/test_blocklist_qt6.txt
index aa373c4a4df..66c21e1fd66 100644
--- a/.ci/test_blocklist_qt6.txt
+++ b/.ci/test_blocklist_qt6.txt
@@ -59,7 +59,6 @@ PyQgsServerWMSGetMap
PyQgsServerAccessControlWFSTransactional
PyQgsServerWFS
ProcessingQgisAlgorithmsTestPt2
-ProcessingQgisAlgorithmsTestPt3
ProcessingQgisAlgorithmsTestPt4
ProcessingGdalAlgorithmsVectorTest
ProcessingGrassAlgorithmsImageryTest
diff --git a/python/plugins/processing/tests/testdata/expected/voronoi_buffer_geos312.gml b/python/plugins/processing/tests/testdata/expected/voronoi_buffer_geos312.gml
new file mode 100644
index 00000000000..32b8d92c9fd
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/voronoi_buffer_geos312.gml
@@ -0,0 +1,91 @@
+
+
+ -5.8 -0.83.8 8.8
+
+
+
+ -1 -0.83.8 2.5
+ 3.8 -0.8 3.8 -0.8 0.5 2.5 -1 2.5 0.65 -0.8 3.8 -0.8
+ points.0
+ 1
+ 2
+
+
+
+
+ -3 2.52.16666666666667 5.7
+ 0.5 2.5 1.83333333333333 3.16666666666667 2.16666666666667 3.83333333333333 0.3 5.7 -3 3.5 -1 2.5 0.5 2.5
+ points.4
+ 5
+ 1
+
+
+
+
+ -5.8 -0.8-3 5.1
+ -5.8 -0.8 -3 -0.8 -3 3.5 -5.8 5.1 -5.8 -0.8
+ points.5
+ 6
+ 0
+
+
+
+
+ -3 -0.80.65 3.5
+ 0.65 -0.8 -1 2.5 -3 3.5 -3 -0.8 0.65 -0.8
+ points.8
+ 9
+ 0
+
+
+
+
+ 0.5 -0.83.8 3.16666666666667
+ 3.8 1.2 1.83333333333333 3.16666666666667 0.5 2.5 3.8 -0.8 3.8 1.2
+ points.2
+ 3
+ 0
+
+
+
+
+ 1.83333333333333 1.23.8 4.65
+ 3.8 4.65 2.16666666666667 3.83333333333333 1.83333333333333 3.16666666666667 3.8 1.2 3.8 4.65
+ points.1
+ 2
+ 1
+
+
+
+
+ 0.3 3.833333333333333.8 8.8
+ 3.8 8.8 2.8 8.8 1.5 7.5 0.3 5.7 2.16666666666667 3.83333333333333 3.8 4.65 3.8 8.8
+ points.3
+ 4
+ 2
+
+
+
+
+ -5.8 3.51.5 7.5
+ -5.8 5.1 -3 3.5 0.3 5.7 1.5 7.5 -5.8 7.5 -5.8 5.1
+ points.7
+ 8
+ 0
+
+
+
+
+ -5.8 7.52.8 8.8
+ -5.8 8.8 -5.8 7.5 1.5 7.5 2.8 8.8 -5.8 8.8
+ points.6
+ 7
+ 0
+
+
+
diff --git a/python/plugins/processing/tests/testdata/expected/voronoi_buffer_geos312.xsd b/python/plugins/processing/tests/testdata/expected/voronoi_buffer_geos312.xsd
new file mode 100644
index 00000000000..5e3ae1a61db
--- /dev/null
+++ b/python/plugins/processing/tests/testdata/expected/voronoi_buffer_geos312.xsd
@@ -0,0 +1,67 @@
+
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/python/plugins/processing/tests/testdata/qgis_algorithm_tests3.yaml b/python/plugins/processing/tests/testdata/qgis_algorithm_tests3.yaml
index 3310b15a1f8..50be8abbdf2 100644
--- a/python/plugins/processing/tests/testdata/qgis_algorithm_tests3.yaml
+++ b/python/plugins/processing/tests/testdata/qgis_algorithm_tests3.yaml
@@ -271,7 +271,10 @@ tests:
pk: id
- algorithm: native:voronoipolygons
- name: Vornoi with buffer region
+ name: Voronoi with buffer region (GEOS < 3.12)
+ condition:
+ geos:
+ less_than: 31200
params:
BUFFER: 10.0
INPUT:
@@ -282,6 +285,28 @@ tests:
name: expected/voronoi_buffer.gml
type: vector
pk: id
+ compare:
+ geometry:
+ normalize: True
+
+ - algorithm: native:voronoipolygons
+ name: Voronoi with buffer region (GEOS 3.12+)
+ condition:
+ geos:
+ at_least: 31200
+ params:
+ BUFFER: 10.0
+ INPUT:
+ name: points.gml
+ type: vector
+ results:
+ OUTPUT:
+ name: expected/voronoi_buffer_geos312.gml
+ type: vector
+ pk: id
+ compare:
+ geometry:
+ normalize: True
- algorithm: native:voronoipolygons
name: Voronoi without source attributes
diff --git a/python/testing/__init__.py b/python/testing/__init__.py
index 6b47a7d90df..15838e9b17c 100644
--- a/python/testing/__init__.py
+++ b/python/testing/__init__.py
@@ -751,6 +751,7 @@ class QgisTestCase(unittest.TestCase):
equal,
""
" Features (Expected fid: {}, Result fid: {}) differ in geometry with method {}: \n\n"
+ " {}\n"
" At given precision ({}):\n"
" Expected geometry: {}\n"
" Result geometry: {}\n\n"
@@ -760,6 +761,7 @@ class QgisTestCase(unittest.TestCase):
geom0_id,
geom1_id,
"geos" if topo_equal_check else "wkt",
+ "Normalized" if normalize else "Not-normalized",
precision,
geom0_wkt if not geom0_is_null else "NULL",
geom1_wkt if not geom1_is_null else "NULL",