From d802ff06d0216d59aab3ddba6cb158d1f4b014db Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Fri, 15 Mar 2024 17:55:12 +0200 Subject: [PATCH] Fix backstop in gin test if injection point is not reached Per Tom Lane's observation that the test got stuck in infinite loop if the injection_points module was not loaded. It was supposed to give up after 10000 iterations, but the backstop was broken. Discussion: https://www.postgresql.org/message-id/2498595.1710511222%40sss.pgh.pa.us --- src/test/modules/gin/expected/gin_incomplete_splits.out | 5 +++-- src/test/modules/gin/sql/gin_incomplete_splits.sql | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/test/modules/gin/expected/gin_incomplete_splits.out b/src/test/modules/gin/expected/gin_incomplete_splits.out index 9a60f8c128a..822b78cffc4 100644 --- a/src/test/modules/gin/expected/gin_incomplete_splits.out +++ b/src/test/modules/gin/expected/gin_incomplete_splits.out @@ -45,6 +45,7 @@ declare i integer; begin -- Insert arrays with 'step' elements each, until an error occurs. + i := 0; loop begin select insert_n(next_i, step) into next_i; @@ -53,12 +54,12 @@ begin exit; end; - -- The caller is expected to set an injection point that eventuall + -- The caller is expected to set an injection point that eventually -- causes an error. But bail out if still no error after 10000 -- attempts, so that we don't get stuck in an infinite loop. i := i + 1; if i = 10000 then - raise 'no error on inserts after '; + raise 'no error on inserts after % iterations', i; end if; end loop; diff --git a/src/test/modules/gin/sql/gin_incomplete_splits.sql b/src/test/modules/gin/sql/gin_incomplete_splits.sql index 4e180b25195..71253b71f3d 100644 --- a/src/test/modules/gin/sql/gin_incomplete_splits.sql +++ b/src/test/modules/gin/sql/gin_incomplete_splits.sql @@ -48,6 +48,7 @@ declare i integer; begin -- Insert arrays with 'step' elements each, until an error occurs. + i := 0; loop begin select insert_n(next_i, step) into next_i; @@ -56,12 +57,12 @@ begin exit; end; - -- The caller is expected to set an injection point that eventuall + -- The caller is expected to set an injection point that eventually -- causes an error. But bail out if still no error after 10000 -- attempts, so that we don't get stuck in an infinite loop. i := i + 1; if i = 10000 then - raise 'no error on inserts after '; + raise 'no error on inserts after % iterations', i; end if; end loop; -- 2.39.5