1 #include <ccan/read_write_all/read_write_all.h>
2 #include <ccan/tap/tap.h>
13 static ssize_t test_write(int fd, const void *buf, size_t count);
14 #define write test_write
15 #include <ccan/read_write_all/read_write_all.c>
18 static ssize_t write_return;
20 static ssize_t test_write(int fd, const void *buf, size_t count)
22 if (write_return == 0) {
27 if (write_return < 0) {
28 errno = -write_return;
29 /* Don't return EINTR more than once! */
35 if (write_return < count)
42 int main(int argc, char *argv[])
46 buffer = malloc(BUFSZ);
49 write_return = -ENOSPC;
50 ok1(!write_all(100, buffer, BUFSZ));
53 write_return = -EINTR;
54 ok1(write_all(100, buffer, BUFSZ));
59 ok1(write_all(100, buffer, BUFSZ));
63 ok1(write_all(100, buffer, BUFSZ));