Skip to content

Commit 06af4e4

Browse files
committed
PYTHON-5879 Use distinct tag for non-coverage companion tasks to avoid selector leakage
Companion tasks previously carried the "test-non-standard" tag, which caused selectors in other variants (load-balancer, PyOpenSSL, standalone-noauth-nossl) to accidentally match them and run duplicate tasks. Fix: companions now use "test-non-standard-no-cov" as their primary tag instead of "test-non-standard". The macOS/Win64 encryption variant selectors are updated to explicitly include ".test-non-standard-no-cov !.pypy" alongside the existing ".test-non-standard !.pypy !.cov" selector.
1 parent e91a765 commit 06af4e4

3 files changed

Lines changed: 17 additions & 5 deletions

File tree

.evergreen/generated_configs/tasks.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4844,7 +4844,7 @@ tasks:
48444844
VERSION: latest
48454845
TOOLCHAIN_VERSION: 3.14t
48464846
tags:
4847-
- test-non-standard
4847+
- test-non-standard-no-cov
48484848
- server-latest
48494849
- python-3.14t
48504850
- replica_set-noauth-ssl
@@ -4914,7 +4914,7 @@ tasks:
49144914
VERSION: latest
49154915
TOOLCHAIN_VERSION: "3.14"
49164916
tags:
4917-
- test-non-standard
4917+
- test-non-standard-no-cov
49184918
- server-latest
49194919
- python-3.14
49204920
- sharded_cluster-auth-ssl
@@ -4961,7 +4961,7 @@ tasks:
49614961
VERSION: latest
49624962
TOOLCHAIN_VERSION: "3.13"
49634963
tags:
4964-
- test-non-standard
4964+
- test-non-standard-no-cov
49654965
- server-latest
49664966
- python-3.13
49674967
- standalone-noauth-nossl

.evergreen/generated_configs/variants.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ buildvariants:
194194
- name: encryption-macos
195195
tasks:
196196
- name: .test-non-standard !.pypy !.cov
197+
- name: .test-non-standard-no-cov !.pypy
197198
display_name: Encryption macOS
198199
run_on:
199200
- macos-14
@@ -204,6 +205,7 @@ buildvariants:
204205
- name: encryption-win64
205206
tasks:
206207
- name: .test-non-standard !.pypy !.cov
208+
- name: .test-non-standard-no-cov !.pypy
207209
display_name: Encryption Win64
208210
run_on:
209211
- windows-2022-latest-small
@@ -225,6 +227,7 @@ buildvariants:
225227
- name: encryption-crypt_shared-macos
226228
tasks:
227229
- name: .test-non-standard !.pypy !.cov
230+
- name: .test-non-standard-no-cov !.pypy
228231
display_name: Encryption crypt_shared macOS
229232
run_on:
230233
- macos-14
@@ -236,6 +239,7 @@ buildvariants:
236239
- name: encryption-crypt_shared-win64
237240
tasks:
238241
- name: .test-non-standard !.pypy !.cov
242+
- name: .test-non-standard-no-cov !.pypy
239243
display_name: Encryption crypt_shared Win64
240244
run_on:
241245
- windows-2022-latest-small

.evergreen/scripts/generate_config.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,9 @@ def get_encryption_expansions(encryption):
134134
if host != "rhel8":
135135
# Exclude PyPy (no Evergreen toolchain on macOS/win64) and coverage tasks
136136
# (encryption suites exceed the 60-min timeout with coverage overhead on macOS/win64).
137-
tasks = [".test-non-standard !.pypy !.cov"]
137+
# Also include the non-coverage companion tasks (test-non-standard-no-cov) which
138+
# carry the "latest" server tasks without COVERAGE=1.
139+
tasks = [".test-non-standard !.pypy !.cov", ".test-non-standard-no-cov !.pypy"]
138140
variant = create_variant(
139141
tasks,
140142
display_name,
@@ -684,7 +686,13 @@ def create_test_non_standard_tasks():
684686
# constraints) still have a "latest" task to activate in patch builds.
685687
if pr and "cov" in tags:
686688
nc_expansions = {k: v for k, v in expansions.items() if k != "COVERAGE"}
687-
nc_tags = [t for t in tags if t != "cov"]
689+
# Use a distinct primary tag so companions are not selected by existing
690+
# ".test-non-standard" selectors (e.g. load-balancer, PyOpenSSL variants).
691+
nc_tags = [
692+
"test-non-standard-no-cov" if t == "test-non-standard" else t
693+
for t in tags
694+
if t != "cov"
695+
]
688696
nc_name = get_task_name("test-non-standard", python=python, **nc_expansions)
689697
nc_server_func = FunctionCall(func="run server", vars=nc_expansions)
690698
nc_test_vars = nc_expansions.copy()

0 commit comments

Comments
 (0)