build: fix `make distcheck`

Need to check if `unit.test` was run from make process and set
different path to run unit test executable.

Writing files in the dist is not allowed during distcheck so write
files to subdirectory used build during distmake
pull/3725/head
Elms 2021-02-05 07:25:07 -08:00
parent 714aa97490
commit 93ea355217
4 changed files with 38 additions and 21 deletions

View File

@ -23,11 +23,15 @@ noinst_DATA =
SUBDIRS_OPT = SUBDIRS_OPT =
DIST_SUBDIRS_OPT = DIST_SUBDIRS_OPT =
DISTCHECK_CONFIGURE_FLAGS = CPPFLAGS=-DDISTCHECK_BUILD
#includes additional rules from aminclude.am #includes additional rules from aminclude.am
@INC_AMINCLUDE@ @INC_AMINCLUDE@
DISTCLEANFILES+= aminclude.am DISTCLEANFILES+= aminclude.am
CLEANFILES+= cert.der \ CLEANFILES+= ecc-key.der \
ecc-public-key.der \
cert.der \
cert.pem \ cert.pem \
certecc.der \ certecc.der \
certecc.pem \ certecc.pem \

View File

@ -1,9 +1,15 @@
#!/bin/sh #!/bin/sh
DIRNAME="$(dirname "$0")" # for makefile use PWD as it is safe to assume location of execution
if [ "$MAKELEVEL" != "" ]; then
DIRNAME=$PWD;
else
DIRNAME="$(dirname "$0")/..";
fi
bwrap_path="$(command -v bwrap)" bwrap_path="$(command -v bwrap)"
if [ -n "$bwrap_path" ]; then if [ -n "$bwrap_path" ]; then
exec "$bwrap_path" --unshare-net --dev-bind / / "$DIRNAME/../tests/unit.test" "$@" exec "$bwrap_path" --unshare-net --dev-bind / / "$DIRNAME/tests/unit.test" "$@"
else else
exec "$DIRNAME/../tests/unit.test" "$@" exec "$DIRNAME/tests/unit.test" "$@"
fi fi

View File

@ -5,7 +5,6 @@
if BUILD_TESTS if BUILD_TESTS
check_PROGRAMS += testsuite/testsuite.test check_PROGRAMS += testsuite/testsuite.test
noinst_PROGRAMS += testsuite/testsuite.test
testsuite_testsuite_test_SOURCES = \ testsuite_testsuite_test_SOURCES = \
wolfcrypt/test/test.c \ wolfcrypt/test/test.c \
examples/client/client.c \ examples/client/client.c \

View File

