From 0d1013082a9f7d867e9782a24c672d165359805e Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Wed, 7 Aug 2002 12:47:11 +0000 Subject: getopt tests --- test/unistd/getopt.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 test/unistd/getopt.c (limited to 'test/unistd/getopt.c') diff --git a/test/unistd/getopt.c b/test/unistd/getopt.c new file mode 100644 index 000000000..401765cc8 --- /dev/null +++ b/test/unistd/getopt.c @@ -0,0 +1,69 @@ +/* Getopt tests */ + +#include +#include +#include +#include + + +int main (int argc, char **argv) +{ + int c; + int digit_optind = 0; + + while (1) + { + int this_option_optind = optind ? optind : 1; + + c = getopt (argc, argv, "abc:d:0123456789"); + if (c == EOF) + break; + + switch (c) + { + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + if (digit_optind != 0 && digit_optind != this_option_optind) + printf ("digits occur in two different argv-elements.\n"); + digit_optind = this_option_optind; + printf ("option %c\n", c); + break; + + case 'a': + printf ("option a\n"); + break; + + case 'b': + printf ("option b\n"); + break; + + case 'c': + printf ("option c with value `%s'\n", optarg); + break; + + case '?': + break; + + default: + printf ("?? getopt returned character code 0%o ??\n", c); + } + } + + if (optind < argc) + { + printf ("non-option ARGV-elements: "); + while (optind < argc) + printf ("%s ", argv[optind++]); + printf ("\n"); + } + exit (0); +} + -- cgit v1.2.3