X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=test%2Fstream.c;h=6176b9e456e4e3babb1754bb0b3b3e6abcdeb9c8;hb=bc2e55e940e45748a49f1a7eb44b156917fca469;hp=378809cc509865e234179df6364342387786ddda;hpb=976c4e1591e60ba89e7dcc32b4a8106e7d4156e5;p=meshlink diff --git a/test/stream.c b/test/stream.c index 378809cc..6176b9e4 100644 --- a/test/stream.c +++ b/test/stream.c @@ -1,4 +1,5 @@ #define _GNU_SOURCE +#define _POSIX_C_SOURCE 200809L #include #include @@ -73,6 +74,7 @@ int main(int argc, char *argv[]) { char *p = buf; memcpy(buf, &now, sizeof(now)); + clock_gettime(CLOCK_REALTIME, &now); for(uint64_t *q = (uint64_t *)(buf + sizeof(now)); (char *)q < buf + framesize; q++) { *q = counter++; @@ -82,23 +84,22 @@ int main(int argc, char *argv[]) { ssize_t sent = write(1, p, tosend); if(sent <= 0) { - err(1, "write(1, %p, %zu)", p, tosend); + err(1, "write(1, %p, %zu)", (void *)p, tosend); } tosend -= sent; p += sent; } - next = now; - next.tv_nsec += interval; + next.tv_sec = 0; + next.tv_nsec = interval; while(next.tv_nsec >= 1000000000) { next.tv_nsec -= 1000000000; next.tv_sec++; } - clock_nanosleep(CLOCK_REALTIME, TIMER_ABSTIME, &next, NULL); - now = next; + nanosleep(&next, NULL); total -= framesize; } else { struct timespec *ts = (struct timespec *)buf; @@ -109,7 +110,7 @@ int main(int argc, char *argv[]) { ssize_t result = read(0, p, toread); if(result <= 0) { - err(1, "read(1, %p, %zu)", p, toread); + err(1, "read(1, %p, %zu)", (void *)p, toread); } toread -= result; @@ -124,7 +125,7 @@ int main(int argc, char *argv[]) { ssize_t result = read(0, p, toread); if(result <= 0) { - err(1, "read(1, %p, %zu)", p, toread); + err(1, "read(1, %p, %zu)", (void *)p, toread); } toread -= result; @@ -137,7 +138,7 @@ int main(int argc, char *argv[]) { if(*q != counter++) { uint64_t offset = (counter - 1) * 8; offset += ((counter * 8) / (framesize - sizeof(now))) * sizeof(now); - err(1, "verification failed at offset %lu", offset); + err(1, "verification failed at offset %lu", (unsigned long)offset); } }