Skip to content

Commit 4003edf

Browse files
authored
PYTHON-4891 Use shrub.py for c extension tests (mongodb#1956)
1 parent 5280596 commit 4003edf

File tree

2 files changed

+114
-50
lines changed

2 files changed

+114
-50
lines changed

.evergreen/config.yml

Lines changed: 83 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -2247,19 +2247,6 @@ axes:
22472247
variables:
22482248
MOD_WSGI_VERSION: "4"
22492249

2250-
# Install and use the driver's C-extensions?
2251-
- id: c-extensions
2252-
display_name: "C Extensions"
2253-
values:
2254-
- id: "without-c-extensions"
2255-
display_name: "Without C Extensions"
2256-
variables:
2257-
NO_EXT: "1"
2258-
- id: "with-c-extensions"
2259-
display_name: "With C Extensions"
2260-
variables:
2261-
NO_EXT: ""
2262-
22632250
# Run with test commands disabled on server?
22642251
- id: disableTestCommands
22652252
display_name: Disable test commands
@@ -3460,6 +3447,89 @@ buildvariants:
34603447
SSL: ssl
34613448
PYTHON_BINARY: /opt/python/3.12/bin/python3
34623449

3450+
# No C Ext tests.
3451+
- name: no-c-ext-rhel8-py3.9
3452+
tasks:
3453+
- name: .standalone
3454+
display_name: No C Ext RHEL8 py3.9
3455+
run_on:
3456+
- rhel87-small
3457+
expansions:
3458+
NO_EXT: "1"
3459+
PYTHON_BINARY: /opt/python/3.9/bin/python3
3460+
- name: no-c-ext-rhel8-py3.10
3461+
tasks:
3462+
- name: .replica_set
3463+
display_name: No C Ext RHEL8 py3.10
3464+
run_on:
3465+
- rhel87-small
3466+
expansions:
3467+
NO_EXT: "1"
3468+
PYTHON_BINARY: /opt/python/3.10/bin/python3
3469+
- name: no-c-ext-rhel8-py3.11
3470+
tasks:
3471+
- name: .sharded_cluster
3472+
display_name: No C Ext RHEL8 py3.11
3473+
run_on:
3474+
- rhel87-small
3475+
expansions:
3476+
NO_EXT: "1"
3477+
PYTHON_BINARY: /opt/python/3.11/bin/python3
3478+
- name: no-c-ext-rhel8-py3.12
3479+
tasks:
3480+
- name: .standalone
3481+
display_name: No C Ext RHEL8 py3.12
3482+
run_on:
3483+
- rhel87-small
3484+
expansions:
3485+
NO_EXT: "1"
3486+
PYTHON_BINARY: /opt/python/3.12/bin/python3
3487+
- name: no-c-ext-rhel8-py3.13
3488+
tasks:
3489+
- name: .replica_set
3490+
display_name: No C Ext RHEL8 py3.13
3491+
run_on:
3492+
- rhel87-small
3493+
expansions:
3494+
NO_EXT: "1"
3495+
PYTHON_BINARY: /opt/python/3.13/bin/python3
3496+
3497+
# Atlas Data Lake tests.
3498+
- name: atlas-data-lake-rhel8-py3.9-no-c
3499+
tasks:
3500+
- name: atlas-data-lake-tests
3501+
display_name: Atlas Data Lake RHEL8 py3.9 No C
3502+
run_on:
3503+
- rhel87-small
3504+
expansions:
3505+
NO_EXT: "1"
3506+
PYTHON_BINARY: /opt/python/3.9/bin/python3
3507+
- name: atlas-data-lake-rhel8-py3.9
3508+
tasks:
3509+
- name: atlas-data-lake-tests
3510+
display_name: Atlas Data Lake RHEL8 py3.9
3511+
run_on:
3512+
- rhel87-small
3513+
expansions:
3514+
PYTHON_BINARY: /opt/python/3.9/bin/python3
3515+
- name: atlas-data-lake-rhel8-py3.13-no-c
3516+
tasks:
3517+
- name: atlas-data-lake-tests
3518+
display_name: Atlas Data Lake RHEL8 py3.13 No C
3519+
run_on:
3520+
- rhel87-small
3521+
expansions:
3522+
NO_EXT: "1"
3523+
PYTHON_BINARY: /opt/python/3.13/bin/python3
3524+
- name: atlas-data-lake-rhel8-py3.13
3525+
tasks:
3526+
- name: atlas-data-lake-tests
3527+
display_name: Atlas Data Lake RHEL8 py3.13
3528+
run_on:
3529+
- rhel87-small
3530+
expansions:
3531+
PYTHON_BINARY: /opt/python/3.13/bin/python3
3532+
34633533
- matrix_name: "tests-fips"
34643534
matrix_spec:
34653535
platform:
@@ -3482,32 +3552,6 @@ buildvariants:
34823552
tasks:
34833553
- ".6.0"
34843554

3485-
- matrix_name: "tests-python-version-rhel8-without-c-extensions"
3486-
matrix_spec:
3487-
platform: rhel8
3488-
python-version: "*"
3489-
c-extensions: without-c-extensions
3490-
auth-ssl: noauth-nossl
3491-
coverage: "*"
3492-
exclude_spec:
3493-
# These interpreters are always tested without extensions.
3494-
- platform: rhel8
3495-
python-version: ["pypy3.9", "pypy3.10"]
3496-
c-extensions: "*"
3497-
auth-ssl: "*"
3498-
coverage: "*"
3499-
display_name: "${c-extensions} ${python-version} ${platform} ${auth} ${ssl} ${coverage}"
3500-
tasks: &all-server-versions
3501-
- ".rapid"
3502-
- ".latest"
3503-
- ".8.0"
3504-
- ".7.0"
3505-
- ".6.0"
3506-
- ".5.0"
3507-
- ".4.4"
3508-
- ".4.2"
3509-
- ".4.0"
3510-
35113555
- matrix_name: "tests-python-version-supports-openssl-102-test-ssl"
35123556
matrix_spec:
35133557
platform: rhel7
@@ -3596,16 +3640,6 @@ buildvariants:
35963640
tasks:
35973641
- "serverless_task_group"
35983642

3599-
- matrix_name: "data-lake-spec-tests"
3600-
matrix_spec:
3601-
platform: ubuntu-22.04
3602-
python-version: ["3.9", "3.10"]
3603-
auth: "auth"
3604-
c-extensions: "*"
3605-
display_name: "Atlas Data Lake ${python-version} ${c-extensions}"
3606-
tasks:
3607-
- name: atlas-data-lake-tests
3608-
36093643
# OCSP test matrix.
36103644
- name: ocsp-test-rhel8-v4.4-py3.9
36113645
tasks:

.evergreen/scripts/generate_config.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -528,10 +528,40 @@ def create_green_framework_variants():
528528
return variants
529529

530530

531+
def generate_no_c_ext_variants():
532+
variants = []
533+
host = "rhel8"
534+
for python, topology in zip_cycle(CPYTHONS, TOPOLOGIES):
535+
tasks = [f".{topology}"]
536+
expansions = dict()
537+
handle_c_ext(C_EXTS[0], expansions)
538+
display_name = get_display_name("No C Ext", host, python=python)
539+
variant = create_variant(
540+
tasks, display_name, host=host, python=python, expansions=expansions
541+
)
542+
variants.append(variant)
543+
return variants
544+
545+
546+
def generate_atlas_data_lake_variants():
547+
variants = []
548+
host = "rhel8"
549+
for python, c_ext in product(MIN_MAX_PYTHON, C_EXTS):
550+
tasks = ["atlas-data-lake-tests"]
551+
expansions = dict()
552+
handle_c_ext(c_ext, expansions)
553+
display_name = get_display_name("Atlas Data Lake", host, python=python, **expansions)
554+
variant = create_variant(
555+
tasks, display_name, host=host, python=python, expansions=expansions
556+
)
557+
variants.append(variant)
558+
return variants
559+
560+
531561
##################
532562
# Generate Config
533563
##################
534564

535-
variants = create_green_framework_variants()
565+
variants = generate_atlas_data_lake_variants()
536566
# print(len(variants))
537567
generate_yaml(variants=variants)

0 commit comments

Comments
 (0)