better test

master
leitner 4 years ago
parent 45f99bbd0a
commit 9889bf3d70

8
t.c

@ -121,13 +121,15 @@ int main(int argc,char* argv[]) {
io_wantread(pfd[1]); io_wantread(pfd[1]);
size_t totalread = 0; size_t totalread = 0;
size_t totalwrite = 0; size_t totalwrite = 0;
for (; iob_bytesleft(b) ;) { for (;;) {
io_wait(); io_wait();
int fd; int fd;
while ((fd = io_canwrite()) != -1) { while ((fd = io_canwrite()) != -1) {
// printf("write event on fd %d\n", fd); // printf("write event on fd %d\n", fd);
long r = iob_send(pfd[0], b); long r = iob_send(pfd[0], b);
if (r > 0) totalwrite += r; if (r > 0) totalwrite += r;
if (r == 0)
io_dontwantwrite(pfd[0]);
printf("r = %d (sum written %zu, total back size %zu)\n", r, totalwrite, total); printf("r = %d (sum written %zu, total back size %zu)\n", r, totalwrite, total);
} }
while ((fd = io_canread()) != -1) { while ((fd = io_canread()) != -1) {
@ -135,6 +137,10 @@ int main(int argc,char* argv[]) {
ssize_t r = read(fd, buf, sizeof buf); ssize_t r = read(fd, buf, sizeof buf);
if (r > 0) totalread += r; if (r > 0) totalread += r;
if (r < sizeof buf) io_eagain(fd); if (r < sizeof buf) io_eagain(fd);
if (r == 0 || totalread == total) {
printf("read %zu bytes total\n", totalread);
return totalread == total;
}
} }
} }

Loading…
Cancel
Save