@ -11647,6 +11647,14 @@ byte GetEntropy(ENTROPY_CMD cmd, byte* out)
#endif #endif
#define CERT_ROOT CERT_PREFIX "certs" CERT_PATH_SEP #define CERT_ROOT CERT_PREFIX "certs" CERT_PATH_SEP
#ifdef DISTCHECK_BUILD
/* This is the path used during distcheck by autotools.
* Using a temp directory passed in would be more flexible */
#define CERT_TEMPDIR "./_build/sub/"
#else
#define CERT_TEMPDIR CERT_PREFIX
#endif
/* Generated Test Certs */ /* Generated Test Certs */
#if !defined(USE_CERT_BUFFERS_1024) && !defined(USE_CERT_BUFFERS_2048) && \ #if !defined(USE_CERT_BUFFERS_1024) && !defined(USE_CERT_BUFFERS_2048) && \
!defined(USE_CERT_BUFFERS_3072) && !defined(USE_CERT_BUFFERS_4096) !defined(USE_CERT_BUFFERS_3072) && !defined(USE_CERT_BUFFERS_4096)
@ -11738,44 +11746,44 @@ byte GetEntropy(ENTROPY_CMD cmd, byte* out)
#ifndef NO_WRITE_TEMP_FILES #ifndef NO_WRITE_TEMP_FILES
#ifdef HAVE_ECC #ifdef HAVE_ECC
#ifdef WOLFSSL_CERT_GEN #ifdef WOLFSSL_CERT_GEN
static const char* certEccPemFile = CERT_PREFIX "certecc.pem"; static const char* certEccPemFile = CERT_TEMPDIR "certecc.pem";
#endif #endif
#if defined(WOLFSSL_CERT_GEN) && !defined(NO_RSA) #if defined(WOLFSSL_CERT_GEN) && !defined(NO_RSA)
static const char* certEccRsaPemFile = CERT_PREFIX "certeccrsa.pem"; static const char* certEccRsaPemFile = CERT_TEMPDIR "certeccrsa.pem";
static const char* certEccRsaDerFile = CERT_PREFIX "certeccrsa.der"; static const char* certEccRsaDerFile = CERT_TEMPDIR "certeccrsa.der";
#endif #endif
static const char* eccCaKeyPemFile = CERT_PREFIX "ecc-key.pem"; static const char* eccCaKeyPemFile = CERT_TEMPDIR "ecc-key.pem";
static const char* eccPubKeyDerFile = CERT_PREFIX "ecc-public-key.der"; static const char* eccPubKeyDerFile = CERT_TEMPDIR "ecc-public-key.der";
static const char* eccCaKeyTempFile = CERT_PREFIX "ecc-key.der"; static const char* eccCaKeyTempFile = CERT_TEMPDIR "ecc-key.der";
#ifdef HAVE_PKCS8 #ifdef HAVE_PKCS8
static const char* eccPkcs8KeyDerFile = CERT_PREFIX "ecc-key-pkcs8.der"; static const char* eccPkcs8KeyDerFile = CERT_TEMPDIR "ecc-key-pkcs8.der";
#endif #endif
#if defined(WOLFSSL_CERT_GEN) || \ #if defined(WOLFSSL_CERT_GEN) || \
(defined(WOLFSSL_CERT_EXT) && defined(WOLFSSL_TEST_CERT)) (defined(WOLFSSL_CERT_EXT) && defined(WOLFSSL_TEST_CERT))
static const char* certEccDerFile = CERT_PREFIX "certecc.der"; static const char* certEccDerFile = CERT_TEMPDIR "certecc.der";
#endif #endif
#endif /* HAVE_ECC */ #endif /* HAVE_ECC */
#ifndef NO_RSA #ifndef NO_RSA
#if defined(WOLFSSL_CERT_GEN) || \ #if defined(WOLFSSL_CERT_GEN) || \
(defined(WOLFSSL_CERT_EXT) && defined(WOLFSSL_TEST_CERT)) (defined(WOLFSSL_CERT_EXT) && defined(WOLFSSL_TEST_CERT))
static const char* otherCertDerFile = CERT_PREFIX "othercert.der"; static const char* otherCertDerFile = CERT_TEMPDIR "othercert.der";
static const char* certDerFile = CERT_PREFIX "cert.der"; static const char* certDerFile = CERT_TEMPDIR "cert.der";
#endif #endif
#ifdef WOLFSSL_CERT_GEN #ifdef WOLFSSL_CERT_GEN
static const char* otherCertPemFile = CERT_PREFIX "othercert.pem"; static const char* otherCertPemFile = CERT_TEMPDIR "othercert.pem";
static const char* certPemFile = CERT_PREFIX "cert.pem"; static const char* certPemFile = CERT_TEMPDIR "cert.pem";
#endif #endif
#ifdef WOLFSSL_CERT_REQ #ifdef WOLFSSL_CERT_REQ
static const char* certReqDerFile = CERT_PREFIX "certreq.der"; static const char* certReqDerFile = CERT_TEMPDIR "certreq.der";
static const char* certReqPemFile = CERT_PREFIX "certreq.pem"; static const char* certReqPemFile = CERT_TEMPDIR "certreq.pem";
#endif #endif
#endif /* !NO_RSA */ #endif /* !NO_RSA */
#if !defined(NO_RSA) || !defined(NO_DSA) #if !defined(NO_RSA) || !defined(NO_DSA)
#ifdef WOLFSSL_KEY_GEN #ifdef WOLFSSL_KEY_GEN
static const char* keyDerFile = CERT_PREFIX "key.der"; static const char* keyDerFile = CERT_TEMPDIR "key.der";
static const char* keyPemFile = CERT_PREFIX "key.pem"; static const char* keyPemFile = CERT_TEMPDIR "key.pem";
#endif #endif
#endif #endif