* 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.
* PHPC-1813: Unpin session after aborting a transaction
Bumps libmongoc dependency to pull in changes from CDRIVER-3949
* Revise Extended JSON tests for CDRIVER-3958
* Use zend_exception_ce instead of zend_exception_get_default()
zend_exception_get_default() has been deprecated since PHP 7.0. See: php/php-src@f9e9d3a437
* Check retval from php_phongo_set_monitoring_callbacks
This ensures that php_phongo_client_register is never called in the event this method fails (however unlikely).
* Index subscriber HashTable by numeric object handles
This also updates add/removeSubscriber to use the new argument parsing macros from deead9687e.
* PHPC-1804: Manager::addSubscriber and removeSubscriber
Implements per-client event subscribers. Moves existing APM code to a new phongo_apm.c module and adds logic to coordinate dispatching between global and per-client subscribers.
* 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
* PHPC-1529: Reset libmongocrypt key vault client after forking
* Run ping command instead of find
* Update wrong comment
* Only run tests when libmongocrypt is present
* Add mongocryptd.pid to gitignore
* Fix test failures due to missing mongocryptd
This ensures persistent clients in all threads are freed, not just those in the main thread. Doing so also required that we call mongoc_cleanup and bson_mem_restore_vtable in the final GSHUTDOWN (tracked by an atomic counter).
* Replace client pointers on object structs with Manager references
* Request-scoped Manager registry for APM events
* Ensure Manager is registered regardless of persistent client
* Reset request-scoped clients when forking
* Test for freeing Manager during RSHUTDOWN via subscriber reference
Co-authored-by: Andreas Braun <git@alcaeus.org>