From ed98742c5f7df1cbb79f7b287328596a3b596f9b Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Sun, 12 Dec 2010 06:18:14 -0500 Subject: Test for bsort(3); fix test for bsd_signal(3). --- test/bsd_signal.c | 2 +- test/bsort.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ test/regress.chk | 14 +++++++++++--- 3 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 test/bsort.c (limited to 'test') diff --git a/test/bsd_signal.c b/test/bsd_signal.c index b7f0c9e..8be2f94 100644 --- a/test/bsd_signal.c +++ b/test/bsd_signal.c @@ -4,7 +4,7 @@ * Items: bsd_signal( * Requires: * Standardized-By: SuS - * Detected-by: gcc-4.4.3 + Linux + * Not-Detected-by: gcc-4.4.3 + Linux */ #include diff --git a/test/bsort.c b/test/bsort.c new file mode 100644 index 0000000..89d7ddb --- /dev/null +++ b/test/bsort.c @@ -0,0 +1,52 @@ +/* bsort() requires */ + +/* example taken pretty much directly from SuS */ + +/* + * Items: bsort( + * Requires: + * Standardized-By: SuS + * Not-Detected-by: gcc-4.4.3 + Linux + */ + +#ifndef __DEHEADER__ +#include +#endif +#include +#include + +#define TABSIZE 1000 + +struct node { /* these are stored in the table */ + char *string; + int length; +}; +struct node table[TABSIZE]; /* table to be searched */ + +int +node_compare(const void *node1, const void *node2) +{ + return strcoll(((const struct node *)node1)->string, + ((const struct node *)node2)->string); +} + +main(int argc, char **argv) +{ + struct node *node_ptr, node; + char str_space[20]; /* space to read string into */ + + node.string = str_space; + while (scanf("%s", node.string) != EOF) { + node_ptr = (struct node *)bsearch((void *)(&node), + (void *)table, TABSIZE, + sizeof(struct node), node_compare); + if (node_ptr != NULL) { + (void)printf("string = %20s, length = %d\n", + node_ptr->string, node_ptr->length); + } else { + (void)printf("not found: %s\n", node.string); + } + } +} + + diff --git a/test/regress.chk b/test/regress.chk index 494b808..0dfece4 100644 --- a/test/regress.chk +++ b/test/regress.chk @@ -17,6 +17,7 @@ deheader: ./bcmp.c includes deheader: ./bcopy.c includes deheader: ./atexit.c includes deheader: ./abs.c includes +deheader: ./bsd_signal.c has requires from \Wbsd_signal\s*\( deheader: ./bsd_signal.c includes deheader: ./access.c has requires from \Waccess\s*\( deheader: ./access.c includes @@ -38,6 +39,11 @@ deheader: ./atan.c includes deheader: ./basename.c has requires from \Wbasename\s*\( deheader: ./basename.c includes deheader: ./asin.c includes +deheader: ./bsort.c has requires from \Wbsort\s*\( +deheader: ./bsort.c includes +deheader: ignoring (conditional inclusion) +deheader: ./bsort.c includes +deheader: ./bsort.c includes deheader: ./advance.c has requires from \Wadvance\s*\( deheader: ./advance.c includes deheader: ./atan2.c has requires from \Watan2\s*\( @@ -49,8 +55,7 @@ deheader: in ./acos.c, retaining required '#include \n' deheader: in ./brk.c, retaining required '#include \n' deheader: ./string.c without succeeded. deheader: remove from ./string.c -deheader: ./bsd_signal.c without succeeded. -deheader: remove from ./bsd_signal.c +deheader: in ./bsd_signal.c, retaining required '#include \n' deheader: ./abs.c without succeeded. deheader: remove from ./abs.c deheader: in ./basename.c, retaining required '#include \n' @@ -70,6 +75,9 @@ deheader: ./alarm.c without succeeded. deheader: remove from ./alarm.c deheader: ./sbrk.c without succeeded. deheader: remove from ./sbrk.c +deheader: ./bsort.c without succeeded. +deheader: in ./bsort.c, retaining required '#include \n' +deheader: remove from ./bsort.c deheader: in ./umask.c, retaining required '#include \n' deheader: in ./umask.c, retaining required '#include \n' deheader: ./abort.c without succeeded. @@ -80,4 +88,4 @@ deheader: in ./acosh.c, retaining required '#include \n' deheader: in ./bcmp.c, retaining required '#include \n' deheader: in ./a64l.c, retaining required '#include \n' deheader: in ./advance.c, retaining required '#include \n' -deheader: saw 27 files, 28 includes, 10 removed +deheader: saw 28 files, 30 includes, 10 removed -- cgit v1.2.3-70-g09d2