#include #include #include 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"