diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-05-24 09:17:34 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-06-15 16:01:38 -0300 |
commit | 244361ebaec57a6fbb9998bfa5ec71ee8d88f3e8 (patch) | |
tree | e98dba147ced72499f4754995d1556c7ba22404a | |
parent | 70fe2eb79417166c39a36699f591138bfe5c5307 (diff) | |
download | glibc-244361ebaec57a6fbb9998bfa5ec71ee8d88f3e8.tar.gz |
support: Add optstring support
This patch adds an option to test to add small command line option
through CMDLINE_OPTSTRING define. For instance:
#define CMDLINE_OPTSTRING "vd"
static void
cmdline_process_function (int c)
{
switch (c):
'v':
/* process '-v' option. */
break;
'd':
/* process '-d' option. */
break;
}
#define CMDLINE_PROCESS cmdline_process_function
It will add both '-v' and '-d' along with already default long options.
* support/support_test_main.c (support_test_main): Use optstring
member for option string in getopt_long.
* support/test-driver.c: Add comment about CMDLINE_OPTSTRING.
(CMDLINE_OPTSTRING): New define.
* support/test-driver.h (test_config): Add optstring member.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | support/support_test_main.c | 3 | ||||
-rw-r--r-- | support/test-driver.c | 9 | ||||
-rw-r--r-- | support/test-driver.h | 1 |
4 files changed, 20 insertions, 1 deletions
@@ -1,3 +1,11 @@ +2017-06-15 Adhemerval Zanella <adhemerval.zanella@linaro.org> + + * support/support_test_main.c (support_test_main): Use optstring + member for option string in getopt_long. + * support/test-driver.c: Add comment about CMDLINE_OPTSTRING. + (CMDLINE_OPTSTRING): New define. + * support/test-driver.h (test_config): Add optstring member. + 2017-06-15 H.J. Lu <hongjiu.lu@intel.com> * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add diff --git a/support/support_test_main.c b/support/support_test_main.c index 914d64f603..3c411a467b 100644 --- a/support/support_test_main.c +++ b/support/support_test_main.c @@ -211,7 +211,8 @@ support_test_main (int argc, char **argv, const struct test_config *config) mallopt (M_PERTURB, 42); } - while ((opt = getopt_long (argc, argv, "+", options, NULL)) != -1) + while ((opt = getopt_long (argc, argv, config->optstring, options, NULL)) + != -1) switch (opt) { case '?': diff --git a/support/test-driver.c b/support/test-driver.c index 482066dbeb..47c387c2b4 100644 --- a/support/test-driver.c +++ b/support/test-driver.c @@ -93,6 +93,10 @@ has this type: void CMDLINE_PROCESS (int); + + If the program also to process custom default short command line + argument (similar to getopt) it must define CMDLINE_OPTSTRING + with the expected options (for instance "vb"). */ #include <support/test-driver.h> @@ -151,6 +155,11 @@ main (int argc, char **argv) #ifdef CMDLINE_PROCESS test_config.cmdline_function = CMDLINE_PROCESS; #endif +#ifdef CMDLINE_OPTSTRING + test_config.optstring = "+" CMDLINE_OPTSTRING; +#else + test_config.optstring = "+"; +#endif return support_test_main (argc, argv, &test_config); } diff --git a/support/test-driver.h b/support/test-driver.h index af1971a9ca..a8fe9c3565 100644 --- a/support/test-driver.h +++ b/support/test-driver.h @@ -35,6 +35,7 @@ struct test_config int expected_status; /* Expected exit status. */ int expected_signal; /* If non-zero, expect termination by signal. */ char no_mallopt; /* Boolean flag to disable mallopt. */ + const char *optstring; /* Short command line options. */ }; enum |