summaryrefslogtreecommitdiff
path: root/patlooptest.c
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 /patlooptest.c
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
Diffstat (limited to 'patlooptest.c')
-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) {