summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKinsey Moore <kmoore@digium.com>2011-04-18 21:20:10 +0000
committerKinsey Moore <kmoore@digium.com>2011-04-18 21:20:10 +0000
commitf360e97511733c9568638fbd7e4ed06fa495b191 (patch)
tree7ffd3159c82492aaccae625430d14cbea5dd4c4f
parent0c93cd4f8f7d02edffe75a5c4769af7a1030482f (diff)
tools: Allow patlooptest to activate and handle buffer events
The new buffer events code introduced in revision 9905 gives userspace processes an interface to activate detection of buffer over and underflows. This change allows patlooptest to take advantage of that feature to better inform users of the cause of pattern errors. Acked-by: Shaun Ruffell <sruffell@digium.com> (original patch by Matt Fredrickson) git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/trunk@9909 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--patlooptest.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/patlooptest.c b/patlooptest.c
index 4be399c..2ded0b2 100644
--- a/patlooptest.c
+++ b/patlooptest.c
@@ -208,12 +208,13 @@ int main(int argc, char *argv[])
outbuf[x] = c1++;
}
+write_again:
res = write(fd,outbuf,bs);
if (res != bs) {
- printf("Res is %d: %s\n", res, strerror(errno));
- ioctl(fd, DAHDI_GETEVENT, &x);
- printf("Event: %d\n", x);
- exit(1);
+ printf("W: Res is %d: %s\n", res, strerror(errno));
+ ioctl(fd, DAHDI_GETEVENT, &x);
+ printf("Event: %d\n", x);
+ goto write_again;
}
/* If this is the start of the test then skip a number of packets before test results */
@@ -225,13 +226,18 @@ int main(int argc, char *argv[])
if (!skipcount) {
printf("Going for it...\n");
}
+ i = 1;
+ ioctl(fd,DAHDI_BUFFER_EVENTS, &i);
continue;
}
+read_again:
res = read(fd, inbuf, bs);
if (res < bs) {
- printf("read error: returned %d\n", res);
- exit(1);
+ printf("R: Res is %d\n", res);
+ ioctl(fd, DAHDI_GETEVENT, &x);
+ printf("Event: %d\n", x);
+ goto read_again;
}
/* If first time through, set byte that is used to test further bytes */
if (!setup) {