Add requires_{any,all}_configs_enabled functions

- requires_any_configs_enabled
- requires_all_configs_enabled
- requires_any_configs_disabled
- requires_all_configs_disabled

Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
This commit is contained in:
Jerry Yu 2022-07-27 17:30:49 +08:00
parent d2d4110e8e
commit 2fcb056ea9
2 changed files with 71 additions and 10 deletions

View File

@ -28,20 +28,27 @@
#define MBEDTLS_EXIT_FAILURE EXIT_FAILURE
#endif
#define USAGE \
"usage: %s [ <MBEDTLS_CONFIG> | -l ]\n\n" \
"This program takes one command line argument which corresponds to\n" \
"the string representation of a Mbed TLS compile time configuration.\n" \
"The value 0 will be returned if this configuration is defined in the\n" \
"Mbed TLS build and the macro expansion of that configuration will be\n" \
"printed (if any). Otherwise, 1 will be returned.\n" \
"-l\tPrint all available configuration.\n"
#define USAGE \
"usage: %s [ -all | -any | -l ] <MBEDTLS_CONFIG> ...\n\n" \
"This program takes command line arguments which correspond to\n" \
"the string representation of Mbed TLS compile time configurations.\n\n" \
"If only one argument is available, the value 0 will be returned if\n" \
"this configuration is defined in the Mbed TLS build and the macro\n" \
"expansion of that configuration will be printed (if any). Otherwise,\n" \
" 1 will be returned.\n" \
"-l\tPrint all available configuration.\n" \
"-all\tReturn 0 if all configurations are defined. Otherwise, return 1\n" \
"-any\tReturn 0 if any configuration is defined. Otherwise, return 1\n" \
"-h\tPrint this usage\n"
#include <string.h>
#include "query_config.h"
int main( int argc, char *argv[] )
{
if ( argc != 2 )
int i;
if ( argc == 1 || strcmp( argv[1], "-h" ) == 0 )
{
mbedtls_printf( USAGE, argv[0] );
return( MBEDTLS_EXIT_FAILURE );
@ -53,5 +60,31 @@ int main( int argc, char *argv[] )
return( 0 );
}
return( query_config( argv[1] ) );
if( strcmp( argv[1], "-all" ) == 0 )
{
for( i = 2; i < argc; i++ )
{
if( query_config( argv[i] ) != 0 )
return( 1 );
}
return( 0 );
}
if( strcmp( argv[1], "-any" ) == 0 )
{
for( i = 2; i < argc; i++ )
{
if( query_config( argv[i] ) == 0 )
return( 0 );
}
return( 1 );
}
for( i = 1; i < argc; i++ )
{
if( query_config( argv[i] ) != 0 )
return( 1 );
}
return( 0 );
}

View File

@ -223,6 +223,34 @@ requires_config_disabled() {
esac
}
requires_all_configs_enabled() {
if ! $P_QUERY -all $*
then
SKIP_NEXT="YES"
fi
}
requires_all_configs_disabled() {
if $P_QUERY -any $*
then
SKIP_NEXT="YES"
fi
}
requires_any_configs_enabled() {
if ! $P_QUERY -any $*
then
SKIP_NEXT="YES"
fi
}
requires_any_configs_disabled() {
if $P_QUERY -all $*
then
SKIP_NEXT="YES"
fi
}
get_config_value_or_default() {
# This function uses the query_config command line option to query the
# required Mbed TLS compile time configuration from the ssl_server2