* Add rapid to mongodb-versions axis
* Bump latest-stable to 6.0 in mongodb-edge-versions matrix
* Include newer server versions in OCSP, requireApiVersion, loadBalanced, and skip_crypt_shared matrices
* Rename VERSION to MONGODB_VERSION
* Unwrap array in single value matrix_spec configuration
v1.14 pointed to libmongoc 1.14.2, which was released some time after the submodule target in the master branch (a dev commit before libmongoc 1.23.0). To resolve this conflict, the libmongoc submodule has been bumped to 1.23.0.
Note: a libmongoc 1.23.1 tag also exists, but that bump can be done in a subsequent PHPC ticket related to the libmongoc changes therein.
This also adds a section to CONTRIBUTING.md to provide guidance on resolving submodule merge conflicts.
Use the crypt_shared library provisioned by download-mongodb.sh and add an additional task to disable the library and fall back to mongocryptd.
This also revises how we pass environment variables into run-tests.sh and the test suite. Everything is now explicitly passed instead of relying on export attributes from a parent context.
This also fixes the injection logic in create_test_manager(), which should only kick in when "autoEncryption" opts are specified (as PHPLIB does) and check for a valid $driverOptions structure (to accomodate manager-ctor error tests).
* Use non-breaking space in OS axis labels
* Revise titles and Manager construction in autoEncryption tests
* Define CSFLE_KEY_VAULT_NS and CSFLE_LOCAL_KEY constants
The value for CSFLE_KEY_VAULT_NS is based on the example from PHPLIB-826. This was not required but helps makes all tests consistent and will make it easier if we need to add functionality to a helper to drop the key vault collection before a test.
Using CSFLE_LOCAL_KEY allows removal of a duplicated string literal in various CSFLE tests. Although the new constant wasn't required for all tests (empty strings worked fine to satisfy option validation), using a constant helps ensure consistency across the test suite.
Also use create_test_manager() in more places when basic.inc is included. The remaining instances of direct Manager construction should only be in tests where basic.inc isn't used.
Update axes definitions:
* Add "mongodb" to version and edge-version axes names
* Add MongoDB 6.0 to mongodb-versions axis
* Fix latest-stable in mongodb-edge-versions axis (5.0 label was actually using MongoDB 4.0)
* Bump latest-stable in php-edge-versions axis to PHP 8.1
* Use debian11 for testing server versions not on debian92
* Make RHEL host names consistent with those in mongo-php-toolchain
* Fix label for zSeries (7.4 label was always using RHEL 7.2)
Revise test matrices:
* Test all PHP versions with latest-stable MongoDB on Debian 11 and RHEL 7.0
* Test all topologies and MongoDB versions with latest-stable PHP version on Debian
* Restrict testing of ARM64, Power8, and zSeries architectures to MongoDB 4.4
* Restrict testing of non-WiredTiger storage engines to MongoDB 4.0
* Update mongodb-versions for OCSP, Stable API, and load balancer matrices
* Use Debian 10 for OCSP testing (MongoDB 4.4+)
* Use Debian 11 for Stable API testing (MongoDB 5.0+)
* Keep Debian 9.2 for load balancer testing and remove MongoDB 6.0. Switch to Debian 11 once haproxy is available (see: BUILD-15237)
Use standalone-ssl, replicaset-auth, and sharded tasks for most matrices. The full set of tasks will be used for testing "all topologies and MongoDB versions".
* Remove pre-3.6 server versions from Evergreen matrix
* Remove skipped tests for pre-3.6 servers
* Remove old mongo-orchestration configs and Evergreen tasks
* Remove flaky replica set tests
These tests assume a particular replica set member is always the primary, so tag assertions may fail if a different member is elected. The server-getTags-002.phpt test has more flexible assertions for replica set tags, so we can safely remove these tests.
* PHPC-2047: Update load balancer testing config
Upstream changes in drivers-evergreen-tools now require passing LOAD_BALANCER to run-orchestration.sh. Additionally, service ID mocking is no longer required as of server version 5.1.
* Add missing live server checks in tests
* PHPC-1880: Drop support for PHP 7.1
* Bump PHP versions in AppVeyor config
* PHPC-1880: Update Evergreen config for PHP 7.2+ and MongoDB 5.0
Bump edge-versions:latest-stable to MongoDB 5.0. Drops PHP 7.1 and adds PHP 8.0 to php-versions and newly created php-edge-versions axis.
Use oldest-supported or latest-stable PHP version for matrices other than test-php-versions.
Make variant display names consistent to help detect duplicates.
Remove WiredTiger from mongo-42-storage-engines since it's tested in most other variants by default.
* Revise "cursor not found" error message assertions for latest server version
* Temporarily remove 1.19.x from libmongoc-version axis
This also consolidates INI functions (and trace logging) into a separate file and ensure that mongoc logging is disabled during GSHUTDOWN (avoiding a potential segfault).
Enable service ID mocking when testing load balancers with HAProxy.
AUTH dates back to cee996bc79 and was likely derived from the drivers-evergreen-tools template. It is no longer set from the Evergreen task config and serves no functional purpose.
* PHPC-1877: Do not test MongoDB 5.0+ on rhel71-power8
This also removes "latest" because it resolves to the last supported release (4.9-dev).
* PHPC-1782: Do not test MongoDB 5.0+ on rhel74-zseries
* Add 5.0 to the test matrix
* Use different query operator to trigger error
5.0 throws a different error for top-level fields with dollars, so we're using an unknown operator instead.
* Introduce edge-versions axis to test against latest stable
* Use ping instead of isMaster in Atlas connectivity tests
* PHPC-1835: Rotate credentials for Atlas connectivity tests
This corresponds with a change to the project's Evergreen config to rotate keys for decrypting atlas-uris.txt.enc.
Additionally, this adds comments atlas-uris.txt and atlas.phpt test output for improved readability.
* Introduce MongoDB\Driver\ServerApi
* Accept serverApi driver option
* Introduce create_test_manager factory to create manager
A centralised entry point is required to inject the API_VERSION env variable later.
* Add build variant to test with requireApiVersion=true
* Fix wrong configuration for auth variable
This changed when migrating from our own scripts to drivers-evergreen-tools and was not updated properly, causing all tests to run with auth disabled.
* Declare ZEND_PARSE_PARAMETERS_NONE macro
This macro is missing on PHP < 7.3
* Remove duplicated API param storage
* Add missing semicolons
* Add ZEND_PARSE_PARAMETERS_NON_EX macro
* Extract error handling functionality to separate macros
* Throw if internal mongoc_server_api_t is already initialised
* Use imported namespaces in tools file
* Fix type info for reflection
* Use American English spelling
* Only use typed serialize signature on PHP 8+
* Update PHONGO_PARSE_PARAMETERS_NONE macro for PHP < 7.3
* Remove usage of ZEND_STRL within zend_hash_str_add
This causes compile failures on PHP < 7.3 that I have yet to understand.
* Fix errors in new PHONGO_PARSE_PARAMETERS macros
* Fix running auth tests
* Fix flaky tests on replica sets
* Remove arbiters from replica set config
This was done for auth due to a bug fixed in 3.7.7, but the change was not reverted (see https://github.com/mongodb-labs/drivers-evergreen-tools/pull/38).
* Harden test against non-deterministic return order
* v1.9:
PHPC-1739 Move from travis-ci to GitHub Actions (#1199)
PHPC-1774 Fix truncation of PHP_VERSION constant in handshake metadata (#1202)
PHPC-1775 Use correct size for strncpy in when initialising DBPointer (#1203)
* Add GitHub Action workflow for tests
* Add workflow to check formatting
* Remove travis-ci config
* Fix clang-format error
* Add shared json extension for tests
* Hide output for xfail tests
* Use mongo-orchestration configs from drivers-evergreen-tools
* Drop obsolete test scripts
This drops the legacy VM environment and remnants of the travis-ci config
* Remove obsolete server_id config
* Add note about MONGO_ORCHESTRATION_URI to contribution docs
* Restore previous XFAIL behaviour
This did not have the expected effect of preventing diff output for tests that expect failures, so it can be reverted.
* Make SSL certificate path configurable for tests
Since mongo-orchestration will always bring its own certificates, we need to set the correct SSL certificate directory for our tests. This is skipped on GitHub Actions as we don't test SSL builds there (yet). If SSL_DIR was not set, tests requiring SSL will be skipped.
* Fix code review nits