7d62f0d9 | 05-Jun-2023 |
Dan Fandrich |
runtests; give each server a unique log lock file Logs are written by several servers and all of them must be finished writing before the test results can be determined. This means each
runtests; give each server a unique log lock file Logs are written by several servers and all of them must be finished writing before the test results can be determined. This means each server must have its own lock file rather than sharing a single one, which is how it was done up to now. Previously, the first server to complete a test would clear the lock before the other server was done, which caused flaky tests. Lock files are now all found in their own directory, so counting locks equals counting the files in that directory. The result is that the proxy logs are now reliably written which actually changes the expected output for two tests. Fixes #11231 Closes #11259
show more ...
|
7af151de | 07-Jun-2023 |
Dan Fandrich |
runtests: make test file directories in log/N Test files in subdirectories were not created after parallel test log directories were moved down a level due to a now-bad comparison.
runtests: make test file directories in log/N Test files in subdirectories were not created after parallel test log directories were moved down a level due to a now-bad comparison. Follow-up to 92d7dd39 Ref #11264 Closes #11267
show more ...
|
78886afb | 07-Jun-2023 |
Daniel Stenberg |
ws: make the curl_ws_meta() return pointer a const The returned info is read-only for the user. Closes #11261 |
44296dc6 | 07-Jun-2023 |
Daniel Stenberg |
RELEASE-NOTES: synced |
92d7dd39 | 07-Jun-2023 |
Daniel Stenberg |
runtests: move parallel log dirs from logN to log/N Having several hundreds of them in there gets annoying. Closes #11264 |
c6d97bce | 07-Jun-2023 |
Dan Fandrich |
test447: move the test file into %LOGDIR |
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 ...
|
e812473d | 07-Jun-2023 |
Daniel Stenberg |
examples/websocket.c: websocket example using CONNECT_ONLY Closes #11262 |
0e339b9e | 07-Jun-2023 |
Daniel Stenberg |
websocket-cb: example doing WebSocket download using callback Very basic Closes #11260 |
cd18e5c4 | 07-Jun-2023 |
Daniel Stenberg |
test/.gitignore: ignore log* |
6e4fedee | 05-Jun-2023 |
Dan Fandrich |
runtests: document the -j parallel testing option Reported-by: Daniel Stenberg Ref: #10818 Closes #11255 |
f24b4b98 | 19-May-2023 |
Dan Fandrich |
runtests: create multiple test runners when requested Parallel testing is enabled by using a nonzero value for the -j option to runtests.pl. Performant values seem to be about 7*num CPU
runtests: create multiple test runners when requested Parallel testing is enabled by using a nonzero value for the -j option to runtests.pl. Performant values seem to be about 7*num CPU cores, or 1.3*num CPU cores if Valgrind is in use. Flaky tests due to improper log locking (bug #11231) are exacerbated while parallel testing, so it is not enabled by default yet. Fixes #10818 Closes #11246
show more ...
|
d454af47 | 23-May-2023 |
Dan Fandrich |
runtests: handle repeating tests in multiprocess mode Such as what happens with the --repeat option. Some functions are changed to pass the runner ID instead of relying on the non-uniqu
runtests: handle repeating tests in multiprocess mode Such as what happens with the --repeat option. Some functions are changed to pass the runner ID instead of relying on the non-unique test number. Ref: #10818
show more ...
|
51c22af8 | 19-May-2023 |
Dan Fandrich |
runtests: buffer logmsg while running singletest() This allows all messages relating to a single test case to be displayed together at the end of the test. Ref: #10818 |
296baf45 | 19-May-2023 |
Dan Fandrich |
runtests: call initserverconfig() in the runner This must be done so variables pick up the runner's unique $LOGDIR. Ref: #10818 |
78d8bc4c | 19-May-2023 |
Dan Fandrich |
runtests: use a per-runner random seed Each runner needs a unique random seed to reduce the chance of port number collisions. The new scheme uses a consistent per-runner source of ra
runtests: use a per-runner random seed Each runner needs a unique random seed to reduce the chance of port number collisions. The new scheme uses a consistent per-runner source of randomness which results in deterministic behaviour, as it did before. Ref: #10818
show more ...
|
4317c554 | 18-May-2023 |
Dan Fandrich |
runtests: complete main test loop refactor for multiple runners The main test loop is now able to handle multiple runners, or no additional runner processes at all. At most one process i
runtests: complete main test loop refactor for multiple runners The main test loop is now able to handle multiple runners, or no additional runner processes at all. At most one process is still created, however. Ref: #10818
show more ...
|
acc0a928 | 16-May-2023 |
Dan Fandrich |
runtests: prepare main test loop for multiple runners Some variables are expanded to arrays and hashes so that multiple runners can be used for running tests. Ref: #10818 |
73022b52 | 04-Jun-2023 |
Stefan Eissing |
bufq: make write/pass methods more robust - related to #11242 where curl enters busy loop when sending http2 data to the server Closes #11247 |
b832cab1 | 05-Jun-2023 |
Boris Verkhovskiy |
tool_getparam: fix comment Closes #11253 |
0a75964d | 16-Mar-2023 |
Raito Bezarius |
haproxy: add --haproxy-clientip flag to spoof client IPs CURLOPT_HAPROXY_CLIENT_IP in the library Closes #10779 |
9ad23c38 | 03-Jun-2023 |
Daniel Stenberg |
curl: add --ca-native and --proxy-ca-native These are two boolean options to ask curl to use the native OS's CA store when verifying TLS servers. For peers and for proxies respective
curl: add --ca-native and --proxy-ca-native These are two boolean options to ask curl to use the native OS's CA store when verifying TLS servers. For peers and for proxies respectively. They currently only have an effect for curl on Windows when built to use OpenSSL for TLS. Closes #11049
show more ...
|
c78a185d | 19-May-2023 |
Viktor Szakats |
build: drop unused/redundant `HAVE_WINLDAP_H` Sources did not use it. Autotools used it when checking for the `winldap` library, which is redundant. With CMake, detection was br
build: drop unused/redundant `HAVE_WINLDAP_H` Sources did not use it. Autotools used it when checking for the `winldap` library, which is redundant. With CMake, detection was broken: ``` Run Build Command(s):/usr/local/Cellar/cmake/3.26.3/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_2d8fe/fast && /Library/Developer/CommandLineTools/usr/bin/make -f CMakeFiles/cmTC_2d8fe.dir/build.make CMakeFiles/cmTC_2d8fe.dir/build Building C object CMakeFiles/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj /usr/local/opt/llvm/bin/clang --target=x86_64-w64-mingw32 --sysroot=/usr/local/opt/mingw-w64/toolchain-x86_64 -D_WINSOCKAPI_="" -I/my/quictls/x64-ucrt/usr/include -I/my/zlib/x64-ucrt/usr/include -I/my/brotli/x64-ucrt/usr/include -Wno-unused-command-line-argument -D_UCRT -DCURL_HIDDEN_SYMBOLS -DHAVE_SSL_SET0_WBIO -DHAS_ALPN -DNGHTTP2_STATICLIB -DNGHTTP3_STATICLIB -DNGTCP2_STATICLIB -DUSE_MANUAL=1 -fuse-ld=lld -Wl,-s -static-libgcc -lucrt -Wextra -Wall -pedantic -Wbad-function-cast -Wconversion -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-long-long -Wno-multichar -Wpointer-arith -Wshadow -Wsign-compare -Wundef -Wunused -Wwrite-strings -Wcast-align -Wdeclaration-after-statement -Wempty-body -Wendif-labels -Wfloat-equal -Wignored-qualifiers -Wno-format-nonliteral -Wno-sign-conversion -Wno-system-headers -Wstrict-prototypes -Wtype-limits -Wvla -Wshift-sign-overflow -Wshorten-64-to-32 -Wdouble-promotion -Wenum-conversion -Wunused-const-variable -Wcomma -Wmissing-variable-declarations -Wassign-enum -Wextra-semi-stmt -MD -MT CMakeFiles/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj -MF CMakeFiles/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj.d -o CMakeFiles/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj -c /my/curl/bld-cmake-llvm-x64-shared/CMakeFiles/CMakeScratch/TryCompile-3JP6dR/HAVE_WINLDAP_H.c In file included from /my/curl/bld-cmake-llvm-x64-shared/CMakeFiles/CMakeScratch/TryCompile-3JP6dR/HAVE_WINLDAP_H.c:2: In file included from /usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mingw32/include/winldap.h:17: In file included from /usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mingw32/include/schnlsp.h:9: In file included from /usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mingw32/include/schannel.h:10: /usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mingw32/include/wincrypt.h:5041:254: error: unknown type name 'PSYSTEMTIME' WINIMPM PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate (HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, PCERT_NAME_BLOB pSubjectIssuerBlob, DWORD dwFlags, PCRYPT_KEY_PROV_INFO pKeyProvInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, PSYSTEMTIME pStartTime, PSYSTEMTIME pEndTime, PCERT_EXTENSIONS pExtensions); ^ /usr/local/opt/mingw-w64/toolchain-x86_64/x86_64-w64-mingw32/include/wincrypt.h:5041:278: error: unknown type name 'PSYSTEMTIME' WINIMPM PCCERT_CONTEXT WINAPI CertCreateSelfSignCertificate (HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProvOrNCryptKey, PCERT_NAME_BLOB pSubjectIssuerBlob, DWORD dwFlags, PCRYPT_KEY_PROV_INFO pKeyProvInfo, PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, PSYSTEMTIME pStartTime, PSYSTEMTIME pEndTime, PCERT_EXTENSIONS pExtensions); ^ 2 errors generated. make[1]: *** [CMakeFiles/cmTC_2d8fe.dir/HAVE_WINLDAP_H.c.obj] Error 1 make: *** [cmTC_2d8fe/fast] Error 2 exitCode: 2 ``` Cherry-picked from #11095 88e4a21ff70ccef391cf99c8165281ff81374503 Reviewed-by: Daniel Stenberg Closes #11245
show more ...
|
ba669d07 | 05-Jun-2023 |
Daniel Stenberg |
urlapi: scheme starts with alpha Add multiple tests to lib1560 to verify Fixes #11249 Reported-by: ad0p on github Closes #11250 |
6854b6c5 | 03-Jun-2023 |
Daniel Stenberg |
RELEASE-NOTES: synced |