Now that URI option validation is consistent between connection strings and array options, we can remove the previous test for authSource without credentials.
This allows PHPC to defer entirely to libmongoc for cross-option URI validation
Bump libmongoc to 1.21-dev
Build changes are ported from upstream CMake changes (see: CDRIVER-4249)
This should avoid the BC break introduced in 6c82ec8b52. PHP 8.1 will automatically add return type info for Stringable, which means the ReturnTypeWillChange attribute should not be necessary on userland classes.
* PHPC-2009: Support tlsOptions encryption option
This also adds some missing option validation tests for the autoEncryption driver option and Manager::createClientEncryption().
* PHPC-2010: Type validation for autoEncryption.extraOptions
* PHPC-1878: Explicitly use w:1 for local database
* PHPC-2008: Skip test requiring role to drop local collection
The "restore" role is required to drop collections in the "local" database. Mongo Orchestration does not yet grant that role for its users.
* PHPC-2004: Specify string return type in __toString() arginfos
Adding return type info to the interface methods is a small subtle BC break. Userland classes will also need to add return type info prior to PHP 8.1, where it is added automatically. However, to leave the interface methods untyped would invite an error because BSON classes cannot otherwise conform to Stringable, which has return type info.
Additionally, PHP 8.2 will start raising a warning when return type info is automatically applied, so a BC break in some form is inevitable.
* PHPC-2007: Explicitly implement Stringable for PHP 8+
* Fix code formatting
This was missed in fe99deb32a
* 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
* BSON corpus prose tests for null bytes
For tests that already existed we just add a reference to the prose test
* BSON corpus tests for null bytes
Synced with mongodb/specifications@c64fc79899
This sync also removes some old DBRef tests, which should have been removed in 6929bcb608.
* Bump libmongoc to 1.19.1 to pull in changes from CDRIVER-4083
Skip tests expecting gossiped $clusterTime on first command. This may be a bug in libmongoc, per CDRIVER-4174.
Make exception assertion in TLS tests more flexible. Expect parent ConnectionException to accomodate load balanced clients, which do not use server selection. Both exception messages will include a common prefix from libmongoc.
Do not assert exception message for failed TLS connection. While the message will typically include "TLS handshake failed", that is not guaranteed.
Make ping response assertions in TLS tests more flexible. Sharded clusters and replica sets may return additional fields in the ping response (e.g. cluster time). These tests were originally written to expect a standalone response.
Allow unset RTT (-1) for load balanced client.
Note SRV caveat for is_replica_set test function.
Allow load balancers for tests that require sharded clusters. Load balancers should always proxy a mongos, so existing skip functions that check for mongos can now allow a load balancer. If there is some incompatibility specific to LBs, we can address that later with a LB-specific skip function.
Require mongos for pinning tests. Pinning does not apply to load balanced clients, since there is only one connection.
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.