]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Build unit tests in mingw Windows build
authorSelva Nair <selva.nair@gmail.com>
Wed, 8 Feb 2023 00:59:25 +0000 (19:59 -0500)
committerGert Doering <gert@greenie.muc.de>
Fri, 10 Feb 2023 21:02:18 +0000 (22:02 +0100)
- Minor changes to the build system to include some
  dependencies for Windows build

- test_tls_crypt not built as it will pull in win32.c and
  its dependencies

- If cross-compiling, "make check" will only build the tests but not
  run any. Copy to Windows and run manually. Executables are in
  <buid-dir>/tests/unit_tests/openvpn/.libs/ and these depend on
  cmocka.dll in addition to openssl libs that some tests link to.

  Building with mingw on Windows should run the tests (untested).

v2: networking_testdriver was mistakenly enabled to run, while
originally it was only set to build. Corrected.

v3: exclude check_engine_keys.sh when cross-compiling
As suggested by Arne Schwabe <arne@rfc2549.org>

Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: <20230208005925.393200-1-selva.nair@gmail.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26188.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
configure.ac
tests/Makefile.am
tests/unit_tests/engine-key/Makefile.am
tests/unit_tests/example_test/Makefile.am
tests/unit_tests/openvpn/Makefile.am

index 95d795c33436ed89567480fbad7f772a0bd0bdaf..66ba6f38d8714d8eccb9b9a480fb1c633e8460d1 100644 (file)
@@ -364,6 +364,8 @@ case "$host" in
                ;;
 esac
 
+AM_CONDITIONAL([CROSS_COMPILING], test "${cross_compiling}" = "yes")
+
 PKG_PROG_PKG_CONFIG
 AC_PROG_CPP
 AC_PROG_INSTALL
index 87dd7e17b6dfb01770259c368d933609d7560b55..a46f2573d290a1d968b4f1bb7a05cd5edff82065 100644 (file)
@@ -14,10 +14,12 @@ MAINTAINERCLEANFILES = \
 
 SUBDIRS = unit_tests
 
+if !WIN32
 test_scripts = t_client.sh t_lpback.sh t_cltsrv.sh
 if HAVE_SITNL
 test_scripts += t_net.sh
 endif
+endif
 
 TESTS_ENVIRONMENT = top_srcdir="$(top_srcdir)"
 TESTS = $(test_scripts)
index 246222514ae831e5a033003eac833c1bf7a38ec7..0c28885766d8330d465b1da2d316fcd412d16f82 100644 (file)
@@ -12,7 +12,9 @@ TESTS_ENVIRONMENT = srcdir="$(abs_srcdir)"; \
        top_srcdir="$(top_srcdir)"; \
        export srcdir builddir top_builddir top_srcdir;
 
+if !CROSS_COMPILING
 TESTS = check_engine_keys.sh
+endif
 check_engine_keys.sh: $(conffiles)
 
 CLEANFILES = \
index 04a5ad3564c2644cdda14e0d268204f93a13e6c9..24eb0ba18b66e87509dcc7b8945ad237b05ade25 100644 (file)
@@ -2,7 +2,9 @@ AUTOMAKE_OPTIONS = foreign
 
 check_PROGRAMS = example_testdriver example2_testdriver
 
+if !CROSS_COMPILING
 TESTS = $(check_PROGRAMS)
+endif
 
 example_testdriver_CFLAGS  = @TEST_CFLAGS@
 example_testdriver_LDFLAGS = @TEST_LDFLAGS@
index 7720a85db751aa8d7103c09530fb66558354068e..8d2386e08bff23ae32d36cd563df673a4aefd6b0 100644 (file)
@@ -7,14 +7,22 @@ test_binaries += argv_testdriver buffer_testdriver
 endif
 
 test_binaries += crypto_testdriver packet_id_testdriver auth_token_testdriver ncp_testdriver misc_testdriver \
-    pkt_testdriver
+       pkt_testdriver
 if HAVE_LD_WRAP_SUPPORT
+if !WIN32
 test_binaries += tls_crypt_testdriver
 endif
+endif
 
 test_binaries += provider_testdriver
 
+if WIN32
+LDADD = -lws2_32
+endif
+
+if !CROSS_COMPILING
 TESTS = $(test_binaries)
+endif
 check_PROGRAMS = $(test_binaries)
 
 if HAVE_SITNL
@@ -31,12 +39,14 @@ argv_testdriver_SOURCES = test_argv.c mock_msg.c mock_msg.h \
        mock_get_random.c \
        $(openvpn_srcdir)/platform.c \
        $(openvpn_srcdir)/buffer.c \
+       $(openvpn_srcdir)/win32-util.c \
        $(openvpn_srcdir)/argv.c
 
 buffer_testdriver_CFLAGS  = @TEST_CFLAGS@ -I$(openvpn_srcdir) -I$(compat_srcdir)
 buffer_testdriver_LDFLAGS = @TEST_LDFLAGS@ -L$(openvpn_srcdir) -Wl,--wrap=parse_line
 buffer_testdriver_SOURCES = test_buffer.c mock_msg.c mock_msg.h \
        mock_get_random.c \
