| #include <argp.h> | 
 | #include <stdio.h> | 
 | #include <stdlib.h> | 
 |  | 
 | static struct argp_option argp_options[] = { | 
 |   { "dstaddr", 'd', "ADDR", 0, | 
 |     "set destination (peer) address to ADDR" }, | 
 |   { "peer", 'p', "ADDR", OPTION_ALIAS }, | 
 |   { NULL } | 
 | }; | 
 |  | 
 | static error_t parse_opt (int key, char *arg, struct argp_state *state); | 
 |  | 
 | static struct argp argp = | 
 | { | 
 |   argp_options, parse_opt | 
 | }; | 
 |  | 
 | static int cnt; | 
 |  | 
 | static int | 
 | do_test (int argc, char *argv[]) | 
 | { | 
 |   int remaining; | 
 |   argp_parse (&argp, argc, argv, 0, &remaining, NULL); | 
 |   return cnt != 4; | 
 | } | 
 |  | 
 | static error_t | 
 | parse_opt (int key, char *arg, struct argp_state *state) | 
 | { | 
 |   switch (key) | 
 |   { | 
 |   case 'd': | 
 |   case 'p': | 
 |     printf ("got '%c' with argument '%s'\n", key, arg); | 
 |     ++cnt; | 
 |     break; | 
 |   case 0: | 
 |   case ARGP_KEY_END: | 
 |   case ARGP_KEY_NO_ARGS: | 
 |   case ARGP_KEY_INIT: | 
 |   case ARGP_KEY_SUCCESS: | 
 |   case ARGP_KEY_FINI: | 
 |     // Ignore. | 
 |     return ARGP_ERR_UNKNOWN; | 
 |   default: | 
 |     printf ("invalid key '%x'\n", key); | 
 |     exit (1); | 
 |   } | 
 |   return 0; | 
 | } | 
 |  | 
 | #define TEST_FUNCTION do_test (argc, argv) | 
 | #include "../test-skeleton.c" |