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