mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-10-30 10:45:40 +03:00 
			
		
		
		
	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.
		
	
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Interfaces for the test driver.
 | |
|    Copyright (C) 2016-2017 Free Software Foundation, Inc.
 | |
|    This file is part of the GNU C Library.
 | |
| 
 | |
|    The GNU C Library is free software; you can redistribute it and/or
 | |
|    modify it under the terms of the GNU Lesser General Public
 | |
|    License as published by the Free Software Foundation; either
 | |
|    version 2.1 of the License, or (at your option) any later version.
 | |
| 
 | |
|    The GNU C Library is distributed in the hope that it will be useful,
 | |
|    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | |
|    Lesser General Public License for more details.
 | |
| 
 | |
|    You should have received a copy of the GNU Lesser General Public
 | |
|    License along with the GNU C Library; if not, see
 | |
|    <http://www.gnu.org/licenses/>.  */
 | |
| 
 | |
| #ifndef SUPPORT_TEST_DRIVER_H
 | |
| #define SUPPORT_TEST_DRIVER_H
 | |
| 
 | |
| #include <sys/cdefs.h>
 | |
| 
 | |
| __BEGIN_DECLS
 | |
| 
 | |
| struct test_config
 | |
| {
 | |
|   void (*prepare_function) (int argc, char **argv);
 | |
|   int (*test_function) (void);
 | |
|   int (*test_function_argv) (int argc, char **argv);
 | |
|   void (*cleanup_function) (void);
 | |
|   void (*cmdline_function) (int);
 | |
|   const void *options;   /* Custom options if not NULL.  */
 | |
|   int timeout;           /* Test timeout in seconds.  */
 | |
|   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
 | |
|   {
 | |
|     /* Test exit status which indicates that the feature is
 | |
|        unsupported. */
 | |
|     EXIT_UNSUPPORTED = 77,
 | |
| 
 | |
|     /* Default timeout is twenty seconds.  Tests should normally
 | |
|        complete faster than this, but if they don't, that's abnormal
 | |
|        (a bug) anyways.  */
 | |
|     DEFAULT_TIMEOUT = 20,
 | |
| 
 | |
|     /* Used for command line argument parsing.  */
 | |
|     OPT_DIRECT = 1000,
 | |
|     OPT_TESTDIR,
 | |
|   };
 | |
| 
 | |
| /* Options provided by the test driver.  */
 | |
| #define TEST_DEFAULT_OPTIONS                            \
 | |
|   { "verbose", no_argument, NULL, 'v' },                \
 | |
|   { "direct", no_argument, NULL, OPT_DIRECT },          \
 | |
|   { "test-dir", required_argument, NULL, OPT_TESTDIR }, \
 | |
| 
 | |
| /* The directory the test should use for temporary files.  */
 | |
| extern const char *test_dir;
 | |
| 
 | |
| /* The number of --verbose arguments specified during program
 | |
|    invocation.  This variable can be used to control the verbosity of
 | |
|    tests.  */
 | |
| extern unsigned int test_verbose;
 | |
| 
 | |
| int support_test_main (int argc, char **argv, const struct test_config *);
 | |
| 
 | |
| __END_DECLS
 | |
| 
 | |
| #endif /* SUPPORT_TEST_DRIVER_H */
 |