Skip to content

Commit e91a765

Browse files
committed
PYTHON-5879 Generate non-coverage companion tasks for macOS/Win64 encryption variants
The cycling algorithm assigns python 3.13/3.14t/3.14 to all three "latest" topology slots, so every "latest" test-non-standard task gets COVERAGE=1 and the "cov" tag. Filtering "!.cov" on macOS/Win64 therefore removed ALL latest tasks, leaving nothing to activate in patch builds. Fix: emit a non-coverage companion task alongside each coverage task. The companion has the same python/topology/version but no COVERAGE expansion and no "cov" tag, so it is selected by the ".test-non-standard !.pypy !.cov" filter used on macOS/Win64 encryption variants.
1 parent a3566f3 commit e91a765

2 files changed

Lines changed: 81 additions & 0 deletions

File tree

.evergreen/generated_configs/tasks.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4828,6 +4828,29 @@ tasks:
48284828
- free-threaded
48294829
- pr
48304830
- cov
4831+
- name: test-non-standard-latest-python3.14t-noauth-ssl-replica-set
4832+
commands:
4833+
- func: run server
4834+
vars:
4835+
AUTH: noauth
4836+
SSL: ssl
4837+
TOPOLOGY: replica_set
4838+
VERSION: latest
4839+
- func: run tests
4840+
vars:
4841+
AUTH: noauth
4842+
SSL: ssl
4843+
TOPOLOGY: replica_set
4844+
VERSION: latest
4845+
TOOLCHAIN_VERSION: 3.14t
4846+
tags:
4847+
- test-non-standard
4848+
- server-latest
4849+
- python-3.14t
4850+
- replica_set-noauth-ssl
4851+
- noauth
4852+
- free-threaded
4853+
- pr
48314854
- name: test-non-standard-latest-pypy3.11-noauth-ssl-replica-set
48324855
commands:
48334856
- func: run server
@@ -4875,6 +4898,28 @@ tasks:
48754898
- auth
48764899
- pr
48774900
- cov
4901+
- name: test-non-standard-latest-python3.14-auth-ssl-sharded-cluster
4902+
commands:
4903+
- func: run server
4904+
vars:
4905+
AUTH: auth
4906+
SSL: ssl
4907+
TOPOLOGY: sharded_cluster
4908+
VERSION: latest
4909+
- func: run tests
4910+
vars:
4911+
AUTH: auth
4912+
SSL: ssl
4913+
TOPOLOGY: sharded_cluster
4914+
VERSION: latest
4915+
TOOLCHAIN_VERSION: "3.14"
4916+
tags:
4917+
- test-non-standard
4918+
- server-latest
4919+
- python-3.14
4920+
- sharded_cluster-auth-ssl
4921+
- auth
4922+
- pr
48784923
- name: test-non-standard-latest-python3.13-noauth-nossl-standalone-cov
48794924
commands:
48804925
- func: run server
@@ -4900,6 +4945,28 @@ tasks:
49004945
- noauth
49014946
- pr
49024947
- cov
4948+
- name: test-non-standard-latest-python3.13-noauth-nossl-standalone
4949+
commands:
4950+
- func: run server
4951+
vars:
4952+
AUTH: noauth
4953+
SSL: nossl
4954+
TOPOLOGY: standalone
4955+
VERSION: latest
4956+
- func: run tests
4957+
vars:
4958+
AUTH: noauth
4959+
SSL: nossl
4960+
TOPOLOGY: standalone
4961+
VERSION: latest
4962+
TOOLCHAIN_VERSION: "3.13"
4963+
tags:
4964+
- test-non-standard
4965+
- server-latest
4966+
- python-3.13
4967+
- standalone-noauth-nossl
4968+
- noauth
4969+
- pr
49034970
- name: test-non-standard-rapid-python3.11-noauth-ssl-replica-set
49044971
commands:
49054972
- func: run server

.evergreen/scripts/generate_config.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -679,6 +679,20 @@ def create_test_non_standard_tasks():
679679
test_vars["TOOLCHAIN_VERSION"] = python
680680
test_func = FunctionCall(func="run tests", vars=test_vars)
681681
tasks.append(EvgTask(name=name, tags=tags, commands=[server_func, test_func]))
682+
# For each coverage task, also emit a non-coverage companion so that
683+
# macOS/Win64 encryption variants (which filter out .cov due to timeout
684+
# constraints) still have a "latest" task to activate in patch builds.
685+
if pr and "cov" in tags:
686+
nc_expansions = {k: v for k, v in expansions.items() if k != "COVERAGE"}
687+
nc_tags = [t for t in tags if t != "cov"]
688+
nc_name = get_task_name("test-non-standard", python=python, **nc_expansions)
689+
nc_server_func = FunctionCall(func="run server", vars=nc_expansions)
690+
nc_test_vars = nc_expansions.copy()
691+
nc_test_vars["TOOLCHAIN_VERSION"] = python
692+
nc_test_func = FunctionCall(func="run tests", vars=nc_test_vars)
693+
tasks.append(
694+
EvgTask(name=nc_name, tags=nc_tags, commands=[nc_server_func, nc_test_func])
695+
)
682696
return tasks
683697

684698

0 commit comments

Comments
 (0)