From 9e020050b8fa8e184bc1d58e6a4bc1edfa76cb8c Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Thu, 6 Feb 2025 10:39:41 +0900 Subject: [PATCH] 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 --- .../injection_points/expected/basic.out | 26 +++++++++++++++++++ .../modules/injection_points/specs/basic.spec | 11 ++++---- 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'); +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