diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index a3aeb6bd68..83c61d37b4 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -350,9 +350,6 @@ jobs: if [ '${{ matrix.sys }}' != 'msys' ]; then TFLAGS+=' ~612' # SFTP fi - if [ '${{ matrix.sys }}' = 'clang64' ]; then - TFLAGS+=' ~2302 ~2303 ~2307' # permafail with clang (and also MSVC) (but works with mingw64 and ucrt64) - fi if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")" fi @@ -923,7 +920,7 @@ jobs: timeout-minutes: 10 run: | export CURL_DIRSUFFIX='${{ matrix.type }}' - export TFLAGS='-j8 ${{ matrix.tflags }} ~2302 ~2303 ~2307' + export TFLAGS='-j8 ${{ matrix.tflags }}' TFLAGS+=' ~2310' # flaky PATH="$PWD/bld/lib/${{ matrix.type }}:$PATH:/c/Program Files (x86)/stunnel/bin:/c/Program Files/OpenSSH-Win64" PATH="/c/msys64/usr/bin:$PATH" diff --git a/tests/libtest/lib2302.c b/tests/libtest/lib2302.c index 415ab9ff1f..ccf8dfb587 100644 --- a/tests/libtest/lib2302.c +++ b/tests/libtest/lib2302.c @@ -28,13 +28,15 @@ struct ws_data { CURL *easy; - char buf[1024*1024]; + char *buf; size_t blen; size_t nwrites; int has_meta; int meta_flags; }; +#define LIB2302_BUFSIZE (1024 * 1024) + static void flush_data(struct ws_data *wd) { size_t i; @@ -66,7 +68,7 @@ static size_t add_data(struct ws_data *wd, const char *buf, size_t blen, wd->meta_flags = meta ? meta->flags : 0; } - if(wd->blen + blen > sizeof(wd->buf)) { + if(wd->blen + blen > LIB2302_BUFSIZE) { return 0; } memcpy(wd->buf + wd->blen, buf, blen); @@ -96,13 +98,16 @@ CURLcode test(char *URL) CURL *curl; CURLcode res = CURLE_OK; struct ws_data ws_data; + memset(&ws_data, 0, sizeof(ws_data)); + ws_data.buf = (char *)calloc(LIB2302_BUFSIZE, 1); + if(!ws_data.buf) + return res; global_init(CURL_GLOBAL_ALL); curl = curl_easy_init(); if(curl) { - memset(&ws_data, 0, sizeof(ws_data)); ws_data.easy = curl; curl_easy_setopt(curl, CURLOPT_URL, URL); @@ -118,6 +123,7 @@ CURLcode test(char *URL) flush_data(&ws_data); } curl_global_cleanup(); + free(ws_data.buf); return res; }