+       $(openvpn_srcdir)/win32-util.c \
        $(openvpn_srcdir)/platform.c
 
 crypto_testdriver_CFLAGS  = @TEST_CFLAGS@ \
@@ -51,6 +61,7 @@ crypto_testdriver_SOURCES = test_crypto.c mock_msg.c mock_msg.h \
        $(openvpn_srcdir)/packet_id.c \
        $(openvpn_srcdir)/platform.c \
        $(openvpn_srcdir)/mtu.c \
+       $(openvpn_srcdir)/win32-util.c \
        $(openvpn_srcdir)/mss.c
 
 packet_id_testdriver_CFLAGS  = @TEST_CFLAGS@ \
@@ -63,14 +74,14 @@ packet_id_testdriver_SOURCES = test_packet_id.c mock_msg.c mock_msg.h \
        $(openvpn_srcdir)/packet_id.c \
        $(openvpn_srcdir)/platform.c \
        $(openvpn_srcdir)/reliable.c \
+       $(openvpn_srcdir)/win32-util.c \
        $(openvpn_srcdir)/session_id.c
 
-
 pkt_testdriver_CFLAGS  = @TEST_CFLAGS@ \
        -I$(openvpn_includedir) -I$(compat_srcdir) -I$(openvpn_srcdir)
 pkt_testdriver_LDFLAGS = @TEST_LDFLAGS@
 pkt_testdriver_SOURCES = test_pkt.c mock_msg.c mock_msg.h \
-$(openvpn_srcdir)/argv.c \
+       $(openvpn_srcdir)/argv.c \
        $(openvpn_srcdir)/base64.c \
        $(openvpn_srcdir)/buffer.c \
        $(openvpn_srcdir)/crypto.c \
@@ -84,9 +95,10 @@ $(openvpn_srcdir)/argv.c \
        $(openvpn_srcdir)/run_command.c \
        $(openvpn_srcdir)/session_id.c \
        $(openvpn_srcdir)/ssl_pkt.c \
+       $(openvpn_srcdir)/win32-util.c \
        $(openvpn_srcdir)/tls_crypt.c
 
-
+if !WIN32
 tls_crypt_testdriver_CFLAGS  = @TEST_CFLAGS@ \
        -I$(openvpn_includedir) -I$(compat_srcdir) -I$(openvpn_srcdir)
 tls_crypt_testdriver_LDFLAGS = @TEST_LDFLAGS@ \
@@ -106,6 +118,7 @@ tls_crypt_testdriver_SOURCES = test_tls_crypt.c mock_msg.c mock_msg.h \
        $(openvpn_srcdir)/packet_id.c \
        $(openvpn_srcdir)/platform.c \
        $(openvpn_srcdir)/run_command.c
+endif
 
 if HAVE_SITNL
 networking_testdriver_CFLAGS = @TEST_CFLAGS@ \
@@ -136,6 +149,7 @@ provider_testdriver_SOURCES = test_provider.c mock_msg.c \
        $(openvpn_srcdir)/buffer.c \
        $(openvpn_srcdir)/base64.c \
        mock_get_random.c \
+       $(openvpn_srcdir)/win32-util.c \
        $(openvpn_srcdir)/platform.c
 
 auth_token_testdriver_CFLAGS  = @TEST_CFLAGS@ \
@@ -152,6 +166,7 @@ auth_token_testdriver_SOURCES = test_auth_token.c mock_msg.c \
        $(openvpn_srcdir)/otime.c \
        $(openvpn_srcdir)/packet_id.c \
        $(openvpn_srcdir)/platform.c \
+       $(openvpn_srcdir)/win32-util.c \
        $(openvpn_srcdir)/base64.c
 
 
@@ -169,6 +184,8 @@ ncp_testdriver_SOURCES = test_ncp.c mock_msg.c \
        $(openvpn_srcdir)/otime.c \
        $(openvpn_srcdir)/packet_id.c \
        $(openvpn_srcdir)/platform.c \
+       $(openvpn_srcdir)/win32-util.c \
+       $(compat_srcdir)/compat-strsep.c \
        $(openvpn_srcdir)/ssl_util.c
 
 misc_testdriver_CFLAGS  = @TEST_CFLAGS@ \
@@ -177,8 +194,9 @@ misc_testdriver_CFLAGS  = @TEST_CFLAGS@ \
 misc_testdriver_LDFLAGS = @TEST_LDFLAGS@
 
 misc_testdriver_SOURCES = test_misc.c mock_msg.c \
-    mock_get_random.c \
+       mock_get_random.c \
        $(openvpn_srcdir)/buffer.c \
        $(openvpn_srcdir)/options_util.c \
        $(openvpn_srcdir)/ssl_util.c \
+       $(openvpn_srcdir)/win32-util.c \
        $(openvpn_srcdir)/platform.c