diff --git a/tests/scripts/basic-in-docker.sh b/tests/scripts/basic-in-docker.sh index 3aca3a134d..81ee8d61e1 100755 --- a/tests/scripts/basic-in-docker.sh +++ b/tests/scripts/basic-in-docker.sh @@ -31,7 +31,6 @@ for compiler in clang gcc; do run_in_docker programs/test/selftest run_in_docker -e OSSL_NO_DTLS=1 tests/compat.sh run_in_docker tests/ssl-opt.sh -e '\(DTLS\|SCSV\).*openssl' - run_in_docker tests/scripts/test-ref-configs.pl run_in_docker tests/scripts/depends.py curves run_in_docker tests/scripts/depends.py kex done diff --git a/tests/scripts/components-configuration.sh b/tests/scripts/components-configuration.sh index 64590472ac..9f563a91a2 100644 --- a/tests/scripts/components-configuration.sh +++ b/tests/scripts/components-configuration.sh @@ -129,21 +129,6 @@ component_test_full_cmake_gcc_asan_new_bignum () { tests/context-info.sh } -component_test_ref_configs () { - msg "test/build: ref-configs (ASan build)" # ~ 6 min 20s - # test-ref-configs works by overwriting mbedtls_config.h; this makes cmake - # want to re-generate generated files that depend on it, quite correctly. - # However this doesn't work as the generation script expects a specific - # format for mbedtls_config.h, which the other files don't follow. Also, - # cmake can't know this, but re-generation is actually not necessary as - # the generated files only depend on the list of available options, not - # whether they're on or off. So, disable cmake's (over-sensitive here) - # dependency resolution for generated files and just rely on them being - # present (thanks to pre_generate_files) by turning GEN_FILES off. - CC=$ASAN_CC cmake -D GEN_FILES=Off -D CMAKE_BUILD_TYPE:String=Asan . - tests/scripts/test-ref-configs.pl -} - component_test_full_cmake_clang () { msg "build: cmake, full config, clang" # ~ 50s scripts/config.py full diff --git a/tests/scripts/test-ref-configs.pl b/tests/scripts/test-ref-configs.pl deleted file mode 100755 index 2e97510774..0000000000 --- a/tests/scripts/test-ref-configs.pl +++ /dev/null @@ -1,136 +0,0 @@ -#!/usr/bin/env perl - -# test-ref-configs.pl -# -# Copyright The Mbed TLS Contributors -# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later -# -# Purpose -# -# For each reference configuration file in the configs directory, build the -# configuration, run the test suites and compat.sh -# -# Usage: tests/scripts/test-ref-configs.pl [config-name [...]] - -use warnings; -use strict; - -my %configs = ( -); - -# If no config-name is provided, use all known configs. -# Otherwise, use the provided names only. -my @configs_to_test = sort keys %configs; -if ($#ARGV >= 0) { - foreach my $conf_name ( @ARGV ) { - if( ! exists $configs{$conf_name} ) { - die "Unknown configuration: $conf_name\n"; - } - } - @configs_to_test = @ARGV; -} - --d 'library' && -d 'include' && -d 'tests' or die "Must be run from root\n"; - -my $config_h = 'include/mbedtls/mbedtls_config.h'; - -system( "cp $config_h $config_h.bak" ) and die; -sub abort { - system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n"; - # use an exit code between 1 and 124 for git bisect (die returns 255) - warn $_[0]; - exit 1; -} - -# Create a seedfile for configurations that enable MBEDTLS_ENTROPY_NV_SEED. -# For test purposes, this doesn't have to be cryptographically random. -if (!-e "tests/seedfile" || -s "tests/seedfile" < 64) { - local *SEEDFILE; - open SEEDFILE, ">tests/seedfile" or die; - print SEEDFILE "*" x 64 or die; - close SEEDFILE or die; -} - -sub perform_test { - my $conf_file = $_[0]; - my $data = $_[1]; - my $test_with_psa = $_[2]; - - my $conf_name = $conf_file; - if ( $test_with_psa ) - { - $conf_name .= "+PSA"; - } - - system( "cp $config_h.bak $config_h" ) and die; - system( "make clean" ) and die; - - print "\n******************************************\n"; - print "* Testing configuration: $conf_name\n"; - print "******************************************\n"; - - $ENV{MBEDTLS_TEST_CONFIGURATION} = $conf_name; - - system( "cp configs/$conf_file $config_h" ) - and abort "Failed to activate $conf_file\n"; - - if ( $test_with_psa ) - { - system( "scripts/config.py set MBEDTLS_PSA_CRYPTO_C" ); - system( "scripts/config.py set MBEDTLS_USE_PSA_CRYPTO" ); - } - - system( "CFLAGS='-Os -Werror -Wall -Wextra' make" ) and abort "Failed to build: $conf_name\n"; - system( "make test" ) and abort "Failed test suite: $conf_name\n"; - - my $compat = $data->{'compat'}; - if( $compat ) - { - print "\nrunning compat.sh $compat ($conf_name)\n"; - system( "tests/compat.sh $compat" ) - and abort "Failed compat.sh: $conf_name\n"; - } - else - { - print "\nskipping compat.sh ($conf_name)\n"; - } - - my $opt = $data->{'opt'}; - if( $opt ) - { - if( $data->{'opt_needs_debug'} ) - { - print "\nrebuilding with debug traces for ssl-opt ($conf_name)\n"; - $conf_name .= '+DEBUG'; - $ENV{MBEDTLS_TEST_CONFIGURATION} = $conf_name; - system( "make clean" ); - system( "scripts/config.py set MBEDTLS_DEBUG_C" ); - system( "scripts/config.py set MBEDTLS_ERROR_C" ); - system( "CFLAGS='-Os -Werror -Wall -Wextra' make" ) and abort "Failed to build: $conf_name\n"; - } - - print "\nrunning ssl-opt.sh $opt ($conf_name)\n"; - system( "tests/ssl-opt.sh $opt" ) - and abort "Failed ssl-opt.sh: $conf_name\n"; - } - else - { - print "\nskipping ssl-opt.sh ($conf_name)\n"; - } -} - -foreach my $conf ( @configs_to_test ) { - system("grep '//#define MBEDTLS_USE_PSA_CRYPTO' configs/$conf > /dev/null"); - die "grep ... configs/$conf: $!" if $? != 0 && $? != 0x100; - my $test_with_psa = $? == 0; - - if ( $test_with_psa ) - { - perform_test( $conf, $configs{$conf}, $test_with_psa ); - } - perform_test( $conf, $configs{$conf}, 0 ); -} - -system( "mv $config_h.bak $config_h" ) and warn "$config_h not restored\n"; -system( "make clean" ); -exit 0;