1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 16:22:37 +01:00
Commit Graph

74 Commits

Author SHA1 Message Date
Shivam Mathur
720917f39a Merge branch 'PHP-8.4' 2025-06-25 02:03:18 +05:30
Shivam Mathur
d2a30acf33 Merge branch 'PHP-8.3' into PHP-8.4 2025-06-25 02:01:59 +05:30
Shivam Mathur
dc79f4c8c6 Merge branch 'PHP-8.2' into PHP-8.3 2025-06-25 02:01:24 +05:30
Shivam Mathur
91f2458020 Merge branch 'PHP-8.1' into PHP-8.2 2025-06-25 02:00:11 +05:30
Shivam Mathur
6233dc6210 Switch to windows-2022 in CI (#18927)
* Switch to windows-2022 in CI

windows-2019 runner will be dropped by GitHub on 2025-06-30.

* xfail test cases that fail on windows-2022
2025-06-25 01:57:07 +05:30
Saki Takamachi
23687672f3 Merge branch 'PHP-8.4'
* PHP-8.4:
  Fixed GH-17383 - pdo_firebird: PDOException has wrong code and message since PHP 8.4 (#18072)
2025-04-19 14:11:35 +09:00
Saki Takamachi
685baf77df Fixed GH-17383 - pdo_firebird: PDOException has wrong code and message since PHP 8.4 (#18072)
Closes #18072
Fixes #17383
2025-04-19 14:11:20 +09:00
Ilija Tovilo
1009ff65cc Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Upgrade security branches to Ubuntu 22.04
2025-03-06 15:24:35 +01:00
Ilija Tovilo
5fcc8d4cd1 Upgrade security branches to Ubuntu 22.04
20.04 goes out of security support in 2 months. Backporting various
commits.

See d98963a071
See af721c9c36
See 378b79b90c

Closes GH-17963
2025-03-06 15:24:15 +01:00
Christoph M. Becker
08ace8409d Merge branch 'PHP-8.4'
* PHP-8.4:
  Prevent using system DLLs when running the tests
2025-02-16 23:08:21 +01:00
Christoph M. Becker
7a734caacc Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Prevent using system DLLs when running the tests
2025-02-16 23:06:54 +01:00
Christoph M. Becker
c7bc14dd6b Prevent using system DLLs when running the tests
The search order for DLLs on Windows is (simplified):

* the application folder
* the system folder
* all folders in the `PATH`

(The full details are documented on Microsoft Learn[1].)

As is, we're adding `deps\bin` to the `PATH` when running the tests,
but any DLLs in the system folder take precedence, so these would be
used instead of our intended dependencies.  To mitigate that, we copy
over all DLLs from `deps\bin` to our application folder (i.e. where
php.exe, php-cgi.exe and phpdbg.exe are placed).

Since we're doing this, there is no more need to attempt to remove the
OpenSSL DLLs in the system folder (what seems to be a bad idea anyway).

[1] <https://learn.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order>

Closes GH-17805.
2025-02-16 23:06:04 +01:00
Christoph M. Becker
ed9c283589 Fail build_task.bat if main nmake failed (GH-17820)
Otherwise we may not notice Windows CI build failures.

Fixes GH-17818.
2025-02-15 18:26:11 +01:00
Christoph M. Becker
fe9c9049ef Elevate Windows CI to /W3 (sans C4018/C4267) (GH-17665)
C4018[1] is about unsigned/signed comparisons; C4267[2] is about
conversion from `size_t` to a "smaller" type.  We likely should resolve
these warnings in the long run, but for now, it seems like a no brainer
to elevate to `/W3` even if we have to exempt two additional categories
of warnings, since we can catch some others.  And we no longer need to
elevate C4010[3] to a higher level to catch it.

[1] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4018>
[2] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4267>
[3] <https://learn.microsoft.com/de-de/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4013>
2025-02-14 17:39:54 +01:00
Christoph M. Becker
e4999275c2 Fix GH-17658: COMPersistHelper::LoadFromStream() can segfault (GH-17659)
* Fix GH-17658: COMPersistHelper::LoadFromStream() can segfault

The actual fix is trivial, but to be able to test the behavior we have
to introduce an own COM object, since existing persistable objects
likely implement `IPersistInit`, not only `IPersist`.  We also want to
avoid further test dependencies on possibly unavailable objects, such
as `Word.Application`.

To this purposes, we add a small COM in-process server, which may be
extended for other testing purposes.  We keep it simple by implementing
it in C++, but without using any more sophisticated frameworks like ATL.

This component needs to be built explicitly (`nmake comtest.dll`), and
also needs to be explicitly registered (`nmake register_comtest`).
When no longer needed, it is possible to unregister the component
(`nmake unregister_comtest`).
2025-02-11 12:42:25 +01:00
Christoph M. Becker
a611be4c07 Elevate Windows CI to /W2 (sans C4146/C4244) (GH-17581)
C4146[1] is about unary minus applied to unsigned operands; that
behavior is well defined, and apparently used deliberately in the code
base.

C4244[2] is about possible loss of data when converting to another
arithmetic type.  This is addressed by another PR[3].

Anyhow, it seems like a no brainer to elevate to `/W2` even if we have
to exempt two categories of warnings, since we can catch some others.

[1] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-2-c4146?view=msvc-170>
[2] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-2-c4244>
[3] <https://github.com/php/php-src/pull/17076>
2025-02-01 12:25:24 +01:00
Jakub Zelenka
5ba299be18 Merge branch 'PHP-8.4' 2025-01-06 12:21:20 +01:00
Jakub Zelenka
35c03c165e Merge branch 'PHP-8.3' into PHP-8.4 2025-01-06 12:20:50 +01:00
Jakub Zelenka
3606701f48 Merge branch 'PHP-8.2' into PHP-8.3 2025-01-06 12:19:36 +01:00
Jakub Zelenka
5be673d29e Merge branch 'PHP-8.1' into PHP-8.2 2025-01-06 12:18:54 +01:00
Jakub Zelenka
9e1b58274e Test stream_context_tcp_nodelay_server on Windows
Closes GH-17308
2025-01-05 14:44:22 +01:00
Christoph M. Becker
7e1a241b09 Reduce excessive stack reserve for testing in CI (GH-17166)
For some reason the stack reserve of php.exe and php-cgi.exe is very
large on Windows (64MB)[1].  While this might not be bad for production
purposes, it causes stack_limit_014.phpt to be unbearably slow; the
test may easily run for a minute, and due to a recent `stream_select()`
improvement[2], that can cause a timeout, what triggers the test to be
run again.  So this single test case may run for two minutes, and still
might fail (happened a couple of times).

Instead of skipping the test in CI, we reduce the stack reserve to 8MB,
what improves the performance of this test case (and maybe others), and
should still be good enough for CI.

[1] <54906c760f>
[2] <b614b4a69a>
2024-12-16 12:37:06 +01:00
Christoph M. Becker
85731e8830 [skip ci] Add nightly job for x64 Windows with ASan enabled
It seems reasonable to have an ASan job on Windows, especially to be
able to check Windows specific code.  Since the tests may take about
70 minutes, it doesn't make sense to add these for pushes, but for a
nightly job that should be okay.

Closes GH-17087.
2024-12-09 12:01:19 +01:00
Christoph M. Becker
2473f57ba7 Elevate C4013 to level 1 in CI (GH-16986)
C4013 warns about undefined functions[1], but for some reason it's only
a level 3 warning, and such suppressed by default (usually there will be
link errors afterwards, though).  It appears to be sensible to elevate
the warning to level 1, so it will be converted to a compile error.

[1] <https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-3-c4013>
2024-11-29 12:15:26 +01:00
Christoph M. Becker
03cbb3ee58 Build com_dotnet shared by default
The official Windows builds and CI are doing this for ages, so it
appears to be overdue to finally switch the actual default.

Closes GH-16300.
2024-11-18 20:50:22 +01:00
Christoph M. Becker
3351daee61 Merge branch 'PHP-8.4'
* PHP-8.4:
  Download enchant dict from downloads.php.net
2024-10-17 00:56:29 +02:00
Christoph M. Becker
89f10e6e92 Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Download enchant dict from downloads.php.net
2024-10-17 00:55:59 +02:00
Christoph M. Becker
5dba6aebaa Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Download enchant dict from downloads.php.net
2024-10-17 00:55:20 +02:00
Christoph M. Becker
5ef3fe218c Download enchant dict from downloads.php.net
Since windows.php.net is in the progress to be migrated to
downloads.php.net anyway, we may as well fetch the dictionary from the
new site right away.

Closes GH-16310.
2024-10-17 00:55:04 +02:00
Christoph M. Becker
2d3990c50a Merge branch 'PHP-8.4'
* PHP-8.4:
  Install 32bit Firebird server on x86
2024-10-07 01:40:20 +02:00
Christoph M. Becker
5c7c5d93ae Merge branch 'PHP-8.3' into PHP-8.4
* PHP-8.3:
  Install 32bit Firebird server on x86
2024-10-07 01:39:51 +02:00
Christoph M. Becker
424fb2c3fc Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Install 32bit Firebird server on x86
2024-10-07 01:35:29 +02:00
Christoph M. Becker
c3434091de Install 32bit Firebird server on x86
php_pdo_firebird.dll depends on fbclient.dll, which is shipped with the
server.  However, a 64bit Firebird server ships a 64bit fbclient.dll,
which is not compatible with a 32bit php_pdo_firebird.dll.

Closes GH-16223.
2024-10-07 01:34:54 +02:00
Christoph M. Becker
bb3a3d025b [skip ci] Don't build bless_tests.patch (GH-16224)
The bless_tests.patch had been introduced via PR #7204, but is no
longer available due to PR #11566.  Since apparently the patch is not
that helpful, we remove the code which generates it.
2024-10-04 18:22:52 +02:00
Christoph M. Becker
3e9f2fa071 Avoid dl() in run-tests.php (GH-16126)
Prior to running the tests, the test runner checks for all generally
available extensions; it does this by scanning the `extension_dir` for
files matching the typical extension pattern, but verifies that the
file is actually a PHP extension by calling `dl()`.  However, `dl()`
has known issues[1].  On Windows CI we always get an ugly "zend_mm_heap
corrupted" message, and we even can't `dl()` ext/mysql when OPcache is
enabled[2].  So we better avoid the double-check with `dl()`, which is
unlikely to be necessary anyway.

[1] <https://github.com/php/php-src/issues/9196>
[2] <https://github.com/php/php-src/issues/8508>
2024-10-03 12:58:27 +02:00
Christoph M. Becker
fbfc89944d x86 builds on Windows are warning level 1 clean (GH-16170)
The only issue that was left was due to the old build of net-snmp 5.7.3; since updating to net-snmp 5.9.4, this is resolved.

The patch has originally been provided by @mvorisek.
2024-10-03 12:55:42 +02:00
Saki Takamachi
ae505db0c9 CI: prepare for PHP-8.4 (#16036) 2024-09-25 22:57:59 +09:00
Christoph M. Becker
580435354e Support bug64159.phpt on Windows CI (GH-15895)
This test queries `extOutput` for the first line of output of the
command which was executed when snmpd started (`HexTest` in snmpd.conf).
Since there is no `/bin/sh` on Windows, no command would be run, and as
such we received an empty string.  We fix that by dynamically adjusting
snmpd.conf to run a JScript which has the same output as bigtest.

We also make the test diff more helpful in case of failures, where so
far we only would have known that the output had a different message
digest.
2024-09-21 16:03:25 +02:00
Christoph M. Becker
b438e2b1ed Merge branch 'PHP-8.3'
* PHP-8.3:
  Run snmp tests in Windows CI, again
2024-09-15 23:15:09 +02:00
Christoph M. Becker
ad11cbc491 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Run snmp tests in Windows CI, again
2024-09-15 23:14:15 +02:00
Christoph M. Becker
b26e610777 Run snmp tests in Windows CI, again
That was broken when CI was moved to GH, since `APPVEYOR_BUILD_FOLDER`
is no longer set; instead we use `GITHUB_WORKSPACE` which has the same
meaning.

Closes GH-15896.
2024-09-15 23:13:54 +02:00
Saki Takamachi
c4f1c5cd9f Updated firebird version in windows ci (#14912) 2024-07-16 19:56:14 +02:00
Ilija Tovilo
8fd1388a7f Merge branch 'PHP-8.3'
* PHP-8.3:
  Remove GitHub actions junit artifacts
2024-06-13 14:09:17 +02:00
Ilija Tovilo
9cec164f76 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Remove GitHub actions junit artifacts
2024-06-13 14:07:43 +02:00
Ilija Tovilo
f598b58790 Remove GitHub actions junit artifacts
Nobody looks at those, and nightly regularly fails due to uploading them.

Closes GH-14555
2024-06-13 14:05:50 +02:00
Saki Takamachi
f62f6a6d4b Follow-up to remove IMAP ext (#13248)
Fixed and optimized tests that depend on imap in standard ext tests.

Also, the location of the setup script for hmailserver has changed.
2024-02-09 21:32:07 +09:00
Peter Kokot
3e237ecfb3 Remove remainings of recent oci extensions removal (#13352)
Following a4d64b2605
2024-02-08 18:04:00 +01:00
Daniil Gentili
2ca142ecd8 Improve jit tests
Closes GH-12425
2023-11-14 20:09:27 +01:00
Ilija Tovilo
29fed1cf47 Remove redundant CI JIT flags
These flags are already set from run-tests.php.
2023-10-13 11:49:42 +02:00
Ilija Tovilo
2aa2d91a7b Reduce jit_max_root_traces in tests
This value would be so high, occupying 88MB of shm on my machine and effectively
disabling the JIT in some cases.

Co-authored-by: Daniil Gentili <daniil@daniil.it>
2023-10-12 13:08:17 +02:00