emulate send() and sendto() random fail too.
This commit is contained in:
parent
10145efdd3
commit
d2169f9b2d
|
@ -88,9 +88,16 @@ extern "C" {
|
||||||
|
|
||||||
#ifdef TAOS_RANDOM_NETWORK_FAIL
|
#ifdef TAOS_RANDOM_NETWORK_FAIL
|
||||||
|
|
||||||
|
ssize_t taos_send_random_fail(int sockfd, const void *buf, size_t len, int flags);
|
||||||
|
|
||||||
|
ssize_t taos_sendto_random_fail(int sockfd, const void *buf, size_t len, int flags,
|
||||||
|
const struct sockaddr *dest_addr, socklen_t addrlen);
|
||||||
ssize_t taos_read_random_fail(int fd, void *buf, size_t count);
|
ssize_t taos_read_random_fail(int fd, void *buf, size_t count);
|
||||||
ssize_t taos_write_random_fail(int fd, const void *buf, size_t count);
|
ssize_t taos_write_random_fail(int fd, const void *buf, size_t count);
|
||||||
|
|
||||||
|
#define send(sockfd, buf, len, flags) taos_send_random_fail(sockfd, buf, len, flags)
|
||||||
|
#define sendto(sockfd, buf, len, flags, dest_addr, addrlen) \
|
||||||
|
taos_sendto_random_fail(sockfd, buf, len, flags, dest_addr, addrlen)
|
||||||
#define taosWriteSocket(fd, buf, len) taos_write_random_fail(fd, buf, len)
|
#define taosWriteSocket(fd, buf, len) taos_write_random_fail(fd, buf, len)
|
||||||
#define taosReadSocket(fd, buf, len) taos_read_random_fail(fd, buf, len)
|
#define taosReadSocket(fd, buf, len) taos_read_random_fail(fd, buf, len)
|
||||||
|
|
||||||
|
|
|
@ -272,7 +272,28 @@ int tSystem(const char * cmd)
|
||||||
|
|
||||||
#ifdef TAOS_RANDOM_NETWORK_FAIL
|
#ifdef TAOS_RANDOM_NETWORK_FAIL
|
||||||
|
|
||||||
#define RANDOM_NETWORK_FAIL_FACTOR 5
|
#define RANDOM_NETWORK_FAIL_FACTOR 20
|
||||||
|
|
||||||
|
ssize_t taos_send_random_fail(int sockfd, const void *buf, size_t len, int flags)
|
||||||
|
{
|
||||||
|
if (rand() % RANDOM_NETWORK_FAIL_FACTOR == 0) {
|
||||||
|
errno = ECONNRESET;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return send(sockfd, buf, len, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
ssize_t taos_sendto_random_fail(int sockfd, const void *buf, size_t len, int flags,
|
||||||
|
const struct sockaddr *dest_addr, socklen_t addrlen)
|
||||||
|
{
|
||||||
|
if (rand() % RANDOM_NETWORK_FAIL_FACTOR == 0) {
|
||||||
|
errno = ECONNRESET;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return sendto(sockfd, buf, len, flags, dest_addr, addrlen);
|
||||||
|
}
|
||||||
|
|
||||||
ssize_t taos_read_random_fail(int fd, void *buf, size_t count)
|
ssize_t taos_read_random_fail(int fd, void *buf, size_t count)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue