diff options
author | Vitaly Chikunov <vt@altlinux.org> | 2019-02-15 22:18:08 +0300 |
---|---|---|
committer | Vitaly Chikunov <vt@altlinux.org> | 2019-02-15 23:21:56 +0300 |
commit | 32da2bf229ba8bebf2c6f6ac1fc016c49e867488 (patch) | |
tree | bba75e3d7c0bb4e322ee55555914cae7182d1ff1 | |
parent | b629c446ff7246e526999bfdd2657e774faf306f (diff) | |
download | gost-engine-32da2bf229ba8bebf2c6f6ac1fc016c49e867488.zip gost-engine-32da2bf229ba8bebf2c6f6ac1fc016c49e867488.tar.gz gost-engine-32da2bf229ba8bebf2c6f6ac1fc016c49e867488.tar.bz2 |
tests: Load just built engine from the output directory
Define ENGINE_DIR for all binary tests. Instead of auto-loading engine
using `example.conf' load it directly from the OUTPUT_DIRECTORY for
curves tests.
-rw-r--r-- | CMakeLists.txt | 12 | ||||
-rw-r--r-- | test_curves.c | 11 | ||||
-rw-r--r-- | test_params.c | 9 | ||||
-rw-r--r-- | test_sign.c | 9 |
4 files changed, 39 insertions, 2 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 198d746..0538af5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -182,6 +182,18 @@ endif() add_executable(sign benchmark/sign.c) target_link_libraries(sign gost_engine gost_core ${OPENSSL_CRYPTO_LIBRARY} ${CLOCK_GETTIME_LIB}) +# All that may need to load just built engine will have path to it defined. +set(BINARY_TESTS_TARGETS + test_curves + test_params + test_sign + test_context + test_grasshopper + test_keyexpimp + test_gost89 + ) +set_property(TARGET ${BINARY_TESTS_TARGETS} APPEND PROPERTY COMPILE_DEFINITIONS ENGINE_DIR="${OUTPUT_DIRECTORY}") + add_library(gost_core STATIC ${GOST_LIB_SOURCE_FILES}) set_target_properties(gost_core PROPERTIES POSITION_INDEPENDENT_CODE ON) diff --git a/test_curves.c b/test_curves.c index 28ccce4..973307b 100644 --- a/test_curves.c +++ b/test_curves.c @@ -222,11 +222,22 @@ int main(int argc, char **argv) { int ret = 0; + setenv("OPENSSL_ENGINES", ENGINE_DIR, 0); + OPENSSL_add_all_algorithms_conf(); + ERR_load_crypto_strings(); + ENGINE *eng; + T(eng = ENGINE_by_id("gost")); + T(ENGINE_init(eng)); + T(ENGINE_set_default(eng, ENGINE_METHOD_ALL)); + struct test_curve *tc; for (tc = test_curves; tc->nid; tc++) { ret |= parameter_test(tc); } + ENGINE_finish(eng); + ENGINE_free(eng); + if (ret) printf(cDRED "= Some tests FAILED!\n" cNORM); else diff --git a/test_params.c b/test_params.c index 3e12d5a..f7d4b90 100644 --- a/test_params.c +++ b/test_params.c @@ -1093,9 +1093,13 @@ int main(int argc, char **argv) { int ret = 0; - setenv("OPENSSL_CONF", "../example.conf", 0); + setenv("OPENSSL_ENGINES", ENGINE_DIR, 0); OPENSSL_add_all_algorithms_conf(); ERR_load_crypto_strings(); + ENGINE *eng; + T(eng = ENGINE_by_id("gost")); + T(ENGINE_init(eng)); + T(ENGINE_set_default(eng, ENGINE_METHOD_ALL)); struct test_param **tpp; for (tpp = test_params; *tpp; tpp++) @@ -1105,5 +1109,8 @@ int main(int argc, char **argv) for (tc = test_certs; tc->cert; tc++) ret |= test_cert(tc); + ENGINE_finish(eng); + ENGINE_free(eng); + return ret; } diff --git a/test_sign.c b/test_sign.c index 4a63f42..1d00581 100644 --- a/test_sign.c +++ b/test_sign.c @@ -236,14 +236,21 @@ int main(int argc, char **argv) { int ret = 0; - setenv("OPENSSL_CONF", "../example.conf", 0); + setenv("OPENSSL_ENGINES", ENGINE_DIR, 0); OPENSSL_add_all_algorithms_conf(); ERR_load_crypto_strings(); + ENGINE *eng; + T(eng = ENGINE_by_id("gost")); + T(ENGINE_init(eng)); + T(ENGINE_set_default(eng, ENGINE_METHOD_ALL)); struct test_sign *sp; for (sp = test_signs; sp->name; sp++) ret |= test_sign(sp); + ENGINE_finish(eng); + ENGINE_free(eng); + if (ret) printf(cDRED "= Some tests FAILED!\n" cNORM); else |