aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2025-02-06 10:39:41 +0900
committerMichael Paquier <michael@paquier.xyz>2025-02-06 10:39:41 +0900
commit9e020050b8fa8e184bc1d58e6a4bc1edfa76cb8c (patch)
tree5368b88b9132fef1ce3540603a0a6618730d8d5d /src
parent306dc520b9dfd6014613961962a89940a431a069 (diff)
downloadpostgresql-9e020050b8fa8e184bc1d58e6a4bc1edfa76cb8c.tar.gz
postgresql-9e020050b8fa8e184bc1d58e6a4bc1edfa76cb8c.zip
injection_points: Re-enable permutation in isolation test "basic"
This test has been disabled in 9f00edc22888 due to an instable expected output, where it would be possible for the wait step to report its result after the detach step is done. The expected output was ordered so as the detach would always report last. Isolation test permutations have the option to use markers to control the ordering for cases like this one, as documented in src/test/isolation/README. The permutation is enabled once again, this time with a marker added so as the detach step reports only once the wait step has finished, ensuring a correct output ordering. Reviewed-by: Bertrand Drouvot Discussion: https://postgr.es/m/Z6MBZTX5EqQ6A8Zc@paquier.xyz
Diffstat (limited to 'src')
-rw-r--r--src/test/modules/injection_points/expected/basic.out26
-rw-r--r--src/test/modules/injection_points/specs/basic.spec11
2 files changed, 31 insertions, 6 deletions
diff --git a/src/test/modules/injection_points/expected/basic.out b/src/test/modules/injection_points/expected/basic.out
index 9499ef4bd9d..840ce2dac90 100644
--- a/src/test/modules/injection_points/expected/basic.out
+++ b/src/test/modules/injection_points/expected/basic.out
@@ -1,5 +1,31 @@
Parsed test spec with 2 sessions
+starting permutation: wait1 wakeup2 detach2
+injection_points_attach
+-----------------------
+
+(1 row)
+
+step wait1: SELECT injection_points_run('injection-points-wait'); <waiting ...>
+step wakeup2: SELECT injection_points_wakeup('injection-points-wait');
+injection_points_wakeup
+-----------------------
+
+(1 row)
+
+step wait1: <... completed>
+injection_points_run
+--------------------
+
+(1 row)
+
+step detach2: SELECT injection_points_detach('injection-points-wait');
+injection_points_detach
+-----------------------
+
+(1 row)
+
+
starting permutation: wait1 detach2 wakeup2
injection_points_attach
-----------------------
diff --git a/src/test/modules/injection_points/specs/basic.spec b/src/test/modules/injection_points/specs/basic.spec
index 47db676c0c1..753128e7f36 100644
--- a/src/test/modules/injection_points/specs/basic.spec
+++ b/src/test/modules/injection_points/specs/basic.spec
@@ -25,12 +25,11 @@ session s2
step wakeup2 { SELECT injection_points_wakeup('injection-points-wait'); }
step detach2 { SELECT injection_points_detach('injection-points-wait'); }
-# Detach after wait and wakeup.
-# Permutations like the following one commented out should be avoided, as
-# the detach may finish before the SQL function doing the wait returns
-# its result. It is recommended to use wakeups as the last permutation
-# should a wait be done within an SQL function.
-#permutation wait1 wakeup2 detach2
+# Detach after wait and wakeup. Note that the detach may finish before
+# the SQL function doing the wait returns its result. In order to avoid
+# any ordering issues, the detach step reports its result only once the
+# wait has completed. This is enforced with a parenthesized marker.
+permutation wait1 wakeup2 detach2(wait1)
# Detach before wakeup. s1 waits until wakeup, ignores the detach.
permutation wait1 detach2 wakeup2