Re: [PATCH net-next v8 24/24] testing/selftest: add test tool and scripts for ovpn module

From: Antonio Quartulli
Date: Fri Oct 04 2024 - 05:50:46 EST


Hi,

On 03/10/2024 00:35, Shuah Khan wrote:
On 10/2/24 03:02, Antonio Quartulli wrote:
The ovpn-cli tool can be compiled and used as selftest for the ovpn
kernel module.


Does this test load ovpn module before running tests? If so does
it unload the modules after tests are complete?

The module is self loaded upon first netlink API call.

Therefore I presume I should take care of unloading too.


It implementes the netlink API and can thus be integrated in any

Spelling - implements

ACK


script for more automated testing.

Along with the tool, 2 scripts are added that perform basic
functionality tests by means of network namespaces.

The scripts can be performed in sequence by running run.sh

Cc: shuah@xxxxxxxxxx
Cc: linux-kselftest@xxxxxxxxxxxxxxx
Signed-off-by: Antonio Quartulli <antonio@xxxxxxxxxxx>
---
  MAINTAINERS                                       |    1 +
  tools/testing/selftests/Makefile                  |    1 +
  tools/testing/selftests/net/ovpn/.gitignore       |    2 +
  tools/testing/selftests/net/ovpn/Makefile         |   18 +
  tools/testing/selftests/net/ovpn/config           |    8 +
  tools/testing/selftests/net/ovpn/data-test-tcp.sh |    9 +
  tools/testing/selftests/net/ovpn/data-test.sh     |  153 ++
  tools/testing/selftests/net/ovpn/data64.key       |    5 +
  tools/testing/selftests/net/ovpn/float-test.sh    |  118 ++
  tools/testing/selftests/net/ovpn/ovpn-cli.c       | 1822 +++++++++++++++++++++
  tools/testing/selftests/net/ovpn/tcp_peers.txt    |    5 +
  tools/testing/selftests/net/ovpn/udp_peers.txt    |    5 +
  12 files changed, 2147 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index f753060d4e2467a786778ddd4f835861a603ce02..ffd997cc6a1f1fbc5bc954b585bc15ef7bf2486a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17457,6 +17457,7 @@ T:    git https://github.com/OpenVPN/linux-kernel-ovpn.git
  F:    drivers/net/ovpn/
  F:    include/uapi/linux/ovpn.h
  F:    Documentation/netlink/spec/ovpn.yaml
+F:    tools/testing/selftests/net/ovpn/
  P54 WIRELESS DRIVER
  M:    Christian Lamparter <chunkeey@xxxxxxxxxxxxxx>
diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
index b38199965f99014f3e2636fe8d705972f2c0d148..3ae2dd6492ca70d5e317c6e5b4e2560b060e3214 100644
--- a/tools/testing/selftests/Makefile
+++ b/tools/testing/selftests/Makefile
@@ -68,6 +68,7 @@ TARGETS += net/hsr
  TARGETS += net/mptcp
  TARGETS += net/netfilter
  TARGETS += net/openvswitch
+TARGETS += net/ovpn
  TARGETS += net/packetdrill
  TARGETS += net/rds
  TARGETS += net/tcp_ao
diff --git a/tools/testing/selftests/net/ovpn/.gitignore b/tools/testing/selftests/net/ovpn/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ee44c081ca7c089933659689303c303a9fa9713b
--- /dev/null
+++ b/tools/testing/selftests/net/ovpn/.gitignore
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0+
+ovpn-cli
diff --git a/tools/testing/selftests/net/ovpn/Makefile b/tools/testing/selftests/net/ovpn/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..65e23eb0ba86d31aa365b08a8c3468dc56a0d1a4
--- /dev/null
+++ b/tools/testing/selftests/net/ovpn/Makefile
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2020-2024 OpenVPN, Inc.
+#
+CFLAGS = -Wall -I../../../../../usr/include
+CFLAGS += $(shell pkg-config --cflags libnl-3.0 libnl-genl-3.0)
+
+LDFLAGS = -lmbedtls -lmbedcrypto
+LDFLAGS += $(shell pkg-config --libs libnl-3.0 libnl-genl-3.0)
+
+ovpn-cli: ovpn-cli.c
+    $(CC) -o ovpn-cli ovpn-cli.c $(CFLAGS) $(LDFLAGS)
+
+TEST_PROGS = data-test.sh \
+    data-test-tcp.sh \
+    float-test.sh
+TEST_GEN_FILES = ovpn-cli

Can you make sure "make kselftest-install" installs all
of the scripts and executables necessary to run this test?

ok, will do!
Thanks for your feedback!


Regards,


thanks,
-- Shuah

--
Antonio Quartulli
OpenVPN Inc.