mirror of
https://github.com/openssl/openssl.git
synced 2025-01-30 14:01:55 +08:00
Link internal tests with static OpenSSL libraries when needed
Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/1889)
This commit is contained in:
parent
473a954771
commit
cf551a51d2
100
test/build.info
100
test/build.info
@ -312,79 +312,39 @@ IF[{- !$disabled{tests} -}]
|
||||
ENDIF
|
||||
|
||||
# Internal test programs. These are essentially a collection of internal
|
||||
# test routines. Because they sometimes need to reach internal symbols that
|
||||
# aren't available through the shared library (at least on Linux, Solaris,
|
||||
# Windows and VMS, where the exported symbols are those listed in util/*.num),
|
||||
# these programs may be built on files directly picked from inside crypto/
|
||||
# or ssl/, to test using symbols that exist in those specific files. These
|
||||
# programs will also be linked with libcrypto / libssl, so we don't pick
|
||||
# out more specific files than necessary.
|
||||
# This might mean we have multiply defined symbols, but since linking is
|
||||
# ordered with object files first and libraries after, the symbols from the
|
||||
# object files will be chosen before those in the libraries. This is handled
|
||||
# properly by all linkers.
|
||||
# Note that when building with static libraries, none of those extra files
|
||||
# are needed, since all symbols are available anyway, regardless of what's
|
||||
# listed in util/*.num.
|
||||
PROGRAMS_NO_INST=asn1_internal_test modes_internal_test x509_internal_test
|
||||
# test routines. Some of them need to reach internal symbols that aren't
|
||||
# available through the shared library (at least on Linux, Solaris, Windows
|
||||
# and VMS, where the exported symbols are those listed in util/*.num), these
|
||||
# programs are forcebly linked with the static libraries, where all symbols
|
||||
# are always available. This excludes linking these programs natively on
|
||||
# Windows when building shared libraries, since the static libraries share
|
||||
# names with the DLL import libraries.
|
||||
IF[{- $disabled{shared} || $target{build_scheme}->[1] ne 'windows' -}]
|
||||
PROGRAMS_NO_INST=asn1_internal_test modes_internal_test x509_internal_test
|
||||
IF[{- !$disabled{poly1305} -}]
|
||||
PROGRAMS_NO_INST=poly1305_internal_test
|
||||
ENDIF
|
||||
|
||||
SOURCE[poly1305_internal_test]=poly1305_internal_test.c testutil.c test_main_custom.c
|
||||
INCLUDE[poly1305_internal_test]=.. ../include ../crypto/include
|
||||
DEPEND[poly1305_internal_test]=../libcrypto.a
|
||||
|
||||
SOURCE[asn1_internal_test]=asn1_internal_test.c testutil.c test_main.c
|
||||
INCLUDE[asn1_internal_test]=.. ../include ../crypto/include
|
||||
DEPEND[asn1_internal_test]=../libcrypto.a
|
||||
|
||||
SOURCE[modes_internal_test]=modes_internal_test.c testutil.c test_main_custom.c
|
||||
INCLUDE[modes_internal_test]=.. ../include
|
||||
DEPEND[modes_internal_test]=../libcrypto.a
|
||||
|
||||
SOURCE[x509_internal_test]=x509_internal_test.c testutil.c test_main.c
|
||||
INCLUDE[x509_internal_test]=.. ../include
|
||||
DEPEND[x509_internal_test]=../libcrypto.a
|
||||
ENDIF
|
||||
|
||||
IF[{- !$disabled{mdc2} -}]
|
||||
PROGRAMS_NO_INST=mdc2_internal_test
|
||||
ENDIF
|
||||
IF[{- !$disabled{poly1305} -}]
|
||||
PROGRAMS_NO_INST=poly1305_internal_test
|
||||
ENDIF
|
||||
|
||||
SOURCE[poly1305_internal_test]=poly1305_internal_test.c testutil.c test_main_custom.c
|
||||
IF[{- !$disabled{shared} -}]
|
||||
SOURCE[poly1305_internal_test]= ../crypto/poly1305/poly1305.c \
|
||||
{- rebase_files("../crypto/poly1305", $target{poly1305_asm_src}) -} \
|
||||
{- rebase_files("../crypto", $target{cpuid_asm_src}) -} \
|
||||
../crypto/cryptlib.c
|
||||
ENDIF
|
||||
INCLUDE[poly1305_internal_test]=.. ../include ../crypto/include
|
||||
DEPEND[poly1305_internal_test]=../libcrypto
|
||||
|
||||
SOURCE[asn1_internal_test]=asn1_internal_test.c testutil.c test_main.c
|
||||
IF[{- !$disabled{shared} -}]
|
||||
SOURCE[asn1_internal_test]= ../crypto/asn1/a_strnid.c \
|
||||
../crypto/rsa/rsa_ameth.c ../crypto/dsa/dsa_ameth.c \
|
||||
../crypto/dh/dh_ameth.c ../crypto/ec/ec_ameth.c \
|
||||
../crypto/hmac/hm_ameth.c ../crypto/cmac/cm_ameth.c \
|
||||
../crypto/ec/ecx_meth.c ../crypto/ec/curve25519.c
|
||||
ENDIF
|
||||
INCLUDE[asn1_internal_test]=.. ../include ../crypto/include
|
||||
DEPEND[asn1_internal_test]=../libcrypto
|
||||
|
||||
SOURCE[modes_internal_test]=modes_internal_test.c testutil.c test_main_custom.c
|
||||
IF[{- !$disabled{shared} -}]
|
||||
SOURCE[modes_internal_test]= \
|
||||
{- rebase_files("../crypto", $target{cpuid_asm_src}); -} \
|
||||
../crypto/cryptlib.c
|
||||
ENDIF
|
||||
INCLUDE[modes_internal_test]=.. ../include
|
||||
DEPEND[modes_internal_test]=../libcrypto
|
||||
|
||||
# The reason for the huge amount of directly included x509v3 files
|
||||
# is that a table that is checked by x509_internal_test refers to
|
||||
# structures that are spread all over those files.
|
||||
SOURCE[x509_internal_test]=x509_internal_test.c testutil.c test_main.c
|
||||
IF[{- !$disabled{shared} -}]
|
||||
SOURCE[x509_internal_test]= ../crypto/x509v3/v3_bitst.c \
|
||||
../crypto/x509v3/v3_ia5.c ../crypto/x509v3/v3_skey.c \
|
||||
../crypto/x509v3/v3_pku.c ../crypto/x509v3/v3_alt.c \
|
||||
../crypto/x509v3/v3_bcons.c ../crypto/x509v3/v3_int.c \
|
||||
../crypto/x509v3/v3_cpols.c ../crypto/x509v3/v3_akey.c \
|
||||
../crypto/x509v3/v3_crld.c ../crypto/x509v3/v3_utl.c \
|
||||
../crypto/x509v3/v3_extku.c ../crypto/x509v3/v3_enum.c \
|
||||
../crypto/x509v3/v3_sxnet.c ../crypto/x509v3/v3_info.c \
|
||||
../crypto/x509v3/v3_addr.c ../crypto/x509v3/v3_asid.c \
|
||||
../crypto/x509v3/v3_pcons.c ../crypto/x509v3/v3_pmaps.c \
|
||||
../crypto/x509v3/v3_pci.c ../crypto/x509v3/v3_ncons.c \
|
||||
../crypto/x509v3/v3_tlsf.c ../crypto/ocsp/v3_ocsp.c \
|
||||
../crypto/ct/ct_x509v3.c ../crypto/asn1/a_strex.c
|
||||
ENDIF
|
||||
INCLUDE[x509_internal_test]=.. ../include
|
||||
DEPEND[x509_internal_test]=../libcrypto
|
||||
|
||||
SOURCE[mdc2_internal_test]=mdc2_internal_test.c testutil.c test_main.c
|
||||
INCLUDE[mdc2_internal_test]=.. ../include
|
||||
|
@ -12,12 +12,14 @@ use OpenSSL::Test::Utils;
|
||||
|
||||
setup("test_internal");
|
||||
|
||||
my $shared_windows = $^O eq 'MSWin32' && !disabled("shared");
|
||||
|
||||
my %known_internal_tests =
|
||||
( mdc2_internal_test => !disabled("mdc2"),
|
||||
poly1305_internal_test => !disabled("poly1305"),
|
||||
modes_internal_test => 1,
|
||||
asn1_internal_test => 1,
|
||||
x509_internal_test => 1 );
|
||||
poly1305_internal_test => !disabled("poly1305") && !$shared_windows,
|
||||
modes_internal_test => !$shared_windows,
|
||||
asn1_internal_test => !$shared_windows,
|
||||
x509_internal_test => !$shared_windows );
|
||||
|
||||
plan tests => scalar keys %known_internal_tests;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user