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
));