* PHPC-2121: Skip failing test
* Add todo comment to SKIPIF check
Co-authored-by: Jeremy Mikola <jmikola@gmail.com>
Co-authored-by: Jeremy Mikola <jmikola@gmail.com>
* Match error message variations between libmongoc 1.23+ and older
This typo was corrected in mongodb/mongo-c-driver@1d7229f0e9 and will appear in the 1.23.0 release.
* PHPC-2103: Report loaded crypt_shared version in phpinfo()
* PHPC-2132: Fix pattern for matching phpinfo() values
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).
Enums serialize like PHP objects with a "name" property (BackedEnum instance will also have a "value") and thus become BSON documents. In order for a document to unserialize back to an enum, it must implement either Unserializable or Persistable. The bsonUnserialize() method serves no purpose for initialization, but it will still be invoked.
This introduces a PersistableEnum trait, which can be used for both Unserializable or Persistable implementations.
Co-authored-by: Sara Golemon <pollita@php.net>
* Test on PHP 8.2
* Fix tests relating to dynamic properties
* Fix tests failing due to different __set_state output
* Duplicate clone test without dynamic properties for PHP >= 8.2
* Add missing macros for declaring arguments
* Add macros to define disabled constructor and __wakeup
* Define arginfo via stubs for BSON classes
* Declare tentative return types in interfaces
* Add correct return type for __set_state methods
* Generate class entries for BSON classes
* Declare Binary class constants in stub file
* Use stubs in exception classes
* Add stubs for monitoring classes
* Fix wrong JsonSerializable class in BSON stubs
* Disable declaration-after-statement
This is necessary to let the generated arginfo files compile
* Use stubs for driver classes
* Fix deprecation messages in tests
* Add missing macro
* Fix tests relying on value injection
* Parse parameters in disabled constructor/wakup function
* Add note about arginfo files to contribution docs
* Add GitHub action to check generated arginfo files
* PHPC-2115: Use DateTimeInterface in UTCDateTime constructor signature
* Don't install mongodb extension in GitHub actions workflows
* Change indentation in stub files
* Use individual #if conditions for each stub method
* Make disabled constructor/wakeup methods static
* Fix bulkWrite parameter name
* Use %d to match property count in tests
* Ensure all classes with disabled serialisation declare __wakeup
* Replace zend_parse_parameters calls with macros
* Fix warning about uninitialized variable
* Fix wrong parameter type in Server::executeBulkWrite
* Add compat macro for Z_PARAM_ARRAY_OR_OBJECT
* Define additional constants in mongocrypt-export.h
* PHPC-2104: ClientEncryption::QUERY_TYPE_EQUALITY is a string
Downstream change since MONGOC_ENCRYPT_QUERY_TYPE_EQUALITY was changed to a string type.
Bumps libmongocrypt submodule to 1.5.0-rc2. Related to this bump, mongocrypt.h is no longer generated.
Bumps libmongoc submodule to 1.22-dev.
* 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".