aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/unit_tests/openvpn/test_argv.c2
-rw-r--r--tests/unit_tests/openvpn/test_auth_token.c2
-rw-r--r--tests/unit_tests/openvpn/test_buffer.c2
-rw-r--r--tests/unit_tests/openvpn/test_common.h40
-rw-r--r--tests/unit_tests/openvpn/test_crypto.c2
-rw-r--r--tests/unit_tests/openvpn/test_cryptoapi.c2
-rw-r--r--tests/unit_tests/openvpn/test_misc.c2
-rw-r--r--tests/unit_tests/openvpn/test_ncp.c2
-rw-r--r--tests/unit_tests/openvpn/test_packet_id.c2
-rw-r--r--tests/unit_tests/openvpn/test_pkcs11.c3
-rw-r--r--tests/unit_tests/openvpn/test_pkt.c2
-rw-r--r--tests/unit_tests/openvpn/test_provider.c3
-rw-r--r--tests/unit_tests/openvpn/test_ssl.c3
-rw-r--r--tests/unit_tests/openvpn/test_tls_crypt.c2
14 files changed, 69 insertions, 0 deletions
diff --git a/tests/unit_tests/openvpn/test_argv.c b/tests/unit_tests/openvpn/test_argv.c
index 1b18ac0..33b3dec 100644
--- a/tests/unit_tests/openvpn/test_argv.c
+++ b/tests/unit_tests/openvpn/test_argv.c
@@ -12,6 +12,7 @@
#include "argv.h"
#include "buffer.h"
+#include "test_common.h"
/* Defines for use in the tests and the mock parse_line() */
#define PATH1 "/s p a c e"
@@ -252,6 +253,7 @@ argv_insert_head__non_empty_argv__head_added(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test(argv_printf__multiple_spaces_in_format__parsed_as_one),
cmocka_unit_test(argv_printf_cat__multiple_spaces_in_format__parsed_as_one),
diff --git a/tests/unit_tests/openvpn/test_auth_token.c b/tests/unit_tests/openvpn/test_auth_token.c
index a027330..3a3cb69 100644
--- a/tests/unit_tests/openvpn/test_auth_token.c
+++ b/tests/unit_tests/openvpn/test_auth_token.c
@@ -35,6 +35,7 @@
#include <cmocka.h>
#include "auth_token.c"
+#include "test_common.h"
struct test_context {
struct tls_multi multi;
@@ -407,6 +408,7 @@ auth_token_test_key_load(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test_setup_teardown(auth_token_basic_test, setup, teardown),
cmocka_unit_test_setup_teardown(auth_token_fail_invalid_key, setup, teardown),
diff --git a/tests/unit_tests/openvpn/test_buffer.c b/tests/unit_tests/openvpn/test_buffer.c
index ee84c1f..52ffb54 100644
--- a/tests/unit_tests/openvpn/test_buffer.c
+++ b/tests/unit_tests/openvpn/test_buffer.c
@@ -32,6 +32,7 @@
#include "buffer.h"
#include "buffer.c"
+#include "test_common.h"
static void
test_buffer_strprefix(void **state)
@@ -356,6 +357,7 @@ test_character_class(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test(test_buffer_strprefix),
cmocka_unit_test(test_buffer_printf_catrunc),
diff --git a/tests/unit_tests/openvpn/test_common.h b/tests/unit_tests/openvpn/test_common.h
new file mode 100644
index 0000000..50e16d6
--- /dev/null
+++ b/tests/unit_tests/openvpn/test_common.h
@@ -0,0 +1,40 @@
+/*
+ * OpenVPN -- An application to securely tunnel IP networks
+ * over a single UDP port, with support for SSL/TLS-based
+ * session authentication and key exchange,
+ * packet encryption, packet authentication, and
+ * packet compression.
+ *
+ * Copyright (C) 2016-2021 Fox Crypto B.V. <openvpn@foxcrypto.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#include <stdio.h>
+#include <setjmp.h>
+#include <cmocka.h>
+
+/**
+ * Sets up the environment for unit tests like making both stderr and stdout
+ * non-buffered to avoid messages getting lost if the program exits early.
+ *
+ * This has a openvpn prefix to avoid confusion with cmocka's unit_test_setup_*
+ * methods
+ */
+void
+openvpn_unit_test_setup()
+{
+ assert_int_equal(setvbuf(stdout, NULL, _IONBF, BUFSIZ), 0);
+ assert_int_equal(setvbuf(stderr, NULL, _IONBF, BUFSIZ), 0);
+}
diff --git a/tests/unit_tests/openvpn/test_crypto.c b/tests/unit_tests/openvpn/test_crypto.c
index 08c9c44..01c16c9 100644
--- a/tests/unit_tests/openvpn/test_crypto.c
+++ b/tests/unit_tests/openvpn/test_crypto.c
@@ -39,6 +39,7 @@
#include "ssl_backend.h"
#include "mss.h"
+#include "test_common.h"
static const char testtext[] = "Dummy text to test PEM encoding";
@@ -445,6 +446,7 @@ test_mssfix_mtu_calculation(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test(crypto_pem_encode_decode_loopback),
cmocka_unit_test(crypto_translate_cipher_names),
diff --git a/tests/unit_tests/openvpn/test_cryptoapi.c b/tests/unit_tests/openvpn/test_cryptoapi.c
index d90bfc3..e0479a8 100644
--- a/tests/unit_tests/openvpn/test_cryptoapi.c
+++ b/tests/unit_tests/openvpn/test_cryptoapi.c
@@ -40,6 +40,7 @@
#include <openssl/core_names.h>
#include <openssl/evp.h>
#include <openssl/pkcs12.h>
+#include "test_common.h"
#include <cryptoapi.h>
#include <cryptoapi.c> /* pull-in the whole file to test static functions */
@@ -486,6 +487,7 @@ test_parse_hexstring(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test(test_parse_hexstring),
cmocka_unit_test(import_certs),
diff --git a/tests/unit_tests/openvpn/test_misc.c b/tests/unit_tests/openvpn/test_misc.c
index 43ae96b..193f131 100644
--- a/tests/unit_tests/openvpn/test_misc.c
+++ b/tests/unit_tests/openvpn/test_misc.c
@@ -36,6 +36,7 @@
#include "ssl_util.h"
#include "options_util.h"
+#include "test_common.h"
static void
test_compat_lzo_string(void **state)
@@ -117,5 +118,6 @@ const struct CMUnitTest misc_tests[] = {
int
main(void)
{
+ openvpn_unit_test_setup();
return cmocka_run_group_tests(misc_tests, NULL, NULL);
}
diff --git a/tests/unit_tests/openvpn/test_ncp.c b/tests/unit_tests/openvpn/test_ncp.c
index 72a1c3b..ecf1e39 100644
--- a/tests/unit_tests/openvpn/test_ncp.c
+++ b/tests/unit_tests/openvpn/test_ncp.c
@@ -35,6 +35,7 @@
#include <cmocka.h>
#include "ssl_ncp.c"
+#include "test_common.h"
/* Defines for use in the tests and the mock parse_line() */
@@ -272,6 +273,7 @@ const struct CMUnitTest ncp_tests[] = {
int
main(void)
{
+ openvpn_unit_test_setup();
#if defined(ENABLE_CRYPTO_OPENSSL)
OpenSSL_add_all_algorithms();
#endif
diff --git a/tests/unit_tests/openvpn/test_packet_id.c b/tests/unit_tests/openvpn/test_packet_id.c
index 2a2a973..ff3f788 100644
--- a/tests/unit_tests/openvpn/test_packet_id.c
+++ b/tests/unit_tests/openvpn/test_packet_id.c
@@ -35,6 +35,7 @@
#include "packet_id.h"
#include "reliable.h"
+#include "test_common.h"
struct test_packet_id_write_data {
struct {
@@ -273,6 +274,7 @@ test_copy_acks_to_lru(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test_setup_teardown(test_packet_id_write_short,
test_packet_id_write_setup,
diff --git a/tests/unit_tests/openvpn/test_pkcs11.c b/tests/unit_tests/openvpn/test_pkcs11.c
index b6c130e..81cdf88 100644
--- a/tests/unit_tests/openvpn/test_pkcs11.c
+++ b/tests/unit_tests/openvpn/test_pkcs11.c
@@ -37,11 +37,13 @@
#include <setjmp.h>
#include <cmocka.h>
+#include "test_common.h"
#define token_name "Test Token"
#define PIN "12345"
#define HASHSIZE 20
+
struct management *management; /* global */
/* replacement for crypto_print_openssl_errors() */
@@ -459,6 +461,7 @@ test_tls_ctx_use_pkcs11__management(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test_setup_teardown(test_pkcs11_ids, setup_pkcs11,
teardown_pkcs11),
diff --git a/tests/unit_tests/openvpn/test_pkt.c b/tests/unit_tests/openvpn/test_pkt.c
index 7f05184..1084d66 100644
--- a/tests/unit_tests/openvpn/test_pkt.c
+++ b/tests/unit_tests/openvpn/test_pkt.c
@@ -33,6 +33,7 @@
#include <string.h>
#include <setjmp.h>
#include <cmocka.h>
+#include "test_common.h"
#include "crypto.h"
#include "options.h"
@@ -628,6 +629,7 @@ test_generate_reset_packet_tls_auth(void **ut_state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test(test_tls_decrypt_lite_none),
cmocka_unit_test(test_tls_decrypt_lite_auth),
diff --git a/tests/unit_tests/openvpn/test_provider.c b/tests/unit_tests/openvpn/test_provider.c
index 335fca2..94deab6 100644
--- a/tests/unit_tests/openvpn/test_provider.c
+++ b/tests/unit_tests/openvpn/test_provider.c
@@ -40,6 +40,8 @@
#include <openssl/core_names.h>
#include <openssl/evp.h>
+#include "test_common.h"
+
struct management *management; /* global */
static int mgmt_callback_called;
@@ -119,6 +121,7 @@ load_pubkey(const char *pem)
static void
init_test()
{
+ openvpn_unit_test_setup();
prov[0] = OSSL_PROVIDER_load(NULL, "default");
OSSL_PROVIDER_add_builtin(NULL, prov_name, xkey_provider_init);
prov[1] = OSSL_PROVIDER_load(NULL, prov_name);
diff --git a/tests/unit_tests/openvpn/test_ssl.c b/tests/unit_tests/openvpn/test_ssl.c
index d0c3df7..18b9ec8 100644
--- a/tests/unit_tests/openvpn/test_ssl.c
+++ b/tests/unit_tests/openvpn/test_ssl.c
@@ -43,6 +43,7 @@
#include "mss.h"
#include "ssl_verify_backend.h"
#include "win32.h"
+#include "test_common.h"
/* Mock function to be allowed to include win32.c which is required for
* getting the temp directory */
@@ -122,6 +123,8 @@ crypto_pem_encode_certificate(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
+
const struct CMUnitTest tests[] = {
cmocka_unit_test(crypto_pem_encode_certificate)
};
diff --git a/tests/unit_tests/openvpn/test_tls_crypt.c b/tests/unit_tests/openvpn/test_tls_crypt.c
index 465543a..a01fbe5 100644
--- a/tests/unit_tests/openvpn/test_tls_crypt.c
+++ b/tests/unit_tests/openvpn/test_tls_crypt.c
@@ -34,6 +34,7 @@
#include <setjmp.h>
#include <cmocka.h>
+#include "test_common.h"
#include "tls_crypt.c"
/* Define this function here as dummy since including the ssl_*.c files
@@ -673,6 +674,7 @@ test_tls_crypt_v2_write_client_key_file_metadata(void **state)
int
main(void)
{
+ openvpn_unit_test_setup();
const struct CMUnitTest tests[] = {
cmocka_unit_test_setup_teardown(tls_crypt_loopback,
test_tls_crypt_setup,