diff --git a/.evergreen/config.yml b/.evergreen/config.yml index a1d6284713..28f8bcfcca 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -66,7 +66,7 @@ functions: params: binary: bash working_dir: "src" - include_expansions_in_env: [VERSION, TOPOLOGY, AUTH, SSL, ORCHESTRATION_FILE, PYTHON_BINARY, PYTHON_VERSION, + include_expansions_in_env: [VERSION, TOPOLOGY, AUTH, SSL, ORCHESTRATION_FILE, PYTHON_BINARY, PYTHON_VERSION, IS_WIN32, STORAGE_ENGINE, REQUIRE_API_VERSION, DRIVERS_TOOLS, TEST_CRYPT_SHARED, AUTH_AWS, LOAD_BALANCER, LOCAL_ATLAS, NO_EXT] args: [.evergreen/just.sh, run-server, "${TEST_NAME}"] - command: expansions.update @@ -87,7 +87,7 @@ functions: type: test params: include_expansions_in_env: [AUTH, SSL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, - AWS_SESSION_TOKEN, COVERAGE, PYTHON_BINARY, LIBMONGOCRYPT_URL, MONGODB_URI, PYTHON_VERSION, + AWS_SESSION_TOKEN, COVERAGE, PYTHON_BINARY, LIBMONGOCRYPT_URL, MONGODB_URI, PYTHON_VERSION, IS_WIN32, DISABLE_TEST_COMMANDS, GREEN_FRAMEWORK, NO_EXT, COMPRESSORS, MONGODB_API_VERSION, DEBUG_LOG, ORCHESTRATION_FILE, OCSP_SERVER_TYPE, VERSION, REQUIRE_FIPS] binary: bash diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index 89d8ff8d6c..8d80b113a3 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -8035,7 +8035,7 @@ tasks: TOPOLOGY: sharded_cluster COVERAGE: "1" PYTHON_VERSION: "3.9" - tags: [server-version, "3.9", sharded_cluster-auth-ssl] + tags: [server-version, python-3.9, sharded_cluster-auth-ssl] - name: test-python3.10-auth-ssl-sharded-cluster-cov commands: - func: run server @@ -8051,7 +8051,7 @@ tasks: TOPOLOGY: sharded_cluster COVERAGE: "1" PYTHON_VERSION: "3.10" - tags: [server-version, "3.10", sharded_cluster-auth-ssl] + tags: [server-version, python-3.10, sharded_cluster-auth-ssl] - name: test-python3.11-auth-ssl-sharded-cluster-cov commands: - func: run server @@ -8067,7 +8067,7 @@ tasks: TOPOLOGY: sharded_cluster COVERAGE: "1" PYTHON_VERSION: "3.11" - tags: [server-version, "3.11", sharded_cluster-auth-ssl] + tags: [server-version, python-3.11, sharded_cluster-auth-ssl] - name: test-python3.12-auth-ssl-sharded-cluster-cov commands: - func: run server @@ -8083,7 +8083,7 @@ tasks: TOPOLOGY: sharded_cluster COVERAGE: "1" PYTHON_VERSION: "3.12" - tags: [server-version, "3.12", sharded_cluster-auth-ssl] + tags: [server-version, python-3.12, sharded_cluster-auth-ssl] - name: test-python3.13-auth-ssl-sharded-cluster-cov commands: - func: run server @@ -8099,7 +8099,7 @@ tasks: TOPOLOGY: sharded_cluster COVERAGE: "1" PYTHON_VERSION: "3.13" - tags: [server-version, "3.13", sharded_cluster-auth-ssl] + tags: [server-version, python-3.13, sharded_cluster-auth-ssl] - name: test-pypy3.10-auth-ssl-sharded-cluster commands: - func: run server @@ -8113,7 +8113,7 @@ tasks: SSL: ssl TOPOLOGY: sharded_cluster PYTHON_VERSION: pypy3.10 - tags: [server-version, pypy3.10, sharded_cluster-auth-ssl] + tags: [server-version, python-pypy3.10, sharded_cluster-auth-ssl] - name: test-python3.9-auth-ssl-standalone-cov commands: - func: run server @@ -8129,7 +8129,7 @@ tasks: TOPOLOGY: standalone COVERAGE: "1" PYTHON_VERSION: "3.9" - tags: [server-version, "3.9", standalone-auth-ssl] + tags: [server-version, python-3.9, standalone-auth-ssl] - name: test-python3.10-auth-nossl-standalone-cov commands: - func: run server @@ -8145,7 +8145,7 @@ tasks: TOPOLOGY: standalone COVERAGE: "1" PYTHON_VERSION: "3.10" - tags: [server-version, "3.10", standalone-auth-nossl] + tags: [server-version, python-3.10, standalone-auth-nossl] - name: test-python3.11-noauth-ssl-standalone-cov commands: - func: run server @@ -8161,7 +8161,7 @@ tasks: TOPOLOGY: standalone COVERAGE: "1" PYTHON_VERSION: "3.11" - tags: [server-version, "3.11", standalone-noauth-ssl] + tags: [server-version, python-3.11, standalone-noauth-ssl] - name: test-python3.12-noauth-nossl-standalone-cov commands: - func: run server @@ -8177,7 +8177,7 @@ tasks: TOPOLOGY: standalone COVERAGE: "1" PYTHON_VERSION: "3.12" - tags: [server-version, "3.12", standalone-noauth-nossl] + tags: [server-version, python-3.12, standalone-noauth-nossl] - name: test-python3.13-auth-ssl-replica-set-cov commands: - func: run server @@ -8193,7 +8193,7 @@ tasks: TOPOLOGY: replica_set COVERAGE: "1" PYTHON_VERSION: "3.13" - tags: [server-version, "3.13", replica_set-auth-ssl] + tags: [server-version, python-3.13, replica_set-auth-ssl] - name: test-pypy3.10-auth-nossl-replica-set commands: - func: run server @@ -8207,7 +8207,7 @@ tasks: SSL: nossl TOPOLOGY: replica_set PYTHON_VERSION: pypy3.10 - tags: [server-version, pypy3.10, replica_set-auth-nossl] + tags: [server-version, python-pypy3.10, replica_set-auth-nossl] - name: test-python3.9-noauth-ssl-replica-set-cov commands: - func: run server @@ -8223,7 +8223,7 @@ tasks: TOPOLOGY: replica_set COVERAGE: "1" PYTHON_VERSION: "3.9" - tags: [server-version, "3.9", replica_set-noauth-ssl] + tags: [server-version, python-3.9, replica_set-noauth-ssl] - name: test-python3.10-noauth-nossl-replica-set-cov commands: - func: run server @@ -8239,7 +8239,7 @@ tasks: TOPOLOGY: replica_set COVERAGE: "1" PYTHON_VERSION: "3.10" - tags: [server-version, "3.10", replica_set-noauth-nossl] + tags: [server-version, python-3.10, replica_set-noauth-nossl] - name: test-python3.12-auth-nossl-sharded-cluster-cov commands: - func: run server @@ -8255,7 +8255,7 @@ tasks: TOPOLOGY: sharded_cluster COVERAGE: "1" PYTHON_VERSION: "3.12" - tags: [server-version, "3.12", sharded_cluster-auth-nossl] + tags: [server-version, python-3.12, sharded_cluster-auth-nossl] - name: test-python3.13-noauth-ssl-sharded-cluster-cov commands: - func: run server @@ -8271,7 +8271,7 @@ tasks: TOPOLOGY: sharded_cluster COVERAGE: "1" PYTHON_VERSION: "3.13" - tags: [server-version, "3.13", sharded_cluster-noauth-ssl] + tags: [server-version, python-3.13, sharded_cluster-noauth-ssl] - name: test-pypy3.10-noauth-nossl-sharded-cluster commands: - func: run server @@ -8285,7 +8285,7 @@ tasks: SSL: nossl TOPOLOGY: sharded_cluster PYTHON_VERSION: pypy3.10 - tags: [server-version, pypy3.10, sharded_cluster-noauth-nossl] + tags: [server-version, python-pypy3.10, sharded_cluster-noauth-nossl] # Serverless tests - name: test-serverless @@ -8296,3 +8296,599 @@ tasks: AUTH: auth SSL: ssl tags: [serverless] + + # Standard non linux tests + - name: test-v4.0-python3.9-sync-noauth-nossl-standalone + commands: + - func: run server + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "4.0" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "4.0" + PYTHON_VERSION: "3.9" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-4.0 + - python-3.9 + - standalone-noauth-nossl + - sync + - name: test-v4.0-python3.10-async-noauth-ssl-replica-set + commands: + - func: run server + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "4.0" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "4.0" + PYTHON_VERSION: "3.10" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-4.0 + - python-3.10 + - replica_set-noauth-ssl + - async + - name: test-v4.0-python3.11-sync-auth-ssl-sharded-cluster + commands: + - func: run server + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "4.0" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "4.0" + PYTHON_VERSION: "3.11" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-4.0 + - python-3.11 + - sharded_cluster-auth-ssl + - sync + - name: test-v4.2-python3.12-async-noauth-nossl-standalone + commands: + - func: run server + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "4.2" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "4.2" + PYTHON_VERSION: "3.12" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-4.2 + - python-3.12 + - standalone-noauth-nossl + - async + - name: test-v4.2-python3.13-sync-noauth-ssl-replica-set + commands: + - func: run server + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "4.2" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "4.2" + PYTHON_VERSION: "3.13" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-4.2 + - python-3.13 + - replica_set-noauth-ssl + - sync + - name: test-v4.2-python3.9-async-auth-ssl-sharded-cluster + commands: + - func: run server + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "4.2" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "4.2" + PYTHON_VERSION: "3.9" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-4.2 + - python-3.9 + - sharded_cluster-auth-ssl + - async + - name: test-v4.4-python3.10-sync-noauth-nossl-standalone + commands: + - func: run server + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "4.4" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "4.4" + PYTHON_VERSION: "3.10" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-4.4 + - python-3.10 + - standalone-noauth-nossl + - sync + - name: test-v4.4-python3.11-async-noauth-ssl-replica-set + commands: + - func: run server + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "4.4" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "4.4" + PYTHON_VERSION: "3.11" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-4.4 + - python-3.11 + - replica_set-noauth-ssl + - async + - name: test-v4.4-python3.12-sync-auth-ssl-sharded-cluster + commands: + - func: run server + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "4.4" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "4.4" + PYTHON_VERSION: "3.12" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-4.4 + - python-3.12 + - sharded_cluster-auth-ssl + - sync + - name: test-v5.0-python3.13-async-noauth-nossl-standalone + commands: + - func: run server + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "5.0" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "5.0" + PYTHON_VERSION: "3.13" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-5.0 + - python-3.13 + - standalone-noauth-nossl + - async + - name: test-v5.0-python3.9-sync-noauth-ssl-replica-set + commands: + - func: run server + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "5.0" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "5.0" + PYTHON_VERSION: "3.9" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-5.0 + - python-3.9 + - replica_set-noauth-ssl + - sync + - name: test-v5.0-python3.10-async-auth-ssl-sharded-cluster + commands: + - func: run server + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "5.0" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "5.0" + PYTHON_VERSION: "3.10" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-5.0 + - python-3.10 + - sharded_cluster-auth-ssl + - async + - name: test-v6.0-python3.11-sync-noauth-nossl-standalone + commands: + - func: run server + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "6.0" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "6.0" + PYTHON_VERSION: "3.11" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-6.0 + - python-3.11 + - standalone-noauth-nossl + - sync + - name: test-v6.0-python3.12-async-noauth-ssl-replica-set + commands: + - func: run server + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "6.0" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "6.0" + PYTHON_VERSION: "3.12" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-6.0 + - python-3.12 + - replica_set-noauth-ssl + - async + - name: test-v6.0-python3.13-sync-auth-ssl-sharded-cluster + commands: + - func: run server + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "6.0" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "6.0" + PYTHON_VERSION: "3.13" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-6.0 + - python-3.13 + - sharded_cluster-auth-ssl + - sync + - name: test-v7.0-python3.9-async-noauth-nossl-standalone + commands: + - func: run server + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "7.0" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "7.0" + PYTHON_VERSION: "3.9" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-7.0 + - python-3.9 + - standalone-noauth-nossl + - async + - name: test-v7.0-python3.10-sync-noauth-ssl-replica-set + commands: + - func: run server + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "7.0" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "7.0" + PYTHON_VERSION: "3.10" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-7.0 + - python-3.10 + - replica_set-noauth-ssl + - sync + - name: test-v7.0-python3.11-async-auth-ssl-sharded-cluster + commands: + - func: run server + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "7.0" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "7.0" + PYTHON_VERSION: "3.11" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-7.0 + - python-3.11 + - sharded_cluster-auth-ssl + - async + - name: test-v8.0-python3.12-sync-noauth-nossl-standalone + commands: + - func: run server + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "8.0" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: "8.0" + PYTHON_VERSION: "3.12" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-8.0 + - python-3.12 + - standalone-noauth-nossl + - sync + - name: test-v8.0-python3.13-async-noauth-ssl-replica-set + commands: + - func: run server + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "8.0" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: "8.0" + PYTHON_VERSION: "3.13" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-8.0 + - python-3.13 + - replica_set-noauth-ssl + - async + - name: test-v8.0-python3.9-sync-auth-ssl-sharded-cluster + commands: + - func: run server + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "8.0" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: "8.0" + PYTHON_VERSION: "3.9" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-8.0 + - python-3.9 + - sharded_cluster-auth-ssl + - sync + - name: test-rapid-python3.10-async-noauth-nossl-standalone + commands: + - func: run server + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: rapid + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TOPOLOGY: standalone + VERSION: rapid + PYTHON_VERSION: "3.10" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-rapid + - python-3.10 + - standalone-noauth-nossl + - async + - name: test-rapid-python3.11-sync-noauth-ssl-replica-set + commands: + - func: run server + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: rapid + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TOPOLOGY: replica_set + VERSION: rapid + PYTHON_VERSION: "3.11" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-rapid + - python-3.11 + - replica_set-noauth-ssl + - sync + - name: test-rapid-python3.12-async-auth-ssl-sharded-cluster + commands: + - func: run server + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: rapid + - func: run tests + vars: + AUTH: auth + SSL: ssl + TOPOLOGY: sharded_cluster + VERSION: rapid + PYTHON_VERSION: "3.12" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-rapid + - python-3.12 + - sharded_cluster-auth-ssl + - async + - name: test-latest-python3.13-sync-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 + PYTHON_VERSION: "3.13" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-latest + - python-3.13 + - standalone-noauth-nossl + - sync + - name: test-latest-python3.9-async-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 + PYTHON_VERSION: "3.9" + TEST_NAME: default_async + tags: + - standard-non-linux + - server-latest + - python-3.9 + - replica_set-noauth-ssl + - async + - name: test-latest-python3.10-sync-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 + PYTHON_VERSION: "3.10" + TEST_NAME: default_sync + tags: + - standard-non-linux + - server-latest + - python-3.10 + - sharded_cluster-auth-ssl + - sync diff --git a/.evergreen/generated_configs/variants.yml b/.evergreen/generated_configs/variants.yml index 0aa2ac7454..0ad366dbea 100644 --- a/.evergreen/generated_configs/variants.yml +++ b/.evergreen/generated_configs/variants.yml @@ -804,112 +804,6 @@ buildvariants: expansions: PYTHON_BINARY: /opt/python/3.9/bin/python3 - # Server tests - - name: test-macos-python3.9 - tasks: - - name: .sharded_cluster .auth .ssl !.sync_async - - name: .replica_set .noauth .ssl !.sync_async - - name: .standalone .noauth .nossl !.sync_async - display_name: "* Test macOS Python3.9" - run_on: - - macos-14 - expansions: - PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.9/bin/python3 - - name: test-macos-python3.13 - tasks: - - name: .sharded_cluster .auth .ssl !.sync_async - - name: .replica_set .noauth .ssl !.sync_async - - name: .standalone .noauth .nossl !.sync_async - display_name: "* Test macOS Python3.13" - run_on: - - macos-14 - expansions: - PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.13/bin/python3 - - name: test-macos-arm64-python3.9 - tasks: - - name: .sharded_cluster .auth .ssl .6.0 !.sync_async - - name: .replica_set .noauth .ssl .6.0 !.sync_async - - name: .standalone .noauth .nossl .6.0 !.sync_async - - name: .sharded_cluster .auth .ssl .7.0 !.sync_async - - name: .replica_set .noauth .ssl .7.0 !.sync_async - - name: .standalone .noauth .nossl .7.0 !.sync_async - - name: .sharded_cluster .auth .ssl .8.0 !.sync_async - - name: .replica_set .noauth .ssl .8.0 !.sync_async - - name: .standalone .noauth .nossl .8.0 !.sync_async - - name: .sharded_cluster .auth .ssl .rapid !.sync_async - - name: .replica_set .noauth .ssl .rapid !.sync_async - - name: .standalone .noauth .nossl .rapid !.sync_async - - name: .sharded_cluster .auth .ssl .latest !.sync_async - - name: .replica_set .noauth .ssl .latest !.sync_async - - name: .standalone .noauth .nossl .latest !.sync_async - display_name: "* Test macOS Arm64 Python3.9" - run_on: - - macos-14-arm64 - expansions: - PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.9/bin/python3 - - name: test-macos-arm64-python3.13 - tasks: - - name: .sharded_cluster .auth .ssl .6.0 !.sync_async - - name: .replica_set .noauth .ssl .6.0 !.sync_async - - name: .standalone .noauth .nossl .6.0 !.sync_async - - name: .sharded_cluster .auth .ssl .7.0 !.sync_async - - name: .replica_set .noauth .ssl .7.0 !.sync_async - - name: .standalone .noauth .nossl .7.0 !.sync_async - - name: .sharded_cluster .auth .ssl .8.0 !.sync_async - - name: .replica_set .noauth .ssl .8.0 !.sync_async - - name: .standalone .noauth .nossl .8.0 !.sync_async - - name: .sharded_cluster .auth .ssl .rapid !.sync_async - - name: .replica_set .noauth .ssl .rapid !.sync_async - - name: .standalone .noauth .nossl .rapid !.sync_async - - name: .sharded_cluster .auth .ssl .latest !.sync_async - - name: .replica_set .noauth .ssl .latest !.sync_async - - name: .standalone .noauth .nossl .latest !.sync_async - display_name: "* Test macOS Arm64 Python3.13" - run_on: - - macos-14-arm64 - expansions: - PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.13/bin/python3 - - name: test-win64-python3.9 - tasks: - - name: .sharded_cluster .auth .ssl !.sync_async - - name: .replica_set .noauth .ssl !.sync_async - - name: .standalone .noauth .nossl !.sync_async - display_name: "* Test Win64 Python3.9" - run_on: - - windows-64-vsMulti-small - expansions: - PYTHON_BINARY: C:/python/Python39/python.exe - - name: test-win64-python3.13 - tasks: - - name: .sharded_cluster .auth .ssl !.sync_async - - name: .replica_set .noauth .ssl !.sync_async - - name: .standalone .noauth .nossl !.sync_async - display_name: "* Test Win64 Python3.13" - run_on: - - windows-64-vsMulti-small - expansions: - PYTHON_BINARY: C:/python/Python313/python.exe - - name: test-win32-python3.9 - tasks: - - name: .sharded_cluster .auth .ssl !.sync_async - - name: .replica_set .noauth .ssl !.sync_async - - name: .standalone .noauth .nossl !.sync_async - display_name: "* Test Win32 Python3.9" - run_on: - - windows-64-vsMulti-small - expansions: - PYTHON_BINARY: C:/python/32/Python39/python.exe - - name: test-win32-python3.13 - tasks: - - name: .sharded_cluster .auth .ssl !.sync_async - - name: .replica_set .noauth .ssl !.sync_async - - name: .standalone .noauth .nossl !.sync_async - display_name: "* Test Win32 Python3.13" - run_on: - - windows-64-vsMulti-small - expansions: - PYTHON_BINARY: C:/python/32/Python313/python.exe - # Server version tests - name: mongodb-v4.0 tasks: @@ -1063,6 +957,42 @@ buildvariants: PYTHON_BINARY: /opt/python/3.13/bin/python3 tags: [versionedApi_tag] + # Standard nonlinux tests + - name: test-macos + tasks: + - name: .standard-non-linux + display_name: "* Test macOS" + run_on: + - macos-14 + tags: [standard-non-linux] + - name: test-macos-arm64 + tasks: + - name: .standard-non-linux .server-6.0 + - name: .standard-non-linux .server-7.0 + - name: .standard-non-linux .server-8.0 + - name: .standard-non-linux .server-rapid + - name: .standard-non-linux .server-latest + display_name: "* Test macOS Arm64" + run_on: + - macos-14-arm64 + tags: [standard-non-linux] + - name: test-win64 + tasks: + - name: .standard-non-linux + display_name: "* Test Win64" + run_on: + - windows-64-vsMulti-small + tags: [standard-non-linux] + - name: test-win32 + tasks: + - name: .standard-non-linux + display_name: "* Test Win32" + run_on: + - windows-64-vsMulti-small + expansions: + IS_WIN32: "1" + tags: [standard-non-linux] + # Storage engine tests - name: storage-inmemory-rhel8-python3.9 tasks: diff --git a/.evergreen/scripts/generate_config.py b/.evergreen/scripts/generate_config.py index 2f1e978252..1aea20c8f3 100644 --- a/.evergreen/scripts/generate_config.py +++ b/.evergreen/scripts/generate_config.py @@ -77,23 +77,26 @@ def create_server_version_variants() -> list[BuildVariant]: return variants -def create_server_variants() -> list[BuildVariant]: +def create_standard_nonlinux_variants() -> list[BuildVariant]: variants = [] base_display_name = "* Test" # Test a subset on each of the other platforms. for host_name in ("macos", "macos-arm64", "win64", "win32"): - for python in MIN_MAX_PYTHON: - tasks = [f"{t} !.sync_async" for t in SUB_TASKS] - # MacOS arm64 only works on server versions 6.0+ - if host_name == "macos-arm64": - tasks = [] - for version in get_versions_from("6.0"): - tasks.extend(f"{t} .{version} !.sync_async" for t in SUB_TASKS) - host = HOSTS[host_name] - display_name = get_variant_name(base_display_name, host, python=python) - variant = create_variant(tasks, display_name, python=python, host=host) - variants.append(variant) + tasks = [".standard-non-linux"] + # MacOS arm64 only works on server versions 6.0+ + if host_name == "macos-arm64": + tasks = [ + f".standard-non-linux .server-{version}" for version in get_versions_from("6.0") + ] + host = HOSTS[host_name] + tags = ["standard-non-linux"] + expansions = dict() + if host_name == "win32": + expansions["IS_WIN32"] = "1" + display_name = get_variant_name(base_display_name, host) + variant = create_variant(tasks, display_name, host=host, tags=tags, expansions=expansions) + variants.append(variant) return variants @@ -591,7 +594,7 @@ def create_server_version_tasks(): continue task_types.append((python, topology, auth, ssl)) for python, topology, auth, ssl in task_types: - tags = ["server-version", python, f"{topology}-{auth}-{ssl}"] + tags = ["server-version", f"python-{python}", f"{topology}-{auth}-{ssl}"] expansions = dict(AUTH=auth, SSL=ssl, TOPOLOGY=topology) if python not in PYPYS: expansions["COVERAGE"] = "1" @@ -604,9 +607,37 @@ def create_server_version_tasks(): return tasks +def create_standard_non_linux_tasks(): + tasks = [] + + for (version, topology), python, sync in zip_cycle( + list(product(ALL_VERSIONS, TOPOLOGIES)), CPYTHONS, SYNCS + ): + auth = "auth" if topology == "sharded_cluster" else "noauth" + ssl = "nossl" if topology == "standalone" else "ssl" + tags = [ + "standard-non-linux", + f"server-{version}", + f"python-{python}", + f"{topology}-{auth}-{ssl}", + sync, + ] + expansions = dict(AUTH=auth, SSL=ssl, TOPOLOGY=topology, VERSION=version) + name = get_task_name("test", python=python, sync=sync, **expansions) + server_func = FunctionCall(func="run server", vars=expansions) + test_vars = expansions.copy() + test_vars["PYTHON_VERSION"] = python + test_vars["TEST_NAME"] = f"default_{sync}" + test_func = FunctionCall(func="run tests", vars=test_vars) + tasks.append(EvgTask(name=name, tags=tags, commands=[server_func, test_func])) + return tasks + + def create_server_tasks(): tasks = [] - for topo, version, (auth, ssl), sync in product(TOPOLOGIES, ALL_VERSIONS, AUTH_SSLS, SYNCS): + for topo, version, (auth, ssl), sync in product( + TOPOLOGIES, ALL_VERSIONS, AUTH_SSLS, [*SYNCS, "sync_async"] + ): name = f"test-{version}-{topo}-{auth}-{ssl}-{sync}".lower() tags = [version, topo, auth, ssl, sync] server_vars = dict( diff --git a/.evergreen/scripts/generate_config_utils.py b/.evergreen/scripts/generate_config_utils.py index 59de5beb70..aa43af9a68 100644 --- a/.evergreen/scripts/generate_config_utils.py +++ b/.evergreen/scripts/generate_config_utils.py @@ -36,7 +36,7 @@ ".replica_set .noauth .ssl", ".standalone .noauth .nossl", ] -SYNCS = ["sync", "async", "sync_async"] +SYNCS = ["sync", "async"] DISPLAY_LOOKUP = dict( ssl=dict(ssl="SSL", nossl="NoSSL"), auth=dict(auth="Auth", noauth="NoAuth"), @@ -44,6 +44,7 @@ standalone="Standalone", replica_set="Replica Set", sharded_cluster="Sharded Cluster" ), test_suites=dict(default="Sync", default_async="Async"), + sync={"sync": "Sync", "async": "Async"}, coverage={"1": "cov"}, no_ext={"1": "No C"}, ) diff --git a/.evergreen/scripts/setup_tests.py b/.evergreen/scripts/setup_tests.py index 2fa1fc47fc..9b657507c1 100644 --- a/.evergreen/scripts/setup_tests.py +++ b/.evergreen/scripts/setup_tests.py @@ -34,6 +34,7 @@ "PYTHON_BINARY", "PYTHON_VERSION", "REQUIRE_FIPS", + "IS_WIN32", ] # Map the test name to test extra. diff --git a/.evergreen/utils.sh b/.evergreen/utils.sh index faecde05fd..354d18dbf7 100755 --- a/.evergreen/utils.sh +++ b/.evergreen/utils.sh @@ -123,7 +123,11 @@ get_python_binary() { PYTHON="/Library/Frameworks/Python.Framework/Versions/$version/bin/python3" elif [ "Windows_NT" = "${OS:-}" ]; then version=$(echo $version | cut -d. -f1,2 | sed 's/\.//g') - PYTHON="C:/python/Python$version/python.exe" + if [ -n "${IS_WIN32:-}" ]; then + PYTHON="C:/python/32/Python$version/python.exe" + else + PYTHON="C:/python/Python$version/python.exe" + fi else PYTHON="/opt/python/$version/bin/python3" fi