mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-03 08:11:08 +00:00
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.
This commit is contained in:
parent
70fe2eb794
commit
244361ebae
@ -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>
|
2017-06-15 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
|
* sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
|
||||||
|
@ -211,7 +211,8 @@ support_test_main (int argc, char **argv, const struct test_config *config)
|
|||||||
mallopt (M_PERTURB, 42);
|
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)
|
switch (opt)
|
||||||
{
|
{
|
||||||
case '?':
|
case '?':
|
||||||
|
@ -93,6 +93,10 @@
|
|||||||
has this type:
|
has this type:
|
||||||
|
|
||||||
void CMDLINE_PROCESS (int);
|
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>
|
#include <support/test-driver.h>
|
||||||
@ -151,6 +155,11 @@ main (int argc, char **argv)
|
|||||||
#ifdef CMDLINE_PROCESS
|
#ifdef CMDLINE_PROCESS
|
||||||
test_config.cmdline_function = CMDLINE_PROCESS;
|
test_config.cmdline_function = CMDLINE_PROCESS;
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CMDLINE_OPTSTRING
|
||||||
|
test_config.optstring = "+" CMDLINE_OPTSTRING;
|
||||||
|
#else
|
||||||
|
test_config.optstring = "+";
|
||||||
|
#endif
|
||||||
|
|
||||||
return support_test_main (argc, argv, &test_config);
|
return support_test_main (argc, argv, &test_config);
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ struct test_config
|
|||||||
int expected_status; /* Expected exit status. */
|
int expected_status; /* Expected exit status. */
|
||||||
int expected_signal; /* If non-zero, expect termination by signal. */
|
int expected_signal; /* If non-zero, expect termination by signal. */
|
||||||
char no_mallopt; /* Boolean flag to disable mallopt. */
|
char no_mallopt; /* Boolean flag to disable mallopt. */
|
||||||
|
const char *optstring; /* Short command line options. */
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
Loading…
Reference in New Issue
Block a user