PERFORCE change 37557 for review
Marcel Moolenaar
marcel at FreeBSD.org
Fri Sep 5 01:00:05 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=37557
Change 37557 by marcel at marcel_nfs on 2003/09/05 00:59:42
Send a pattern that allows us to detect lost data or
(god forbid) spontaneous data.
Affected files ...
.. //depot/projects/uart/dev/uart/uarttest.c#3 edit
Differences ...
==== //depot/projects/uart/dev/uart/uarttest.c#3 (text+ko) ====
@@ -48,7 +48,7 @@
int fd, how;
-char buffer[16384*4];
+u_char buffer[16384*4];
static int
getsig(const char *dev, size_t count, int oldsig)
@@ -85,6 +85,9 @@
ssize_t count, wc;
int sig;
+ for (count = 0; count < sizeof(buffer); count++)
+ buffer[count] = count;
+
count = 0;
errno = 0;
sig = 0;
@@ -103,9 +106,10 @@
dce(void)
{
ssize_t count, rc;
- int sig;
+ int delta, diff, sig;
count = 0;
+ delta = 0;
errno = 0;
sig = 0;
while (count < sizeof(buffer)) {
@@ -113,11 +117,20 @@
rc = MIN(16, sizeof(buffer) - count);
rc = read(fd, buffer + count, rc);
if (rc > 0) {
- count += rc;
+ while (rc--) {
+ diff = buffer[count] - (u_char)count - delta;
+ if (diff) {
+ printf("ERR: %u (%d): ", count, delta);
+ printf("lost %d bytes\n", diff);
+ delta += diff;
+ }
+ count++;
+ }
errno = 0;
} else {
- printf("sleeping after %u bytes...\n", count);
- sleep(1);
+ printf("sleeping after %u (%d) bytes...\n", count,
+ delta);
+ sleep(2);
}
}
@@ -198,8 +211,8 @@
break;
}
+ sleep(2);
tcsetattr(fd, TCSADRAIN, &t0);
- sleep(1);
close(fd);
return (EX_OK);
}
More information about the p4-projects
mailing list