Skip to content
Merged
70 changes: 70 additions & 0 deletions .evergreen/generated_configs/tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4827,6 +4827,30 @@ tasks:
- noauth
- free-threaded
- pr
- cov
- name: test-non-standard-latest-python3.14t-noauth-ssl-replica-set
commands:
- func: run server
vars:
AUTH: noauth
SSL: ssl
TOPOLOGY: replica_set
VERSION: latest
- func: run tests
vars:
AUTH: noauth
SSL: ssl
TOPOLOGY: replica_set
VERSION: latest
TOOLCHAIN_VERSION: 3.14t
tags:
- test-non-standard-no-cov
- server-latest
- python-3.14t
- replica_set-noauth-ssl
- noauth
- free-threaded
- pr
- name: test-non-standard-latest-pypy3.11-noauth-ssl-replica-set
commands:
- func: run server
Expand Down Expand Up @@ -4873,6 +4897,29 @@ tasks:
- sharded_cluster-auth-ssl
- auth
- pr
- cov
- name: test-non-standard-latest-python3.14-auth-ssl-sharded-cluster
commands:
- func: run server
vars:
AUTH: auth
SSL: ssl
TOPOLOGY: sharded_cluster
VERSION: latest
- func: run tests
vars:
AUTH: auth
SSL: ssl
TOPOLOGY: sharded_cluster
VERSION: latest
TOOLCHAIN_VERSION: "3.14"
tags:
- test-non-standard-no-cov
- server-latest
- python-3.14
- sharded_cluster-auth-ssl
- auth
- pr
- name: test-non-standard-latest-python3.13-noauth-nossl-standalone-cov
commands:
- func: run server
Expand All @@ -4897,6 +4944,29 @@ tasks:
- standalone-noauth-nossl
- noauth
- pr
- cov
- name: test-non-standard-latest-python3.13-noauth-nossl-standalone
commands:
- func: run server
vars:
AUTH: noauth
SSL: nossl
TOPOLOGY: standalone
VERSION: latest
- func: run tests
vars:
AUTH: noauth
SSL: nossl
TOPOLOGY: standalone
VERSION: latest
TOOLCHAIN_VERSION: "3.13"
tags:
- test-non-standard-no-cov
- server-latest
- python-3.13
- standalone-noauth-nossl
- noauth
- pr
- name: test-non-standard-rapid-python3.11-noauth-ssl-replica-set
commands:
- func: run server
Expand Down
12 changes: 8 additions & 4 deletions .evergreen/generated_configs/variants.yml
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,8 @@ buildvariants:
tags: [encryption_tag]
- name: encryption-macos
tasks:
- name: .test-non-standard !.pypy
- name: .test-non-standard !.pypy !.cov
- name: .test-non-standard-no-cov !.pypy
display_name: Encryption macOS
run_on:
- macos-14
Expand All @@ -203,7 +204,8 @@ buildvariants:
tags: [encryption_tag]
- name: encryption-win64
tasks:
- name: .test-non-standard !.pypy
- name: .test-non-standard !.pypy !.cov
- name: .test-non-standard-no-cov !.pypy
display_name: Encryption Win64
run_on:
- windows-2022-latest-small
Expand All @@ -224,7 +226,8 @@ buildvariants:
tags: [encryption_tag]
- name: encryption-crypt_shared-macos
tasks:
- name: .test-non-standard !.pypy
- name: .test-non-standard !.pypy !.cov
- name: .test-non-standard-no-cov !.pypy
display_name: Encryption crypt_shared macOS
run_on:
- macos-14
Expand All @@ -235,7 +238,8 @@ buildvariants:
tags: [encryption_tag]
- name: encryption-crypt_shared-win64
tasks:
- name: .test-non-standard !.pypy
- name: .test-non-standard !.pypy !.cov
- name: .test-non-standard-no-cov !.pypy
display_name: Encryption crypt_shared Win64
run_on:
- windows-2022-latest-small
Expand Down
27 changes: 26 additions & 1 deletion .evergreen/scripts/generate_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,11 @@ def get_encryption_expansions(encryption):
display_name = get_variant_name(encryption, host, **expansions)
tasks = [".test-non-standard"]
if host != "rhel8":
tasks = [".test-non-standard !.pypy"]
# Exclude PyPy (no Evergreen toolchain on macOS/win64) and coverage tasks

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment isn't accurate, we have PyPy in our toolchain on all hosts.

# (encryption suites exceed the 60-min timeout with coverage overhead on macOS/win64).
# Also include the non-coverage companion tasks (test-non-standard-no-cov) which
# carry the "latest" server tasks without COVERAGE=1.
tasks = [".test-non-standard !.pypy !.cov", ".test-non-standard-no-cov !.pypy"]
variant = create_variant(
tasks,
display_name,
Expand Down Expand Up @@ -670,12 +674,33 @@ def create_test_non_standard_tasks():
expansions["TEST_MIN_DEPS"] = "1"
elif pr:
expansions["COVERAGE"] = "1"
tags.append("cov")
name = get_task_name("test-non-standard", python=python, **expansions)
server_func = FunctionCall(func="run server", vars=expansions)
test_vars = expansions.copy()
test_vars["TOOLCHAIN_VERSION"] = python
test_func = FunctionCall(func="run tests", vars=test_vars)
tasks.append(EvgTask(name=name, tags=tags, commands=[server_func, test_func]))
# For each coverage task, also emit a non-coverage companion so that
# macOS/Win64 encryption variants (which filter out .cov due to timeout
# constraints) still have a "latest" task to activate in patch builds.
if pr and "cov" in tags:
nc_expansions = {k: v for k, v in expansions.items() if k != "COVERAGE"}
Comment thread
aclark4life marked this conversation as resolved.
# Use a distinct primary tag so companions are not selected by existing
# ".test-non-standard" selectors (e.g. load-balancer, PyOpenSSL variants).
nc_tags = [
"test-non-standard-no-cov" if t == "test-non-standard" else t
for t in tags
if t != "cov"
]
nc_name = get_task_name("test-non-standard", python=python, **nc_expansions)
nc_server_func = FunctionCall(func="run server", vars=nc_expansions)
nc_test_vars = nc_expansions.copy()
nc_test_vars["TOOLCHAIN_VERSION"] = python
nc_test_func = FunctionCall(func="run tests", vars=nc_test_vars)
tasks.append(
EvgTask(name=nc_name, tags=nc_tags, commands=[nc_server_func, nc_test_func])
)
return tasks


Expand Down
Loading