#
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 ...
|
#
bc2f72b9 |
| 12-Sep-2024 |
Viktor Szakats |
tidy-up: rename `CURL_WINDOWS_APP` to `CURL_WINDOWS_UWP` Rename internal macro to make its purpose more obvious. After this patch `grep -i uwp` shows all the code related to UWP.
tidy-up: rename `CURL_WINDOWS_APP` to `CURL_WINDOWS_UWP` Rename internal macro to make its purpose more obvious. After this patch `grep -i uwp` shows all the code related to UWP. Ref: https://curl.se/mail/lib-2024-09/0014.html Closes #14881
show more ...
|
#
fbf5d507 |
| 18-Sep-2024 |
Daniel Stenberg |
lib/src: white space edits to comply better with code style ... as checksrc now finds and complains about these. Closes #14921
|
#
888662b7 |
| 19-Sep-2024 |
Viktor Szakats |
tests: delete duplicate macro check Follow-up to e9a7d4a1c8377dbcf9a2d94365f60e3e5dff48f8 #12376 Closes #14963
|
#
d620ec67 |
| 27-Aug-2024 |
Viktor Szakats |
CI: add test timeouts, more cmake build tests, fix VS2010 C warning - GHA/macos: set timeout for test runs. Double the value for autotools to fit torture tests. - GHA/cygwin: reduc
CI: add test timeouts, more cmake build tests, fix VS2010 C warning - GHA/macos: set timeout for test runs. Double the value for autotools to fit torture tests. - GHA/cygwin: reduce test run timeout for autotools. - GHA/cygwin: enable building tests with cmake. - GHA/windows: enable building tests with MSYS cmake. - GHA/windows: enable building tests with MSVC UWP. - appveyor: enable building tests with VS2008 x86 and VS2010 x64. - tests: add workaround compiler warnings when building with VS2010: ``` tests\server\util.c(482): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size tests\server\util.c(486): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size tests\server\util.c(490): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size tests\server\util.c(720): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size tests\server\util.c(726): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size tests\server\util.c(732): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size tests\server\util.c(781): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size tests\server\util.c(785): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size tests\server\util.c(789): warning C4306: 'type cast' : conversion from 'int' to 'void (__cdecl *)(int)' of greater size ``` Ref: https://ci.appveyor.com/project/curlorg/curl/builds/50485633/job/4ujlwxod3cexmn2q#L1535 With this, tests are built in all GHA cygwin/windows jobs. Timeouts avoid long runs with runaway issues, example: https://github.com/curl/curl/actions/runs/10575522173 Closes #14700
show more ...
|
#
c0450488 |
| 21-Aug-2024 |
Viktor Szakats |
src: fix potential macro confusion in cmake unity builds Sources used `lib/curlx.h` with both `ENABLE_CURLX_PRINTF` set and unset before including it. In a cmake "unity" batch w
src: fix potential macro confusion in cmake unity builds Sources used `lib/curlx.h` with both `ENABLE_CURLX_PRINTF` set and unset before including it. In a cmake "unity" batch where the first included source had it unset, the next sources did not get the macros requested with `ENABLE_CURLX_PRINTF` because `lib/curl.x` had already been included without them. Fix it by by making the macros enabled permanently and globally for internal sources, and dropping `ENABLE_CURLX_PRINTF`. This came up while testing unity builds with smaller batches. The full, default unity build where all `src` is bundled up in a single unit, was not affected. Fixes: ``` $ cmake -B build -DCMAKE_UNITY_BUILD=ON -DCMAKE_UNITY_BUILD_BATCH_SIZE=15 $ make -C build ... curl/src/tool_getparam.c: In function ‘getparameter’: curl/src/tool_getparam.c:2409:11: error: implicit declaration of function ‘msnprintf’; did you mean ‘vsnprintf’? [-Wimplicit-function-declaration] 2409 | msnprintf(buffer, sizeof(buffer), "%" CURL_FORMAT_CURL_OFF_T "-", | ^~~~~~~~~ | vsnprintf curl/src/tool_getparam.c:2409:11: warning: nested extern declaration of ‘msnprintf’ [-Wnested-externs] [...] ``` Reported-by: Daniel Stenberg Bug: https://github.com/curl/curl/pull/14626#issuecomment-2301663491 Closes #14632
show more ...
|
#
f81f351b |
| 02-Aug-2024 |
Viktor Szakats |
tidy-up: OS names Use these words and casing more consistently across text, comments and one curl tool output: AIX, ALPN, ANSI, BSD, Cygwin, Darwin, FreeBSD, GitHub, HP-UX, Linux,
tidy-up: OS names Use these words and casing more consistently across text, comments and one curl tool output: AIX, ALPN, ANSI, BSD, Cygwin, Darwin, FreeBSD, GitHub, HP-UX, Linux, macOS, MS-DOS, MSYS, MinGW, NTLM, POSIX, Solaris, UNIX, Unix, Unicode, WINE, WebDAV, Win32, winbind, WinIDN, Windows, Windows CE, Winsock. Mostly OS names and a few more. Also a couple of other minor text fixups. Closes #14360
show more ...
|
#
998b17ea |
| 03-Jun-2024 |
Viktor Szakats |
windows: fix UWP builds, add GHA job Add new job to test building for UWP (aka `CURL_WINDOWS_APP`). Fix fallouts when building for UWP: - rand: do not use `BCryptGenRandom()`.
windows: fix UWP builds, add GHA job Add new job to test building for UWP (aka `CURL_WINDOWS_APP`). Fix fallouts when building for UWP: - rand: do not use `BCryptGenRandom()`. - cmake: disable using win32 LDAP. - cmake: disable telnet. - version_win32: fix code before declaration. - schannel: disable `HAS_MANUAL_VERIFY_API`. - schannel: disable `SSLSUPP_PINNEDPUBKEY` and make `schannel_checksum()` a stub. Ref: e178fbd40a896f2098278ae61e1166c88e7b31d0 #1429 - schannel: make `cert_get_name_string()` a failing stub. - system_win32: make `Curl_win32_impersonating()` a failing stub. - system_win32: try to fix `Curl_win32_init()` (untested). - threads: fix to use `CreateThread()`. - src: disable searching `PATH` for the CA bundle. - src: disable bold text support and capability detection. - src: disable `getfiletime()`/`setfiletime()`. - tests: make `win32_load_system_library()` a failing stub. - tests/server/util: make it compile. - tests/server/sockfilt: make it compile. - tests/lib3026: fix to use `CreateThread()`. See individual commits for build error details. Some of these fixes may have better solutions, and some may not work as expected. The goal of this patch is to make curl build for UWP. Closes #13870
show more ...
|
#
75f182ff |
| 04-Jun-2024 |
Viktor Szakats |
tests: delete redundant `!MSDOS` guard This fix was supposed to be committed earlier, but ended up missing from the final commit. Follow-up to e9a7d4a1c8377dbcf9a2d94365f60e3e5d
tests: delete redundant `!MSDOS` guard This fix was supposed to be committed earlier, but ended up missing from the final commit. Follow-up to e9a7d4a1c8377dbcf9a2d94365f60e3e5dff48f8 #12376 Closes #13878
show more ...
|
#
0c49ea4f |
| 12-May-2024 |
Viktor Szakats |
tests: tidy up types in server code Cherry-picked from #13489 Closes #13610
|
#
2dbe75bd |
| 09-Dec-2023 |
Viktor Szakats |
build: fix some `-Wsign-conversion`/`-Warith-conversion` warnings - enable `-Wsign-conversion` warnings, but also setting them to not raise errors. - fix `-Warith-conversion` warni
build: fix some `-Wsign-conversion`/`-Warith-conversion` warnings - enable `-Wsign-conversion` warnings, but also setting them to not raise errors. - fix `-Warith-conversion` warnings seen in CI. These are triggered by `-Wsign-converion` and causing errors unless explicitly silenced. It makes more sense to fix them, there just a few of them. - fix some `-Wsign-conversion` warnings. - hide `-Wsign-conversion` warnings with a `#pragma`. - add macro `CURL_WARN_SIGN_CONVERSION` to unhide them on a per-build basis. - update a CI job to unhide them with the above macro: https://github.com/curl/curl/actions/workflows/linux.yml -> OpenSSL -O3 Closes #12492
show more ...
|
#
3829759b |
| 08-Dec-2023 |
Viktor Szakats |
build: enable missing OpenSSF-recommended warnings, with fixes https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.html as of 2023-11-29 [1]
build: enable missing OpenSSF-recommended warnings, with fixes https://best.openssf.org/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C++.html as of 2023-11-29 [1]. Enable new recommended warnings (except `-Wsign-conversion`): - enable `-Wformat=2` for clang (in both cmake and autotools). - add `CURL_PRINTF()` internal attribute and mark functions accepting printf arguments with it. This is a copy of existing `CURL_TEMP_PRINTF()` but using `__printf__` to make it compatible with redefinting the `printf` symbol: https://gcc.gnu.org/onlinedocs/gcc-3.0.4/gcc_5.html#SEC94 - fix `CURL_PRINTF()` and existing `CURL_TEMP_PRINTF()` for mingw-w64 and enable it on this platform. - enable `-Wimplicit-fallthrough`. - enable `-Wtrampolines`. - add `-Wsign-conversion` commented with a FIXME. - cmake: enable `-pedantic-errors` the way we do it with autotools. Follow-up to d5c0351055d5709da8f3e16c91348092fdb481aa #2747 - lib/curl_trc.h: use `CURL_FORMAT()`, this also fixes it to enable format checks. Previously it was always disabled due to the internal `printf` macro. Fix them: - fix bug where an `set_ipv6_v6only()` call was missed in builds with `--disable-verbose` / `CURL_DISABLE_VERBOSE_STRINGS=ON`. - add internal `FALLTHROUGH()` macro. - replace obsolete fall-through comments with `FALLTHROUGH()`. - fix fallthrough markups: Delete redundant ones (showing up as warnings in most cases). Add missing ones. Fix indentation. - silence `-Wformat-nonliteral` warnings with llvm/clang. - fix one `-Wformat-nonliteral` warning. - fix new `-Wformat` and `-Wformat-security` warnings. - fix `CURL_FORMAT_SOCKET_T` value for mingw-w64. Also move its definition to `lib/curl_setup.h` allowing use in `tests/server`. - lib: fix two wrongly passed string arguments in log outputs. Co-authored-by: Jay Satiro - fix new `-Wformat` warnings on mingw-w64. [1] https://github.com/ossf/wg-best-practices-os-developers/blob/56c0fde3895bfc55c8a973ef49a2572c507b2ae1/docs/Compiler-Hardening-Guides/Compiler-Options-Hardening-Guide-for-C-and-C%2B%2B.md Closes #12489
show more ...
|
#
246e0d80 |
| 12-Dec-2023 |
Viktor Szakats |
tests/server: delete workaround for old-mingw mingw-w64 1.0 comes with w32api v3.12, thus doesn't need this. Follow-up to 38029101e2d78ba125732b3bab6ec267b80a0e72 #11625 Re
tests/server: delete workaround for old-mingw mingw-w64 1.0 comes with w32api v3.12, thus doesn't need this. Follow-up to 38029101e2d78ba125732b3bab6ec267b80a0e72 #11625 Reviewed-by: Jay Satiro Closes #12510
show more ...
|
#
e9a7d4a1 |
| 21-Nov-2023 |
Viktor Szakats |
windows: use built-in `_WIN32` macro to detect Windows Windows compilers define `_WIN32` automatically. Windows SDK headers or build env defines `WIN32`, or we have to take care of it. T
windows: use built-in `_WIN32` macro to detect Windows Windows compilers define `_WIN32` automatically. Windows SDK headers or build env defines `WIN32`, or we have to take care of it. The agreement seems to be that `_WIN32` is the preferred practice here. Make the source code rely on that to detect we're building for Windows. Public `curl.h` was using `WIN32`, `__WIN32__` and `CURL_WIN32` for Windows detection, next to the official `_WIN32`. After this patch it only uses `_WIN32` for this. Also, make it stop defining `CURL_WIN32`. There is a slight chance these break compatibility with Windows compilers that fail to define `_WIN32`. I'm not aware of any obsolete or modern compiler affected, but in case there is one, one possible solution is to define this macro manually. grepping for `WIN32` remains useful to discover Windows-specific code. Also: - extend `checksrc` to ensure we're not using `WIN32` anymore. - apply minor formatting here and there. - delete unnecessary checks for `!MSDOS` when `_WIN32` is present. Co-authored-by: Jay Satiro Reviewed-by: Daniel Stenberg Closes #12376
show more ...
|
#
96c29900 |
| 25-Sep-2023 |
Viktor Szakats |
build: delete checks for C89 standard headers Delete checks and guards for standard C89 headers and assume these are available: `stdio.h`, `string.h`, `time.h`, `setjmp.h`, `stdlib.h`,
build: delete checks for C89 standard headers Delete checks and guards for standard C89 headers and assume these are available: `stdio.h`, `string.h`, `time.h`, `setjmp.h`, `stdlib.h`, `stddef.h`, `signal.h`. Some of these we already used unconditionally, some others we only used for feature checks. Follow-up to 9c7165e96a3a9a2d0b7059c87c699b5ca8cdae93 #11918 (for `stdio.h` in CMake) Closes #11940
show more ...
|
#
38029101 |
| 08-Aug-2023 |
Viktor Szakats |
mingw: delete support for legacy mingw.org toolchain Drop support for "old" / "legacy" / "classic" / "v1" / "mingw32" MinGW: https://en.wikipedia.org/wiki/MinGW, https://osdn.net/proje
mingw: delete support for legacy mingw.org toolchain Drop support for "old" / "legacy" / "classic" / "v1" / "mingw32" MinGW: https://en.wikipedia.org/wiki/MinGW, https://osdn.net/projects/mingw/ Its homepage used to be http://mingw.org/ [no HTTPS], and broken now. It supported the x86 CPU only and used a old Windows API header and implib set, often causing issues. It also misses most modern Windows features, offering old versions of both binutils and gcc (no llvm/clang support). It was last updated 2 years ago. curl now relies on toolchains based on the mingw-w64 project: https://www.mingw-w64.org/ https://sourceforge.net/projects/mingw-w64/ https://www.msys2.org/ https://github.com/msys2/msys2 https://github.com/mstorsjo/llvm-mingw (Also available via Linux and macOS package managers.) Closes #11625
show more ...
|
#
b65086a8 |
| 07-Jun-2023 |
Dan Fandrich |
tests: fix error messages & handling around sockets The wrong error code was checked on Windows on UNIX socket failures, which could have caused all UNIX sockets to be reported as having
tests: fix error messages & handling around sockets The wrong error code was checked on Windows on UNIX socket failures, which could have caused all UNIX sockets to be reported as having errored and the tests therefore skipped. Also, a useless error message was displayed on socket errors in many test servers on Windows because strerror() doesn't work on WinSock error codes; perror() is overridden there to work on all errors and is used instead. Ref #11258 Closes #11265
show more ...
|
#
0bdb95ec |
| 29-Mar-2023 |
Dan Fandrich |
tests: fix fake_ntlm to run with a dynamic log directory Ref: #10818
|
#
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 ...
|
#
52cc4a85 |
| 30-Oct-2022 |
Daniel Stenberg |
style: use space after comment start and before comment end /* like this */ /*not this*/ checksrc is updated accordingly Closes #9828
|
#
02186a66 |
| 30-Oct-2022 |
Daniel Stenberg |
tests/server: make use of strcasecompare from lib/ ... instead of having a second private implementation. Idea triggered by #9830 Closes #9831
|
#
81094cb4 |
| 11-Oct-2022 |
Marc Hoersken |
tests: avoid CreateThread if _beginthreadex is available CreateThread is not threadsafe if mixed with CRT calls. _beginthreadex on the other hand can be mixed with CRT. Reviewed
tests: avoid CreateThread if _beginthreadex is available CreateThread is not threadsafe if mixed with CRT calls. _beginthreadex on the other hand can be mixed with CRT. Reviewed-by: Marcel Raad Closes #9705
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 ...
|
#
80eb71a3 |
| 17-Apr-2022 |
Balakrishnan Balasubramanian <3070606-balki@users.noreply.gitlab.com> |
tests: refactor server/socksd.c to support --unix-socket Closes #8687
|
#
8b42d7b9 |
| 26-Feb-2022 |
Marc Hoersken |
tool and tests: force flush of all buffers at end of program On Windows data can be lost in buffers in case of abnormal program termination, especially in process chains as seen due to f
tool and tests: force flush of all buffers at end of program On Windows data can be lost in buffers in case of abnormal program termination, especially in process chains as seen due to flaky tests. Therefore flushing all buffers manually should avoid this data loss. In the curl tool we play the safe game by only flushing write buffers, but in the testsuite where we manage all buffers, we flush everything. This should drastically reduce Windows CI and testsuite flakiness. Reviewed-by: Daniel Stenberg Supersedes #7833 and #6064 Closes #8516
show more ...
|