mirror of
https://github.com/curl/curl.git
synced 2026-08-25 06:23:30 +03:00
tests: testrunner reliability improvements
- perform torture tests with '-j2' for shorter runtime - when waiting on test results overly long, log the tests waited for and eventually log the test log directories for easier analysis what is wrong in CI jobs. - sockfilt.c: treat the windows errno 109 (ERROR_BROKEN_PIPE) as a socket closed by the client and do not exit. - when verifying https server, do not in addition check the http server behind it also - when tearing down the stunnel of a non-responsive https server, tear down the http server with it Closes #14960
This commit is contained in:
parent
5a263710f6
commit
8ad3597d2d
4 changed files with 46 additions and 6 deletions
|
|
@ -218,6 +218,10 @@ static ssize_t write_wincon(int fd, const void *buf, size_t count)
|
|||
#define write(a,b,c) write_wincon(a,b,c)
|
||||
#endif
|
||||
|
||||
/* On Windows, we sometimes get this for a broken pipe, seemingly
|
||||
* when the client just closed stdin? */
|
||||
#define CURL_WIN32_EPIPE 109
|
||||
|
||||
/*
|
||||
* fullread is a wrapper around the read() function. This will repeat the call
|
||||
* to read() until it actually has read the complete number of bytes indicated
|
||||
|
|
@ -243,6 +247,11 @@ static ssize_t fullread(int filedes, void *buffer, size_t nbytes)
|
|||
error = errno;
|
||||
if((error == EINTR) || (error == EAGAIN))
|
||||
continue;
|
||||
if(error == CURL_WIN32_EPIPE) {
|
||||
logmsg("got Windows ERROR_BROKEN_PIPE on fd=%d, treating as close",
|
||||
filedes);
|
||||
return 0;
|
||||
}
|
||||
logmsg("reading from file descriptor: %d,", filedes);
|
||||
logmsg("unrecoverable read() failure: (%d) %s",
|
||||
error, strerror(error));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue