diff --git a/.evergreen/generated_configs/tasks.yml b/.evergreen/generated_configs/tasks.yml index f859169ed..3450e491a 100644 --- a/.evergreen/generated_configs/tasks.yml +++ b/.evergreen/generated_configs/tasks.yml @@ -805,7 +805,7 @@ tasks: SUB_TEST_NAME: azure-fail # Load balancer tests - - name: test-load-balancer-auth-ssl + - name: test-load-balancer-auth-ssl-v6.0 commands: - func: run server vars: @@ -813,13 +813,74 @@ tasks: AUTH: auth SSL: ssl TEST_NAME: load_balancer + VERSION: "6.0" - func: run tests vars: AUTH: auth SSL: ssl TEST_NAME: load_balancer tags: [load-balancer, auth, ssl] - - name: test-load-balancer-noauth-ssl + - name: test-load-balancer-auth-ssl-v7.0 + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: auth + SSL: ssl + TEST_NAME: load_balancer + VERSION: "7.0" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TEST_NAME: load_balancer + tags: [load-balancer, auth, ssl] + - name: test-load-balancer-auth-ssl-v8.0 + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: auth + SSL: ssl + TEST_NAME: load_balancer + VERSION: "8.0" + - func: run tests + vars: + AUTH: auth + SSL: ssl + TEST_NAME: load_balancer + tags: [load-balancer, auth, ssl] + - name: test-load-balancer-auth-ssl-rapid + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: auth + SSL: ssl + TEST_NAME: load_balancer + VERSION: rapid + - func: run tests + vars: + AUTH: auth + SSL: ssl + TEST_NAME: load_balancer + tags: [load-balancer, auth, ssl] + - name: test-load-balancer-auth-ssl-latest + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: auth + SSL: ssl + TEST_NAME: load_balancer + VERSION: latest + - func: run tests + vars: + AUTH: auth + SSL: ssl + TEST_NAME: load_balancer + tags: [load-balancer, auth, ssl] + - name: test-load-balancer-noauth-ssl-v6.0 commands: - func: run server vars: @@ -827,13 +888,74 @@ tasks: AUTH: noauth SSL: ssl TEST_NAME: load_balancer + VERSION: "6.0" - func: run tests vars: AUTH: noauth SSL: ssl TEST_NAME: load_balancer tags: [load-balancer, noauth, ssl] - - name: test-load-balancer-noauth-nossl + - name: test-load-balancer-noauth-ssl-v7.0 + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: noauth + SSL: ssl + TEST_NAME: load_balancer + VERSION: "7.0" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TEST_NAME: load_balancer + tags: [load-balancer, noauth, ssl] + - name: test-load-balancer-noauth-ssl-v8.0 + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: noauth + SSL: ssl + TEST_NAME: load_balancer + VERSION: "8.0" + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TEST_NAME: load_balancer + tags: [load-balancer, noauth, ssl] + - name: test-load-balancer-noauth-ssl-rapid + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: noauth + SSL: ssl + TEST_NAME: load_balancer + VERSION: rapid + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TEST_NAME: load_balancer + tags: [load-balancer, noauth, ssl] + - name: test-load-balancer-noauth-ssl-latest + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: noauth + SSL: ssl + TEST_NAME: load_balancer + VERSION: latest + - func: run tests + vars: + AUTH: noauth + SSL: ssl + TEST_NAME: load_balancer + tags: [load-balancer, noauth, ssl] + - name: test-load-balancer-noauth-nossl-v6.0 commands: - func: run server vars: @@ -841,6 +963,67 @@ tasks: AUTH: noauth SSL: nossl TEST_NAME: load_balancer + VERSION: "6.0" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TEST_NAME: load_balancer + tags: [load-balancer, noauth, nossl] + - name: test-load-balancer-noauth-nossl-v7.0 + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: noauth + SSL: nossl + TEST_NAME: load_balancer + VERSION: "7.0" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TEST_NAME: load_balancer + tags: [load-balancer, noauth, nossl] + - name: test-load-balancer-noauth-nossl-v8.0 + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: noauth + SSL: nossl + TEST_NAME: load_balancer + VERSION: "8.0" + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TEST_NAME: load_balancer + tags: [load-balancer, noauth, nossl] + - name: test-load-balancer-noauth-nossl-rapid + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: noauth + SSL: nossl + TEST_NAME: load_balancer + VERSION: rapid + - func: run tests + vars: + AUTH: noauth + SSL: nossl + TEST_NAME: load_balancer + tags: [load-balancer, noauth, nossl] + - name: test-load-balancer-noauth-nossl-latest + commands: + - func: run server + vars: + TOPOLOGY: sharded_cluster + AUTH: noauth + SSL: nossl + TEST_NAME: load_balancer + VERSION: latest - func: run tests vars: AUTH: noauth diff --git a/.evergreen/generated_configs/variants.yml b/.evergreen/generated_configs/variants.yml index 2242e9c33..9d299fc7f 100644 --- a/.evergreen/generated_configs/variants.yml +++ b/.evergreen/generated_configs/variants.yml @@ -599,56 +599,13 @@ buildvariants: PYTHON_BINARY: /opt/python/3.13/bin/python3 # Load balancer tests - - name: load-balancer-rhel8-v6.0-python3.9 + - name: load-balancer tasks: - name: .load-balancer - display_name: Load Balancer RHEL8 v6.0 Python3.9 + display_name: Load Balancer run_on: - rhel87-small batchtime: 10080 - expansions: - VERSION: "6.0" - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: load-balancer-rhel8-v7.0-python3.9 - tasks: - - name: .load-balancer - display_name: Load Balancer RHEL8 v7.0 Python3.9 - run_on: - - rhel87-small - batchtime: 10080 - expansions: - VERSION: "7.0" - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: load-balancer-rhel8-v8.0-python3.9 - tasks: - - name: .load-balancer - display_name: Load Balancer RHEL8 v8.0 Python3.9 - run_on: - - rhel87-small - batchtime: 10080 - expansions: - VERSION: "8.0" - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: load-balancer-rhel8-rapid-python3.9 - tasks: - - name: .load-balancer - display_name: Load Balancer RHEL8 rapid Python3.9 - run_on: - - rhel87-small - batchtime: 10080 - expansions: - VERSION: rapid - PYTHON_BINARY: /opt/python/3.9/bin/python3 - - name: load-balancer-rhel8-latest-python3.9 - tasks: - - name: .load-balancer - display_name: Load Balancer RHEL8 latest Python3.9 - run_on: - - rhel87-small - batchtime: 10080 - expansions: - VERSION: latest - PYTHON_BINARY: /opt/python/3.9/bin/python3 # Mockupdb tests - name: mockupdb-rhel8-python3.9 diff --git a/.evergreen/scripts/generate_config.py b/.evergreen/scripts/generate_config.py index 24aadfbe0..ca8146460 100644 --- a/.evergreen/scripts/generate_config.py +++ b/.evergreen/scripts/generate_config.py @@ -413,23 +413,11 @@ def create_encryption_variants() -> list[BuildVariant]: def create_load_balancer_variants(): # Load balancer tests - run all supported server versions using the lowest supported python. - host = DEFAULT_HOST - batchtime = BATCHTIME_WEEK - versions = get_versions_from("6.0") - variants = [] - for version in versions: - python = CPYTHONS[0] - display_name = get_variant_name("Load Balancer", host, python=python, version=version) - variant = create_variant( - [".load-balancer"], - display_name, - python=python, - host=host, - version=version, - batchtime=batchtime, + return [ + create_variant( + [".load-balancer"], "Load Balancer", host=DEFAULT_HOST, batchtime=BATCHTIME_WEEK ) - variants.append(variant) - return variants + ] def create_compression_variants(): @@ -830,11 +818,15 @@ def create_server_tasks(): def create_load_balancer_tasks(): tasks = [] - for auth, ssl in AUTH_SSLS: - name = f"test-load-balancer-{auth}-{ssl}".lower() + for (auth, ssl), version in product(AUTH_SSLS, get_versions_from("6.0")): + name = get_task_name(f"test-load-balancer-{auth}-{ssl}", version=version) tags = ["load-balancer", auth, ssl] server_vars = dict( - TOPOLOGY="sharded_cluster", AUTH=auth, SSL=ssl, TEST_NAME="load_balancer" + TOPOLOGY="sharded_cluster", + AUTH=auth, + SSL=ssl, + TEST_NAME="load_balancer", + VERSION=version, ) server_func = FunctionCall(func="run server", vars=server_vars) test_vars = dict(AUTH=auth, SSL=ssl, TEST_NAME="load_balancer") diff --git a/test/retryable_reads/unified/estimatedDocumentCount.json b/test/retryable_reads/unified/estimatedDocumentCount.json index 75a676b9b..2ee29f679 100644 --- a/test/retryable_reads/unified/estimatedDocumentCount.json +++ b/test/retryable_reads/unified/estimatedDocumentCount.json @@ -195,7 +195,7 @@ "object": "collection1", "name": "estimatedDocumentCount", "expectError": { - "isError": true + "isClientError": true } } ], @@ -241,7 +241,7 @@ "object": "collection0", "name": "estimatedDocumentCount", "expectError": { - "isError": true + "isClientError": true } } ], diff --git a/test/unified-test-format/valid-pass/expectedError-isClientError.json b/test/unified-test-format/valid-pass/expectedError-isClientError.json new file mode 100644 index 000000000..9c6beda58 --- /dev/null +++ b/test/unified-test-format/valid-pass/expectedError-isClientError.json @@ -0,0 +1,74 @@ +{ + "description": "expectedError-isClientError", + "schemaVersion": "1.3", + "runOnRequirements": [ + { + "minServerVersion": "4.0", + "topologies": [ + "single", + "replicaset" + ] + }, + { + "minServerVersion": "4.1.7", + "topologies": [ + "sharded", + "load-balanced" + ] + } + ], + "createEntities": [ + { + "client": { + "id": "client0", + "useMultipleMongoses": false + } + }, + { + "database": { + "id": "database0", + "client": "client0", + "databaseName": "test" + } + } + ], + "tests": [ + { + "description": "isClientError considers network errors", + "operations": [ + { + "name": "failPoint", + "object": "testRunner", + "arguments": { + "client": "client0", + "failPoint": { + "configureFailPoint": "failCommand", + "mode": { + "times": 1 + }, + "data": { + "failCommands": [ + "ping" + ], + "closeConnection": true + } + } + } + }, + { + "name": "runCommand", + "object": "database0", + "arguments": { + "commandName": "ping", + "command": { + "ping": 1 + } + }, + "expectError": { + "isClientError": true + } + } + ] + } + ] +} diff --git a/test/unified-test-format/valid-pass/operation-empty_array.json b/test/unified-test-format/valid-pass/operation-empty_array.json new file mode 100644 index 000000000..93b25c983 --- /dev/null +++ b/test/unified-test-format/valid-pass/operation-empty_array.json @@ -0,0 +1,10 @@ +{ + "description": "operation-empty_array", + "schemaVersion": "1.0", + "tests": [ + { + "description": "Empty operations array", + "operations": [] + } + ] +}