From 5bc1c4efac1ef367a822a58a82ef357b7aacc889 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Mon, 5 Feb 2024 13:01:41 +0100 Subject: [PATCH 1/7] Remove evergreen expansions from shell.exec commands --- .evergreen/config/functions.yml | 35 ++++++++++++++++++++++----------- .evergreen/run-tests.sh | 2 +- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/.evergreen/config/functions.yml b/.evergreen/config/functions.yml index ae9d74e9a..5251239cb 100644 --- a/.evergreen/config/functions.yml +++ b/.evergreen/config/functions.yml @@ -167,9 +167,19 @@ functions: "bootstrap mongo-orchestration": - command: shell.exec params: + include_expansions_in_env: + - MONGODB_VERSION + - TOPOLOGY + - AUTH + - SSL + - STORAGE_ENGINE + - LOAD_BALANCER + - REQUIRE_API_VERSION + - ORCHESTRATION_FILE script: | ${PREPARE_SHELL} - SKIP_LEGACY_SHELL=true MONGODB_VERSION=${MONGODB_VERSION} TOPOLOGY=${TOPOLOGY} AUTH=${AUTH} SSL=${SSL} STORAGE_ENGINE=${STORAGE_ENGINE} LOAD_BALANCER=${LOAD_BALANCER} REQUIRE_API_VERSION=${REQUIRE_API_VERSION} ORCHESTRATION_FILE=${ORCHESTRATION_FILE} sh ${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh + SKIP_LEGACY_SHELL=true \ + sh ${DRIVERS_TOOLS}/.evergreen/run-orchestration.sh # run-orchestration generates expansion file with MONGODB_URI and CRYPT_SHARED_LIB_PATH - command: expansions.update params: @@ -185,28 +195,31 @@ functions: "run OCSP responder": - command: shell.exec params: + include_expansions_in_env: + - TEST_COLUMN + - CERT_TYPE + - USE_DELEGATE shell: bash script: | ${PREPARE_SHELL} - TEST_COLUMN=${TEST_COLUMN} \ - CERT_TYPE=${CERT_TYPE} \ - USE_DELEGATE=${USE_DELEGATE} \ ${PROJECT_DIRECTORY}/.evergreen/run-ocsp-responder.sh "run tests": - command: shell.exec type: test params: + include_expansions_in_env: + - API_VERSION + - CRYPT_SHARED_LIB_PATH + - MONGODB_URI + - APPEND_URI + - SKIP_CRYPT_SHARED + - SSL + - SSL_DIR + - TESTS working_dir: "src" script: | ${PREPARE_SHELL} - API_VERSION=${API_VERSION} \ - CRYPT_SHARED_LIB_PATH=${CRYPT_SHARED_LIB_PATH} \ - MONGODB_URI="${MONGODB_URI}${APPEND_URI}" \ - SKIP_CRYPT_SHARED=${SKIP_CRYPT_SHARED} \ - SSL=${SSL} \ - SSL_DIR=${SSL_DIR} \ - TESTS=${TESTS} \ sh ${PROJECT_DIRECTORY}/.evergreen/run-tests.sh "cleanup": diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 662b974e3..b22d58208 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -4,7 +4,7 @@ set -o errexit # Exit the script with error if any of the commands fail # Supported environment variables API_VERSION=${API_VERSION:-} # Optional API_VERSION environment variable for run-tests.php CRYPT_SHARED_LIB_PATH="${CRYPT_SHARED_LIB_PATH:-}" # Optional path to crypt_shared library -MONGODB_URI=${MONGODB_URI:-} # Connection string (including credentials and topology info) +MONGODB_URI=${MONGODB_URI:-}${APPEND_URI:-} # Connection string (including credentials and topology info) SKIP_CRYPT_SHARED="${SKIP_CRYPT_SHARED:-no}" # Specify "yes" to ignore CRYPT_SHARED_LIB_PATH. Defaults to "no" SSL=${SSL:-no} # Specify "yes" to enable SSL. Defaults to "no" SSL_DIR=${SSL_DIR-} # Optional SSL_DIR environment variable for run-tests.php From 90e34769bd77a5f35e40fea9d03bf0ccb71c3cd5 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Mon, 5 Feb 2024 13:03:05 +0100 Subject: [PATCH 2/7] Remove 5.0 OCSP tasks from Debian 11 --- .evergreen/config/test-variants.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.evergreen/config/test-variants.yml b/.evergreen/config/test-variants.yml index 59bf2d254..ce5abffea 100644 --- a/.evergreen/config/test-variants.yml +++ b/.evergreen/config/test-variants.yml @@ -19,7 +19,7 @@ buildvariants: - ".sharded .local !.3.6 !.4.0 !.4.2 !.4.4 !.5.0" - ".loadbalanced .local !.3.6 !.4.0 !.4.2 !.4.4 !.5.0" - "test-atlas-connectivity" - - ".ocsp !.4.4" + - ".ocsp !.4.4 !.5.0" display_tasks: - name: "test-ocsp-latest" execution_tasks: From 273c4cfb5e49106fcb95146320b81deb6c76b0f9 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Mon, 5 Feb 2024 14:13:02 +0100 Subject: [PATCH 3/7] Refactor retrieving Atlas Connectivity URLs --- tests/atlas.phpt | 18 +++++------------- tests/utils/skipif.php | 7 +++++++ tests/utils/tools.php | 22 ++++++++++++++++++++++ 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/tests/atlas.phpt b/tests/atlas.phpt index 8869a3146..c0ef24e8f 100644 --- a/tests/atlas.phpt +++ b/tests/atlas.phpt @@ -1,25 +1,17 @@ --TEST-- Atlas Connectivity Tests --SKIPIF-- - + + + --FILE-- 1]); $query = new \MongoDB\Driver\Query([]); -foreach ($urls as $url) { - $url = trim($url); - - if ($url == '') { - continue; - } - +foreach (getAtlasConnectivityUrls() as $url) { if (strpos($url, '#') === 0) { echo trim(substr($url, 1)), "\n"; continue; diff --git a/tests/utils/skipif.php b/tests/utils/skipif.php index e7ba4d242..0a8dd09e0 100644 --- a/tests/utils/skipif.php +++ b/tests/utils/skipif.php @@ -494,3 +494,10 @@ function skip_if_no_crypt_shared() exit('skip crypt_shared is not available'); } } + +function skip_if_no_atlas_connectivity_urls() +{ + if (getAtlasConnectivityUrls() === []) { + exit('skip No atlas URIs found'); + } +} diff --git a/tests/utils/tools.php b/tests/utils/tools.php index d6a7ed13b..10b28421f 100644 --- a/tests/utils/tools.php +++ b/tests/utils/tools.php @@ -853,3 +853,25 @@ function failGetMore(Manager $manager) throw new Exception("Trying to configure a getMore fail point for a server version ($version) that doesn't support it"); } + +function getAtlasConnectivityUrls(): array +{ + if (!file_exists('.evergreen/atlas-uris.txt')) { + return []; + } + + $rawUrls = explode("\n", file_get_contents('.evergreen/atlas-uris.txt')); + + $urls = []; + foreach ($rawUrls as $url) { + $url = trim($url); + + if ($url == '') { + continue; + } + + $urls[] = $url; + } + + return $urls; +} From 8ad63d2891979a716d6bc7439159ae334404ab3b Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Mon, 5 Feb 2024 14:41:05 +0100 Subject: [PATCH 4/7] Read encrypted URI list from environment --- .evergreen/atlas-uris.txt.enc | Bin 2384 -> 0 bytes .evergreen/config/functions.yml | 7 +------ .evergreen/config/test-tasks.yml | 1 - tests/utils/tools.php | 5 +++-- 4 files changed, 4 insertions(+), 9 deletions(-) delete mode 100644 .evergreen/atlas-uris.txt.enc diff --git a/.evergreen/atlas-uris.txt.enc b/.evergreen/atlas-uris.txt.enc deleted file mode 100644 index 50f6b321f71b588166e6a82ed6620c904f65f4e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2384 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 Cypr_* diff --git a/.evergreen/config/functions.yml b/.evergreen/config/functions.yml index 5251239cb..4628d8eaf 100644 --- a/.evergreen/config/functions.yml +++ b/.evergreen/config/functions.yml @@ -210,6 +210,7 @@ functions: params: include_expansions_in_env: - API_VERSION + - ATLAS_CONNECTIVITY_URIS - CRYPT_SHARED_LIB_PATH - MONGODB_URI - APPEND_URI @@ -255,12 +256,6 @@ functions: # Don't use ${file} syntax here because evergreen treats it as an empty expansion. [ -f "$file" ] && sh $file || echo "$file not available, skipping" - "decrypt atlas URI list": - - command: shell.exec - params: - script: | - openssl aes-256-cbc -S "${encrypted_uris_salt}" -K "${encrypted_uris_key}" -iv "${encrypted_uris_iv}" -in ${PROJECT_DIRECTORY}/.evergreen/atlas-uris.txt.enc -out ${PROJECT_DIRECTORY}/.evergreen/atlas-uris.txt -d - "start load balancer": - command: shell.exec params: diff --git a/.evergreen/config/test-tasks.yml b/.evergreen/config/test-tasks.yml index a3963ad2a..cf929a671 100644 --- a/.evergreen/config/test-tasks.yml +++ b/.evergreen/config/test-tasks.yml @@ -2,7 +2,6 @@ tasks: - name: "test-atlas-connectivity" tags: ["atlas", "nodb"] commands: - - func: "decrypt atlas URI list" - func: "run tests" vars: TESTS: "tests/atlas.phpt" diff --git a/tests/utils/tools.php b/tests/utils/tools.php index 10b28421f..6eb897722 100644 --- a/tests/utils/tools.php +++ b/tests/utils/tools.php @@ -856,11 +856,12 @@ function failGetMore(Manager $manager) function getAtlasConnectivityUrls(): array { - if (!file_exists('.evergreen/atlas-uris.txt')) { + $atlasUriString = getenv('ATLAS_CONNECTIVITY_URIS') ?: ''; + if (!$atlasUriString) { return []; } - $rawUrls = explode("\n", file_get_contents('.evergreen/atlas-uris.txt')); + $rawUrls = explode("\n", $atlasUriString); $urls = []; foreach ($rawUrls as $url) { From 8b7d679ca4d30a7b36142ff768186fa85d87e096 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Tue, 6 Feb 2024 12:37:34 +0100 Subject: [PATCH 5/7] Remove obsolete file from gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 4f8e0bf72..3b6198ac2 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,6 @@ php.ini !.github/ !tests/utils/*.php !.evergreen -.evergreen/atlas-uris.txt !scripts From 3c94e9a870e5acc42a851079016b3a1384e2e9ee Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Tue, 6 Feb 2024 12:41:01 +0100 Subject: [PATCH 6/7] Refactor appending test specific URI options --- .evergreen/run-tests.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index b22d58208..d46cf57ed 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -4,7 +4,8 @@ set -o errexit # Exit the script with error if any of the commands fail # Supported environment variables API_VERSION=${API_VERSION:-} # Optional API_VERSION environment variable for run-tests.php CRYPT_SHARED_LIB_PATH="${CRYPT_SHARED_LIB_PATH:-}" # Optional path to crypt_shared library -MONGODB_URI=${MONGODB_URI:-}${APPEND_URI:-} # Connection string (including credentials and topology info) +MONGODB_URI=${MONGODB_URI:-} # Connection string (including credentials and topology info) +APPEND_URI=${APPEND_URI:-} # Additional URI options to append to the URI. Used in OCSP tests SKIP_CRYPT_SHARED="${SKIP_CRYPT_SHARED:-no}" # Specify "yes" to ignore CRYPT_SHARED_LIB_PATH. Defaults to "no" SSL=${SSL:-no} # Specify "yes" to enable SSL. Defaults to "no" SSL_DIR=${SSL_DIR-} # Optional SSL_DIR environment variable for run-tests.php @@ -15,6 +16,9 @@ OS=$(uname -s | tr '[:upper:]' '[:lower:]') export REPORT_EXIT_STATUS=1 +# Append test-specific URI options +MONGODB_URI=${MONGODB_URI}${APPEND_URI} + # Determine if MONGODB_URI already has a query string SUFFIX=$(echo "$MONGODB_URI" | grep -Eo "\?(.*)" | cat) From 0909e0c2e03f475f136ac9cd74016bf8a8f0ccd9 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Wed, 7 Feb 2024 08:21:53 +0100 Subject: [PATCH 7/7] Update tests/utils/skipif.php Co-authored-by: Jeremy Mikola --- tests/utils/skipif.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/utils/skipif.php b/tests/utils/skipif.php index 0a8dd09e0..2efd31f3d 100644 --- a/tests/utils/skipif.php +++ b/tests/utils/skipif.php @@ -498,6 +498,6 @@ function skip_if_no_crypt_shared() function skip_if_no_atlas_connectivity_urls() { if (getAtlasConnectivityUrls() === []) { - exit('skip No atlas URIs found'); + exit('skip No Atlas URIs found'); } }