#
7f3d5982 |
| 25-Sep-2024 |
Stefan Eissing |
CI: improvements in test reliability and performance - CI default: raise parallelism to 20 - CI valgind: set parallelism to 6 - CI non-native: adapt parallelism for OS builds - C
CI: improvements in test reliability and performance - CI default: raise parallelism to 20 - CI valgind: set parallelism to 6 - CI non-native: adapt parallelism for OS builds - CI Windows: no longer ignore FTP, TFTP, MQTT and SMTP - CI Windows: restrict test timeout to 10 minutes - CI Windows: do not run tests for msh3 build - tests, various: restrict curl invocation to ipv4 to avoid talking to any ipv6 test server running in parallel - tests: requiring http/2 server no longer needs to mention http server - test 190: use a fixed timeout of 10 seconds instead of %FTPTIME2, as that value rises under parallel load beyond what the server is waiting and then produces different results - test 1540: add debug logging - testrunner: add verify checks for http/2 and http/3 server Closes #15040
show more ...
|
#
d82f9f96 |
| 23-Sep-2024 |
Viktor Szakats |
build: add pytest targets It enables running pytests in cmake jobs, regardless of underlying build tool choice (= makes it work with ninja.) Also: - drop pytest logic l
build: add pytest targets It enables running pytests in cmake jobs, regardless of underlying build tool choice (= makes it work with ninja.) Also: - drop pytest logic launching `make` and exiting in case of failure. Maybe there is a better way and keep this functionality somehow, bind it to a command-line option? make it fail softly? - GHA/linux: invoke pytest via the build, not directly. - autotools: add missing dummy runtests targets when cross-compiling. Closes #15034
show more ...
|
#
7b88bb44 |
| 22-Sep-2024 |
Viktor Szakats |
cmake: make `test-ci` target skip building dependencies Make `test-ci` not depend on the `testdeps` target. `test-ci` is designed to run curl tests in CI. In CI we build all nec
cmake: make `test-ci` target skip building dependencies Make `test-ci` not depend on the `testdeps` target. `test-ci` is designed to run curl tests in CI. In CI we build all necessary dependencies explicitly beforehand, and they are always ready when calling the `test-ci` step. Thus, it isn't necessary to enforce them via a dependency rule. Dropping it saves redundant work and delay in CI jobs. The `testdeps` dependency should not normally be a problem. It's supposed to be a no-op if those targets are already built. In practice however, it causes a delay and/or an actual rebuild of those dependencies depending on generator (= build tool) used and other factors. As observed in the GHA/windows workflow, the `testdeps` dependency: - with Ninja, causes no delay, and no extra work: https://github.com/curl/curl/actions/runs/10980099984/job/30485440389#step:25:18 - with GNU Make, caused a re-evaluation of `testdeps` targets, but did not actually rebuild them. This re-evaluation took a noticeable time (esp. with non-bundled tests): https://github.com/curl/curl/actions/runs/10980099984/job/30485440155#step:14:11 (with bundles) https://github.com/curl/curl/actions/runs/10973851013/job/30471690331#step:14:11 (w/o bundles) verbose: https://github.com/curl/curl/actions/runs/10980506956/job/30486434629#step:14:13 - with MSBuild, caused a re-evaluation of `testdeps` targets, and triggered a _rebuild_: https://github.com/curl/curl/actions/runs/10980099984/job/30485435968#step:14:19 (with bundles) https://github.com/curl/curl/actions/runs/10973851013/job/30471689714#step:14:19 (w/o bundles) verbose: https://github.com/curl/curl/actions/runs/10980506956/job/30486436368#step:14:48 It's suspected that our use of `-DCMAKE_VS_GLOBALS=TrackFileAccess=false` in CI is contributing to this. This option is supposed to affect incremental builds only. For some reason it affects CI builds too, even though they are not incremental, and no sources are changed between build steps. Reported-by: Aki Sakurai Ref: #14999 Notice that `test-*` targets depending on `testdeps` is NOT sufficient to build everything to run tests, e.g. it misses to build the curl tool, which is essential. This is also true for autotools' `test-ci` target which misses to build libcurl and the curl tool. Perhaps it'd be best to drop `testdeps` as a dependency for _all_ `test-*` targets and make it official to require building dependencies manually. Alternatively these targets could be fixed to rebuild everything necessary to run tests. Closes #15001
show more ...
|
#
71cf0d1f |
| 02-Sep-2024 |
Viktor Szakats |
tests: speed up builds with single-binary test bundles Add support for single-block binaries that contain all libtests and unit tests respectively. Enable with: - autotools:
tests: speed up builds with single-binary test bundles Add support for single-block binaries that contain all libtests and unit tests respectively. Enable with: - autotools: `--enable-test-bundles` - cmake: `-DCURL_TEST_BUNDLES=ON` (They are compatible with `--enable-unity` and `-DCMAKE_UNITY_BUILD=ON` options, for further speed-up.) Makes libtests and unit tests build _fast_, needing little disk space even in static mode. Similar to CMake unity mode, but with a custom script, also supporting autotools builds. The price is having to deal with symbols/macros colliding between `lib*.c` and `unit*.c` sources. Maybe with naming conventions or other solutions this can be improved gradually and reduce the need for manual intervention by `mk-bundle.mk`. I've included a script that does the bulk of detecting name collisions. Also: - CI: enable test bundles. - CI: build tests in more jobs. - lib2305: fix FILE handle leak. - unit1661: fix memleak found by torture test by releasing the `bufref` structure in `unit_stop()` that was allocated in `unit_setup()`. ``` test 1661...[bufref unit tests] Leak detected: memory still allocated: 13 bytes allocated by /home/runner/work/curl/curl/tests/unit/unit1661.c:70 1661: torture FAILED: function number 1 in test. ``` Ref: https://github.com/curl/curl/actions/runs/10967279334/job/30456745290?pr=14772#step:8:41 Similar test suite builds with autotools default and cmake+bundle+unity: - GHA/Linux: 33s vs 7s https://github.com/curl/curl/actions/runs/10705668823/job/29681617374 - GHA/macOS 34s vs 2s https://github.com/curl/curl/actions/runs/10705668813/job/29681632885 - GHA/FreeBSD: 15m25 vs 6m21 (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10705668811/job/29681607915 - GHA/Cygwin: 9m52 vs 32s https://github.com/curl/curl/actions/runs/10705668809/job/29681609965 - GHA/MSYS2: 3m52 vs 14s https://github.com/curl/curl/actions/runs/10705668808/job/29681624295 - GHA/mingw-w64: 5m45 vs 30s https://github.com/curl/curl/actions/runs/10705668808/job/29681628787 Autotools test suite builds compared between master -> `--enable-test-bundles`: - GHA/Linux: 33s -> 9s (run tests: 22m23 -> 20m44) https://github.com/curl/curl/actions/runs/10710030193/job/29695932185 https://github.com/curl/curl/actions/runs/10967831456/job/30458220344 - GHA/macOS: 25s -> 4s (run tests: 2m58 -> 2m24) https://github.com/curl/curl/actions/runs/10710030195/job/29695938444 https://github.com/curl/curl/actions/runs/10967831452/job/30458225762 - GHA/non-native (FreeBSD): 4m8 -> 3m12 (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10710030198/job/29695928401 https://github.com/curl/curl/actions/runs/10967831458/job/30458212692 - GHA/Cygwin: 9m25 -> 1m9 (run tests: 9m19 -> 3m28) https://github.com/curl/curl/actions/runs/10710030212/job/29695928213 https://github.com/curl/curl/actions/runs/10967831453/job/30458213268 - GHA/MSYS2: 3m54 -> 32s (run tests: 6m3 -> 3m59) https://github.com/curl/curl/actions/runs/10710030190/job/29704850591 https://github.com/curl/curl/actions/runs/10967831449/job/30459280005 - GHA/mingw-w64: 5m42 -> 1m5 (run tests: 7m41 -> 5m36) https://github.com/curl/curl/actions/runs/10710030190/job/29704852058 https://github.com/curl/curl/actions/runs/10967831449/job/30459280862 - Azure MSYS2 mingw64 openssl: 38m55 -> 11m58 https://dev.azure.com/daniel0244/curl/_build/results?buildId=25546&view=logs&j=b58b8c59-0f61-52e9-0f9e-fad562a1e77f&t=0f9230a7-3b10-53ca-9938-700ece377c5e https://dev.azure.com/daniel0244/curl/_build/results?buildId=25547&view=logs&jobId=39473db1-3945-55d5-deb5-c218fad88dce&j=b58b8c59-0f61-52e9-0f9e-fad562a1e77f&t=0f9230a7-3b10-53ca-9938-700ece377c5e - Azure Ubuntu default: 2m15 -> 55s (all build) https://dev.azure.com/daniel0244/curl/_build/results?buildId=25546&view=logs&j=9d58b9ac-e1e6-53b6-f83a-1f9f1d912522&t=a6b38d83-e7cf-5a9b-c762-a178412717b7 https://dev.azure.com/daniel0244/curl/_build/results?buildId=25547&view=logs&jobId=39473db1-3945-55d5-deb5-c218fad88dce&j=9d58b9ac-e1e6-53b6-f83a-1f9f1d912522&t=a6b38d83-e7cf-5a9b-c762-a178412717b7 Cmake test suite builds compared between master -> `-DCURL_TEST_BUNDLES=ON` + unity: - GHA/Linux: 29s -> 7s (run tests: 4m50 -> 4m57, 20m43 -> 20m45) https://github.com/curl/curl/actions/runs/10710030193/job/29695941814 https://github.com/curl/curl/actions/runs/10705668823/job/29681622201 - GHA/Linux old: 44s -> 13s (bundle+no unity) (run tests: 5m5 -> 5m6) https://github.com/curl/curl/actions/runs/10718264094/job/29719794727 https://github.com/curl/curl/actions/runs/10718653175/job/29721009613 - GHA/macOS: 32s -> 2s (run tests: 2m43 -> 2m40) https://github.com/curl/curl/actions/runs/10710030195/job/29695931956 https://github.com/curl/curl/actions/runs/10705668813/job/29681638937 - GHA/non-native (*BSD): inconclusive (full workflow time, ~qemu) https://github.com/curl/curl/actions/runs/10710030198 https://github.com/curl/curl/actions/runs/10705668811 - GHA/Cygwin: 3m9 -> 32s https://github.com/curl/curl/actions/runs/10710030212/job/29695929075 https://github.com/curl/curl/actions/runs/10705668809/job/29681609965 - GHA/MSYS2: 2m24 -> 14s https://github.com/curl/curl/actions/runs/10710030190/job/29704850996 https://github.com/curl/curl/actions/runs/10705668808/job/29681624295 - GHA/mingw-w64: 3m56 -> 30s (run tests: 4m2 -> 3m52) https://github.com/curl/curl/actions/runs/10710030190/job/29704852219 https://github.com/curl/curl/actions/runs/10705668808/job/29681631393 - GHA/mingw-w64-old: 7m19 -> 1m44 (run tests: 3m30 -> 2m53) https://github.com/curl/curl/actions/runs/10710030190/job/29704849763 https://github.com/curl/curl/actions/runs/10705668808/job/29681622329 - GHA/MSVC: 3m22 -> 13s (run tests: 9m43 -> 4m22) https://github.com/curl/curl/actions/runs/10710030190/job/29704850411 https://github.com/curl/curl/actions/runs/10705668808/job/29681623313 - AppVeyor CI MSVC 2008: 4m3 -> 45s (full build) - AppVeyor CI MSVC 2010: 2m56 -> 1m8 (full build) - AppVeyor CI MSVC 2022: 10m19 -> 2m23 (full build) https://ci.appveyor.com/project/curlorg/curl/builds/50538455 https://ci.appveyor.com/project/curlorg/curl/builds/50536558 - AppVeyor CI total build time: 10m30 (master) -> 6m48 (unity) -> 4m5 (bundle) -> 3m24 (bundle+unity) -> 5m7 (bundle+unity+all jobs building tests) Closes #14772
show more ...
|
#
867c187f |
| 06-Sep-2024 |
Viktor Szakats |
build: use `configurehelp.pm.in` with autotools and cmake Before this patch, each build tool generated `tests/configurehelp.pm` manually. Ref: https://github.com/curl/curl/pull/
build: use `configurehelp.pm.in` with autotools and cmake Before this patch, each build tool generated `tests/configurehelp.pm` manually. Ref: https://github.com/curl/curl/pull/14802#issuecomment-2332734326 Closes #14819
show more ...
|
#
3efba94f |
| 02-Sep-2024 |
Viktor Szakats |
cmake: allow building tests in unity mode Makes building tests noticeably faster. Apply changes/fixes/workarounds to make Unity work: - rename test variables to avoid collisions
cmake: allow building tests in unity mode Makes building tests noticeably faster. Apply changes/fixes/workarounds to make Unity work: - rename test variables to avoid collisions or shadowing each other when combined into single units. - add workaround to avoid applying `lib/memdebug.h` overrides to system headers declaring/defining `getaddrinfo()`/`freeaddrinfo()` for `tests/server/resolve.c`. This replaces a previous workaround that worked for that specific source. - rename test macro `CTRL` clashing with Cygwin `sys/ioctl.h`. - add include guard to `test.h`. Also: - exclude `tests/http/clients` which are all single-source. (like `docs/examples`.) Build time improvements for tests: - AppVeyor CI: - MSVC 2008, 2010: 1 minute faster (4m8s -> 2m56s, 3m19s -> 2m24s) - MSVC 2022 arm64: 3.5 minutes faster (10m18s -> 6m48s) before: https://ci.appveyor.com/project/curlorg/curl/builds/50522785 after: https://ci.appveyor.com/project/curlorg/curl/builds/50522942 - GHA: - Cygwin: 1.5 minutes faster (3m13s -> 1m43s) before: https://github.com/curl/curl/actions/runs/10681535327/job/29605384398 after: https://github.com/curl/curl/actions/runs/10680818726/job/29603130637 - Windows: before: https://github.com/curl/curl/actions/runs/10680818713 after: https://github.com/curl/curl/actions/runs/10683850187 - MSYS2, mingw-w64: 1 minute faster - MSVC: 30 seconds faster (3m17s -> 2m48s) - macOS: double speed (39s -> 18s) before: https://github.com/curl/curl/actions/runs/10680818753/job/29603133447 after: https://github.com/curl/curl/actions/runs/10683850174/job/29612914515 - Linux: almost double speed (30/31s -> 18s) before: https://github.com/curl/curl/actions/runs/10681535311/job/29605387156 after: https://github.com/curl/curl/actions/runs/10680818721/job/29603133976 - non-native: no obvious effect. before: https://github.com/curl/curl/actions/runs/10680818722 after: https://github.com/curl/curl/actions/runs/10683850187 - Old Linux: Unity mode not supported by old CMake, no effect. Closes #14765
show more ...
|
#
cf2f4ca5 |
| 19-Sep-2024 |
Viktor Szakats |
cmake: sync torture test parallelism with autotools Follow-up to 8ad3597d2dca4209fb19563b0a611a9944fa579b #14960 Closes #14969
|
#
50e2cb58 |
| 07-Sep-2024 |
Viktor Szakats |
build: `buildinfo.txt` improvements - cmake: drop `configure.os`. This also includes OS version, but thus far it's not important enough to include it. - autotools: drop redun
build: `buildinfo.txt` improvements - cmake: drop `configure.os`. This also includes OS version, but thus far it's not important enough to include it. - autotools: drop redundant, autotools-only `{target|host}.vendor`. (it's part of the triplet in `{target|host}`.) - swap order to `*.cpu` -> `*.os` to match triplet-order. - cmake: drop redundant `target`. It's manually filled and only in a (so far) few CI jobs. Let's revisit when this becomes useful. - move `buildinfo.txt` to build root. - dist: add `buildinfo.txt` to `DISTCLEANFILES`. - autotools: detect human readable compiler version. - autotools: replace `XXYY` `compiler.version` with "X.Y"-style. (also to match cmake.) - autotools: use distinct `compiler_id` for Apple clang: `APPLECLANG`. To match cmake and also because the the "X.Y"-style version number is the Apple version, while `XXYY` was a value roughly translated to mainline llvm/clang version. - show buildinfo at the end of the configure stage, when run in CI, or when `CURL_BUILDINFO` or `CURL_CI` env is set. Follow-up to 1fdea1684602a1ae2870c67b5f3e8fd34f63da95 #14802 Assisted-by: Dan Fandrich Ref: https://github.com/curl/curl/pull/14802#issuecomment-2334942991 Closes #14822
show more ...
|
#
1fdea168 |
| 05-Sep-2024 |
Viktor Szakats |
build: generate `buildinfo.txt` for test logs Also: - read `buildinfo.txt` from `runtests.pl` and dump it to the log. - cmake: show `CROSS` target flag for cross-builds. - cmake:
build: generate `buildinfo.txt` for test logs Also: - read `buildinfo.txt` from `runtests.pl` and dump it to the log. - cmake: show `CROSS` target flag for cross-builds. - cmake: add logic to detect arguments passed via the command-line. It is meant to help filling out missing datapoints in the testclutch matrix. Closes #14802
show more ...
|
#
fa461b4e |
| 07-Aug-2024 |
Aki <75532970+AkiSakurai@users.noreply.github.com> |
GHA/macos: enable HTTPS tests with stunnel - Install stunnel. - Regenerate certificates (as SecureTransport requires a validity period less than 398 days). - Restart
GHA/macos: enable HTTPS tests with stunnel - Install stunnel. - Regenerate certificates (as SecureTransport requires a validity period less than 398 days). - Restart server if it is unresponsive. - Do not hardcode the SHA-256 base64 public pinned key. - Ignore test 313 as SecureTransport does not support crl file. - Ignore tests 1631 and 1632 as SecureTransport is not yet able to shut down FTP over HTTPS gracefully. - Add a CMake target for generating certificates. Closes #14486
show more ...
|
#
5abfe451 |
| 14-Aug-2024 |
Viktor Szakats |
cmake: update list of "advanced" variables To hide them from the CMake GUI by default. Closes #14540
|
#
a298df7f |
| 08-Aug-2024 |
Viktor Szakats |
cmake: more small tidy-ups - prefix local variables with underscore and convert to lowercase. - list variables accepted by `libcurl.pc` and `curl-config` templates. - quote more stri
cmake: more small tidy-ups - prefix local variables with underscore and convert to lowercase. - list variables accepted by `libcurl.pc` and `curl-config` templates. - quote more string literals. Follow-up to 919394ee645be8cf92a96ff01140b4daf9cb21a5 #14450 Closes #14462
show more ...
|
#
919394ee |
| 07-Aug-2024 |
Viktor Szakats |
cmake: more small tidy-ups and fixes - tidy up two `MATCHES` expression by avoiding macros expansion and adding quotes. Then convert then to `STREQUAL` to match other places in t
cmake: more small tidy-ups and fixes - tidy up two `MATCHES` expression by avoiding macros expansion and adding quotes. Then convert then to `STREQUAL` to match other places in the code doing the same checks. - fix setting `_ALL_SOURCE` for AIX to match what autotools does. - delete stray `_ALL_SOURCE` reference from `lib/config_riscos.h` - simplify/fix two `STREQUAL ""` checks. The one in the `openssl_check_symbol_exists()` macro succeeded regardless of the value. The other could return TRUE when `CMAKE_OSX_SYSROOT` was undefined. - delete code for CMake versions (<3.7) we no longer support. - prefer `LIST(APPEND ...)` to extend `CURL_LIBS`. - use `CURL_LIBS` to add the `network` lib for Haiku. Before this patch it was done via raw C flags. I could not test this. - move `_WIN32_WINNT`-related code next to each other. It also moves detection to the top, allowing more code to use the result. - merge two `WIN32` blocks. - rename internal variables to underscore + lowercase. - unwrap a line, indent, whitespace. Closes #14450
show more ...
|
#
c2889a7b |
| 04-Aug-2024 |
Viktor Szakats |
cmake: more syntax tidy-up - quote string literals. In the hope it improves syntax-highlighting and readability. - use lowercase, underscore-prefixed local var names. As
cmake: more syntax tidy-up - quote string literals. In the hope it improves syntax-highlighting and readability. - use lowercase, underscore-prefixed local var names. As a hint for scope, to help readability. - prefer `pkg_search_module` (over `pkg_check_modules`). They are the same, but `pkg_search_module` stops searching at the first hit. - more `IN LISTS` in `foreach()`. - OtherTests.cmake: clear `CMAKE_EXTRA_INCLUDE_FILES` after use. - add `PROJECT_LABEL` for http/client and unit test targets. - sync `Find*` module comments and formatting. - drop a few local variables. - drop bogus `CARES_LIBRARIES` from comment. - unquote numeric literal. Follow-up to acbc6b703f6b0ee568d053f6f2565fbc107b5fd3 #14197 Closes #14388
show more ...
|
#
232302f8 |
| 04-Aug-2024 |
Viktor Szakats |
cmake: add Linux CI job, fix pytest with cmake - extend existing Linux workflow with CMake support. Including running pytest the first time with CMake. - cmake: generate `test
cmake: add Linux CI job, fix pytest with cmake - extend existing Linux workflow with CMake support. Including running pytest the first time with CMake. - cmake: generate `tests/config` and `tests/http/config.ini`. Required for pytest tests. Uses basic detection logic. Feel free to take it from here. Also dump config files in a CI step for debugging purposes. - cmake: build `tests/http/clients` programs. - fix portability issues with `tests/http/clients` programs. Some of them use `getopt()`, which is not supported by MSVC. Fix the rest to compile in CI (old-mingw-w64, MSVC, Windows). - GHA/linux: add CMake job matching an existing autotools one. - GHA/linux: test `-DCURL_LIBCURL_VERSIONED_SYMBOLS=ON` in the new CMake job. - reorder testdeps to build server, client tests first and then libtests and units, to catch errors in the more complex/unique sources earlier. - sort list in `tests/http/clients/Makefile.inc`. Closes #14382
show more ...
|
#
acbc6b70 |
| 12-Jul-2024 |
Viktor Szakats |
cmake: tidy-ups - tidy-up comments. - use lowercase, underscore prefixed names for internal variables. - use `IN LISTS` and `IN ITEMS` in `foreach()` loops. - rename variable nam
cmake: tidy-ups - tidy-up comments. - use lowercase, underscore prefixed names for internal variables. - use `IN LISTS` and `IN ITEMS` in `foreach()` loops. - rename variable name `OUTPUT` to a more distinctive one. - tidy-up `STREQUAL` syntax. - delete commented code. - indent/whitespace. Closes #14197
show more ...
|
#
0324d557 |
| 22-Jun-2023 |
Dan Fandrich |
CI: enable parallel testing in CI builds The test-ci target now uses 2 processes by default, but the amount of parallelism is tuned for each CI service and build environment based on
CI: enable parallel testing in CI builds The test-ci target now uses 2 processes by default, but the amount of parallelism is tuned for each CI service and build environment based on results of a number of test runs. Some CI services use super- oversubscribed build machines that can barely run the curl tests already with no parallelism without frequently failing with timing-induced failures. These continue to be run without parallelism. Other services provide two fast, unloaded cores and these run with 14 processes, which is a good default for this kind of environment. Here's a summary of the number of test processes by CI service: Appveyor - 2 (Windows MSVC), 1 (others) Azure - 2 Circle CI - 14 Cirrus - 28 (macOS), 14 (Linux), 7 (FreeBSD), 5 (macOS torture), 2 (Windows) GitHub Actions - 3 (macOS), 2 (Linux) Some of these are a bit conservative to keep timing-induced flakiness down. The net result is that the first test results should arrive only 3 minutes after a commit submission. Changes merged via separate commits: - 2a7c8b27fdd266894fe24d6d0f5d853ea843dff4 #14171 - 72341068a2d8f1b94a26add16830c725cc4054e6 - efce544418971b064d9fc8183a6caa582c54559b #14244 - c6cf411bacf97f230db160e543d0cc3bbe5b9aba Ref: #10818 Closes #11510
show more ...
|
#
f5b82653 |
| 02-Aug-2024 |
Viktor Szakats |
cmake: drop no-op `tests/data/CMakeLists.txt` It's a no-op since d162fca69a22d199c0369c5ce3d66a9531752ba2 #9333 (2022-08-18). Also revert 476499c75c83ffa3d65da398b5759a5f2fdb980
cmake: drop no-op `tests/data/CMakeLists.txt` It's a no-op since d162fca69a22d199c0369c5ce3d66a9531752ba2 #9333 (2022-08-18). Also revert 476499c75c83ffa3d65da398b5759a5f2fdb980d that is no longer necessary: move `Makefile.inc` back into `Makefile.am`. Closes #14357
show more ...
|
#
c09db8b5 |
| 08-Jul-2024 |
Viktor Szakats |
cmake: create `configurehelp.pm` like autotools does Required by tests 1119 and 1167 to run a C preprocessor. Tested OK: https://github.com/curl/curl/actions/runs/9915343826
cmake: create `configurehelp.pm` like autotools does Required by tests 1119 and 1167 to run a C preprocessor. Tested OK: https://github.com/curl/curl/actions/runs/9915343826 Besides Apple, it also supports any gcc and clang builds, and MSVC. For other platforms, it defaults to `cpp` (like autotools). Follow-up to efc2c5184d008fe2e5910fd03263e1ab0331d4e6 #14124 Cherry-picked from #14097 Closes #14129
show more ...
|
#
7c8efbfd |
| 29-Sep-2023 |
Dan Fandrich |
CI: ignore the "flaky" and "timing-dependent" test results in CMake This was already done for automake builds but CMake builds were missed. Test 1086 actually causes the test harness to
CI: ignore the "flaky" and "timing-dependent" test results in CMake This was already done for automake builds but CMake builds were missed. Test 1086 actually causes the test harness to crash with: Warning: unable to close filehandle DWRITE properly: Broken pipe at C:/projects/curl/tests/ftpserver.pl line 527 Rather than fix it now, this change leaves test 1086 entirely skipped on those builds that show this problem. Follow-up to 589dca761 Ref: #11865
show more ...
|
#
3f8fc257 |
| 09-May-2023 |
Viktor Szakats |
cmake: add support for "unity" builds Aka "jumbo" or "amalgamation" builds. It means to compile all sources per target as a single C source. This is experimental. You can enable
cmake: add support for "unity" builds Aka "jumbo" or "amalgamation" builds. It means to compile all sources per target as a single C source. This is experimental. You can enable it by passing `-DCMAKE_UNITY_BUILD=ON` to cmake. It requires CMake 3.16 or newer. It makes builds (much) faster, allows for better optimizations and tends to promote less ambiguous code. Also add a new AppVeyor CI job and convert an existing one to use "unity" mode (one MSVC, one MinGW), and enable it for one macOS CI job. Fix related issues: - add missing include guard to `easy_lock.h`. - rename static variables and functions (and a macro) with names reused across sources, or shadowed by local variables. - add an `#undef` after use. - add a missing `#undef` before use. - move internal definitions from `ftp.h` to `ftp.c`. - `curl_memory.h` fixes to make it work when included repeatedly. - stop building/linking curlx bits twice for a static-mode curl tool. These caused doubly defined symbols in unity builds. - silence missing extern declarations compiler warning for ` _CRT_glob`. - fix extern declarations for `tool_freq` and `tool_isVistaOrGreater`. - fix colliding static symbols in debug mode: `debugtime()` and `statename`. - rename `ssl_backend_data` structure to unique names for each TLS-backend, along with the `ssl_connect_data` struct member referencing them. This required adding casts for each access. - add workaround for missing `[P]UNICODE_STRING` types in certain Windows builds when compiling `lib/ldap.c`. To support "unity" builds, we had to enable `SCHANNEL_USE_BLACKLISTS` for Schannel (a Windows `schannel.h` option) _globally_. This caused an indirect inclusion of Windows `schannel.h` from `ldap.c` via `winldap.h` to have it enabled as well. This requires `[P]UNICODE_STRING` types, which is apperantly not defined automatically (as seen with both MSVS and mingw-w64). This patch includes `<subauth.h>` to fix it. Ref: https://github.com/curl/curl/runs/13987772013 Ref: https://dev.azure.com/daniel0244/curl/_build/results?buildId=15827&view=logs&jobId=2c9f582d-e278-56b6-4354-f38a4d851906&j=2c9f582d-e278-56b6-4354-f38a4d851906&t=90509b00-34fa-5a81-35d7-5ed9569d331c - tweak unity builds to compile `lib/memdebug.c` separately in memory trace builds to avoid PP confusion. - force-disable unity for test programs. - do not compile and link libcurl sources to libtests _twice_ when libcurl is built in static mode. KNOWN ISSUES: - running tests with unity builds may fail in cases. - some build configurations/env may not compile in unity mode. E.g.: https://ci.appveyor.com/project/curlorg/curl/builds/47230972/job/51wfesgnfuauwl8q#L250 Ref: https://github.com/libssh2/libssh2/issues/1034 Ref: https://cmake.org/cmake/help/latest/prop_tgt/UNITY_BUILD.html Ref: https://en.wikipedia.org/wiki/Unity_build Closes #11095
show more ...
|
#
2bc1d775 |
| 02-Jan-2023 |
Daniel Stenberg |
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - save
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - saves us from pointless churn - git keeps history for us - the year range is kept in COPYING checksrc is updated to allow non-year using copyright statements Closes #10205
show more ...
|
#
ad9bc597 |
| 17-May-2022 |
max.mehl |
copyright: make repository REUSE compliant Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the
copyright: make repository REUSE compliant Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the file `.reuse/dep5`. This commit also adds a Github workflow to check pull requests and adapts copyright.pl to the changes. Closes #8869
show more ...
|
#
9121032f |
| 29-Oct-2021 |
Marc Hoersken |
CI/runtests.pl: restore -u flag, but remove it from CI runs This makes it possible to use -u again for local testing, but removes the flag from CI config files and make targets.
CI/runtests.pl: restore -u flag, but remove it from CI runs This makes it possible to use -u again for local testing, but removes the flag from CI config files and make targets. Reviewed-by: Daniel Stenberg Partially reverts #7841 Closes #7921
show more ...
|
#
ccb466fd |
| 15-Oct-2021 |
Daniel Stenberg |
misc: update copyright years
|