We always run test steps on azure, even if a previous step failed, because we
don't want a failure in one configuration to prevent testing of other
configurations. However, if building PHP fails in the first place, then we
currently end up testing the system PHP binary. This is not only useless, but
will also result in a test runner hang and cause the job to time out.
Avoid this by using sapi/cli/php instead of the installed php as the test
binary. If we fail to build, then it will not exist, and testing will fail
immediately.
* allow the user to specify a folder where files that can be sent
via LOAD DATA LOCAL can exist
* add mysqli.local_infile_directory for mysqli
(ignored if mysqli.allow_local_infile is enabled)
* add PDO::MYSQL_ATTR_LOCAL_INFILE_DIRECTORY for pdo_mysql
(ignored if PDO::MYSQL_ATTR_LOCAL_INFILE is enabled)
* add related tests
* fixes for building with libmysql 8.x
* small improvement in existing tests
* update php.ini-[development|production] files
Closes GH-6448.
Co-authored-by: Nikita Popov <nikic@php.net>
The extensions are build as shared to only check that they compile,
without running tests. The OCI8 extension does not properly SKIPIF
no database is available.
It should be noted that if we do want to also test these, then
(apart from running a database) it will also be necessary to configure
with LIBS="-Wl,--disable-new-dtags" in order to force the use of RPATH
instead of RUNPATH, the latter of which does not affect dlopened
libraries. Using LD_LIBRARY_PATH does not mesh well with our test
suite.
Closes GH-6604.
We already install the necessary libs for the odbc extension, so
we may as well build PDO ODBC.
As we don't setup an ODBC server, the tests will be skipped.
Close GH-6528.
This tests that mysqli and pdo_mysql build against libmysqlclient,
and that tests pass for pdo_mysql. mysqli has too many test failures.
This is not an officially supported configuration.
The opcache-only configuration has very little signal (i.e. it is
very rare that it fails while non-opcache and opcache+jit both
pass). Switch it to run only for nightly builds, so we get faster
results on normal builds.