mirror of
https://github.com/yuzu-emu/mbedtls
synced 2024-11-24 19:48:20 +00:00
Make the test builds much stricter for warnings
Tighten up the test options in all.sh, test-ref-configs.pl and curves.pl to ensure the builds are strict for all warnings, warnings are treated as errors, and that wherever possible builds are strict to the C99 standard. (Note that builds that use the Unix sockets API cannot be).
This commit is contained in:
parent
c57c097cd5
commit
f95c1764fa
3 changed files with 44 additions and 28 deletions
|
@ -285,16 +285,16 @@ OPENSSL_CMD="$OPENSSL_LEGACY" tests/compat.sh -m 'ssl3'
|
||||||
msg "build: SSLv3 - ssl-opt.sh (ASan build)" # ~ 6 min
|
msg "build: SSLv3 - ssl-opt.sh (ASan build)" # ~ 6 min
|
||||||
tests/ssl-opt.sh
|
tests/ssl-opt.sh
|
||||||
|
|
||||||
msg "build: cmake, full config, clang" # ~ 50s
|
msg "build: cmake, full config, clang, C99" # ~ 50s
|
||||||
cleanup
|
cleanup
|
||||||
cp "$CONFIG_H" "$CONFIG_BAK"
|
cp "$CONFIG_H" "$CONFIG_BAK"
|
||||||
scripts/config.pl full
|
scripts/config.pl full
|
||||||
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # too slow for tests
|
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # too slow for tests
|
||||||
CC=clang cmake -D CMAKE_BUILD_TYPE:String=Check .
|
CC=clang cmake -D CMAKE_BUILD_TYPE:String=Check -D ENABLE_TESTING=On .
|
||||||
make
|
CFLAGS='-Werror -Wall -Wextra -std=c99 -pedantic' make
|
||||||
|
|
||||||
msg "test: main suites (full config)" # ~ 5s
|
msg "test: main suites (full config)" # ~ 5s
|
||||||
make test
|
CFLAGS='-Werror -Wall -Wextra' make test
|
||||||
|
|
||||||
msg "test: ssl-opt.sh default (full config)" # ~ 1s
|
msg "test: ssl-opt.sh default (full config)" # ~ 1s
|
||||||
tests/ssl-opt.sh -f Default
|
tests/ssl-opt.sh -f Default
|
||||||
|
@ -314,15 +314,17 @@ tests/scripts/key-exchanges.pl
|
||||||
|
|
||||||
msg "build: Unix make, -Os (gcc)" # ~ 30s
|
msg "build: Unix make, -Os (gcc)" # ~ 30s
|
||||||
cleanup
|
cleanup
|
||||||
CC=gcc CFLAGS='-Werror -Os' make
|
CC=gcc CFLAGS='-Werror -Wall -Wextra -Os' make
|
||||||
|
|
||||||
# this is meant to cath missing #define mbedtls_printf etc
|
# Full configuration build, without platform support, file IO and net sockets.
|
||||||
# disable fsio to catch some more missing #include <stdio.h>
|
# This should catch missing mbedtls_printf definitions, and by disabling file
|
||||||
msg "build: full config except platform/fsio, make, gcc" # ~ 30s
|
# IO, it should catch missing '#include <stdio.h>'
|
||||||
|
msg "build: full config except platform/fsio/net, make, gcc, C99" # ~ 30s
|
||||||
cleanup
|
cleanup
|
||||||
cp "$CONFIG_H" "$CONFIG_BAK"
|
cp "$CONFIG_H" "$CONFIG_BAK"
|
||||||
scripts/config.pl full
|
scripts/config.pl full
|
||||||
scripts/config.pl unset MBEDTLS_PLATFORM_C
|
scripts/config.pl unset MBEDTLS_PLATFORM_C
|
||||||
|
scripts/config.pl unset MBEDTLS_NET_C
|
||||||
scripts/config.pl unset MBEDTLS_PLATFORM_MEMORY
|
scripts/config.pl unset MBEDTLS_PLATFORM_MEMORY
|
||||||
scripts/config.pl unset MBEDTLS_PLATFORM_PRINTF_ALT
|
scripts/config.pl unset MBEDTLS_PLATFORM_PRINTF_ALT
|
||||||
scripts/config.pl unset MBEDTLS_PLATFORM_FPRINTF_ALT
|
scripts/config.pl unset MBEDTLS_PLATFORM_FPRINTF_ALT
|
||||||
|
@ -332,7 +334,8 @@ scripts/config.pl unset MBEDTLS_PLATFORM_EXIT_ALT
|
||||||
scripts/config.pl unset MBEDTLS_ENTROPY_NV_SEED
|
scripts/config.pl unset MBEDTLS_ENTROPY_NV_SEED
|
||||||
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C
|
||||||
scripts/config.pl unset MBEDTLS_FS_IO
|
scripts/config.pl unset MBEDTLS_FS_IO
|
||||||
CC=gcc CFLAGS='-Werror -O0' make
|
CC=gcc CFLAGS='-Werror -Wall -Wextra -std=c99 -pedantic -O0' make lib programs
|
||||||
|
CC=gcc CFLAGS='-Werror -Wall -Wextra -O0' make test
|
||||||
|
|
||||||
# catch compile bugs in _uninit functions
|
# catch compile bugs in _uninit functions
|
||||||
msg "build: full config with NO_STD_FUNCTION, make, gcc" # ~ 30s
|
msg "build: full config with NO_STD_FUNCTION, make, gcc" # ~ 30s
|
||||||
|
@ -341,29 +344,31 @@ cp "$CONFIG_H" "$CONFIG_BAK"
|
||||||
scripts/config.pl full
|
scripts/config.pl full
|
||||||
scripts/config.pl set MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
|
scripts/config.pl set MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
|
||||||
scripts/config.pl unset MBEDTLS_ENTROPY_NV_SEED
|
scripts/config.pl unset MBEDTLS_ENTROPY_NV_SEED
|
||||||
CC=gcc CFLAGS='-Werror -O0' make
|
CC=gcc CFLAGS='-Werror -Wall -Wextra -O0' make
|
||||||
|
|
||||||
msg "build: full config except ssl_srv.c, make, gcc" # ~ 30s
|
msg "build: full config except ssl_srv.c, make, gcc" # ~ 30s
|
||||||
cleanup
|
cleanup
|
||||||
cp "$CONFIG_H" "$CONFIG_BAK"
|
cp "$CONFIG_H" "$CONFIG_BAK"
|
||||||
scripts/config.pl full
|
scripts/config.pl full
|
||||||
scripts/config.pl unset MBEDTLS_SSL_SRV_C
|
scripts/config.pl unset MBEDTLS_SSL_SRV_C
|
||||||
CC=gcc CFLAGS='-Werror -O0' make
|
CC=gcc CFLAGS='-Werror -Wall -Wextra -O0' make
|
||||||
|
|
||||||
msg "build: full config except ssl_cli.c, make, gcc" # ~ 30s
|
msg "build: full config except ssl_cli.c, make, gcc" # ~ 30s
|
||||||
cleanup
|
cleanup
|
||||||
cp "$CONFIG_H" "$CONFIG_BAK"
|
cp "$CONFIG_H" "$CONFIG_BAK"
|
||||||
scripts/config.pl full
|
scripts/config.pl full
|
||||||
scripts/config.pl unset MBEDTLS_SSL_CLI_C
|
scripts/config.pl unset MBEDTLS_SSL_CLI_C
|
||||||
CC=gcc CFLAGS='-Werror -O0' make
|
CC=gcc CFLAGS='-Werror -Wall -Werror -O0' make
|
||||||
|
|
||||||
|
# Note, C99 compliance can also be tested with the sockets support disabled,
|
||||||
|
# as that requires a POSIX platform (which isn't the same as C99).
|
||||||
msg "build: full config except net_sockets.c, make, gcc -std=c99 -pedantic" # ~ 30s
|
msg "build: full config except net_sockets.c, make, gcc -std=c99 -pedantic" # ~ 30s
|
||||||
cleanup
|
cleanup
|
||||||
cp "$CONFIG_H" "$CONFIG_BAK"
|
cp "$CONFIG_H" "$CONFIG_BAK"
|
||||||
scripts/config.pl full
|
scripts/config.pl full
|
||||||
scripts/config.pl unset MBEDTLS_NET_C # getaddrinfo() undeclared, etc.
|
scripts/config.pl unset MBEDTLS_NET_C # getaddrinfo() undeclared, etc.
|
||||||
scripts/config.pl set MBEDTLS_NO_PLATFORM_ENTROPY # uses syscall() on GNU/Linux
|
scripts/config.pl set MBEDTLS_NO_PLATFORM_ENTROPY # uses syscall() on GNU/Linux
|
||||||
CC=gcc CFLAGS='-Werror -O0 -std=c99 -pedantic' make lib
|
CC=gcc CFLAGS='-Werror -Wall -Wextra -O0 -std=c99 -pedantic' make lib
|
||||||
|
|
||||||
msg "build: default config with MBEDTLS_TEST_NULL_ENTROPY (ASan build)"
|
msg "build: default config with MBEDTLS_TEST_NULL_ENTROPY (ASan build)"
|
||||||
cleanup
|
cleanup
|
||||||
|
@ -389,7 +394,7 @@ fi
|
||||||
if uname -a | grep -F x86_64 >/dev/null; then
|
if uname -a | grep -F x86_64 >/dev/null; then
|
||||||
msg "build: i386, make, gcc" # ~ 30s
|
msg "build: i386, make, gcc" # ~ 30s
|
||||||
cleanup
|
cleanup
|
||||||
CC=gcc CFLAGS='-Werror -m32' make
|
CC=gcc CFLAGS='-Werror -Wall -Wextra -m32' make
|
||||||
fi # x86_64
|
fi # x86_64
|
||||||
|
|
||||||
msg "build: arm-none-eabi-gcc, make" # ~ 10s
|
msg "build: arm-none-eabi-gcc, make" # ~ 10s
|
||||||
|
@ -407,7 +412,7 @@ scripts/config.pl unset MBEDTLS_THREADING_PTHREAD
|
||||||
scripts/config.pl unset MBEDTLS_THREADING_C
|
scripts/config.pl unset MBEDTLS_THREADING_C
|
||||||
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # execinfo.h
|
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # execinfo.h
|
||||||
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C # calls exit
|
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C # calls exit
|
||||||
CC=arm-none-eabi-gcc AR=arm-none-eabi-ar LD=arm-none-eabi-ld CFLAGS=-Werror make lib
|
CC=arm-none-eabi-gcc AR=arm-none-eabi-ar LD=arm-none-eabi-ld CFLAGS='-Werror -Wall -Wextra' make lib
|
||||||
|
|
||||||
msg "build: armcc, make"
|
msg "build: armcc, make"
|
||||||
cleanup
|
cleanup
|
||||||
|
@ -428,15 +433,19 @@ scripts/config.pl unset MBEDTLS_THREADING_C
|
||||||
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # execinfo.h
|
scripts/config.pl unset MBEDTLS_MEMORY_BACKTRACE # execinfo.h
|
||||||
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C # calls exit
|
scripts/config.pl unset MBEDTLS_MEMORY_BUFFER_ALLOC_C # calls exit
|
||||||
scripts/config.pl unset MBEDTLS_PLATFORM_TIME_ALT # depends on MBEDTLS_HAVE_TIME
|
scripts/config.pl unset MBEDTLS_PLATFORM_TIME_ALT # depends on MBEDTLS_HAVE_TIME
|
||||||
CC=armcc AR=armar WARNING_CFLAGS= make lib
|
CC=armcc AR=armar WARNING_CFLAGS='--strict --c99' make lib
|
||||||
|
|
||||||
if which i686-w64-mingw32-gcc >/dev/null; then
|
if which i686-w64-mingw32-gcc >/dev/null; then
|
||||||
msg "build: cross-mingw64, make" # ~ 30s
|
msg "build: Windows cross build - mingw64, make (Link Library)" # ~ 30s
|
||||||
cleanup
|
cleanup
|
||||||
CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS=-Werror WINDOWS_BUILD=1 make
|
CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror -Wall -Wextra' WINDOWS_BUILD=1 make lib programs
|
||||||
WINDOWS_BUILD=1 make clean
|
CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS='-Werror' WINDOWS_BUILD=1 make test
|
||||||
CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS=-Werror WINDOWS_BUILD=1 SHARED=1 make
|
WINDOWS_BUILD=1 make clean
|
||||||
WINDOWS_BUILD=1 make clean
|
|
||||||
|
msg "build: Windows cross build - mingw64, make (DLL)" # ~ 30s
|
||||||
|
CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS'=-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 make lib programs
|
||||||
|
CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar LD=i686-w64-minggw32-ld CFLAGS'=-Werror -Wall -Wextra' WINDOWS_BUILD=1 SHARED=1 make test
|
||||||
|
WINDOWS_BUILD=1 make clean
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# MemSan currently only available on Linux 64 bits
|
# MemSan currently only available on Linux 64 bits
|
||||||
|
|
|
@ -49,7 +49,8 @@ for my $curve (@curves) {
|
||||||
system( "scripts/config.pl unset $curve" )
|
system( "scripts/config.pl unset $curve" )
|
||||||
and abort "Failed to disable $curve\n";
|
and abort "Failed to disable $curve\n";
|
||||||
|
|
||||||
system( "make lib" ) and abort "Failed to build lib: $curve\n";
|
system( "CFLAGS='-Werror -Wall -Wextra' make lib" )
|
||||||
|
and abort "Failed to build lib: $curve\n";
|
||||||
system( "cd tests && make" ) and abort "Failed to build tests: $curve\n";
|
system( "cd tests && make" ) and abort "Failed to build tests: $curve\n";
|
||||||
system( "make test" ) and abort "Failed test suite: $curve\n";
|
system( "make test" ) and abort "Failed test suite: $curve\n";
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,15 @@
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
# test standard configurations:
|
# test-ref-configs.pl
|
||||||
# - build
|
#
|
||||||
# - run test suite
|
# This file is part of mbed TLS (https://tls.mbed.org)
|
||||||
# - run compat.sh
|
#
|
||||||
|
# Copyright (c) 2013-2016, ARM Limited, All Rights Reserved
|
||||||
|
#
|
||||||
|
# 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 [...]]
|
# Usage: tests/scripts/test-ref-configs.pl [config-name [...]]
|
||||||
|
|
||||||
|
@ -63,7 +69,7 @@ while( my ($conf, $data) = each %configs ) {
|
||||||
system( "cp configs/$conf $config_h" )
|
system( "cp configs/$conf $config_h" )
|
||||||
and abort "Failed to activate $conf\n";
|
and abort "Failed to activate $conf\n";
|
||||||
|
|
||||||
system( "make CFLAGS='-Os -Werror'" ) and abort "Failed to build: $conf\n";
|
system( "CFLAGS='-Os -Werror -Wall -Wextra' make" ) and abort "Failed to build: $conf\n";
|
||||||
system( "make test" ) and abort "Failed test suite: $conf\n";
|
system( "make test" ) and abort "Failed test suite: $conf\n";
|
||||||
|
|
||||||
my $compat = $data->{'compat'};
|
my $compat = $data->{'compat'};
|
||||||
|
|
Loading…
Reference in a new issue