[Fuego] [PATCH v3] openvpn: Add test cases of service openvpn.
Wang Mingyu
wangmy at cn.fujitsu.com
Tue Nov 5 09:01:13 UTC 2019
This test set is used to check if the service openvpn can be started.
And check the process file, syslog file, tap0 can be created or not.
Signed-off-by: Wang Mingyu <wangmy at cn.fujitsu.com>
---
tests/Functional.openvpn/data/host-target.key | 22 ++++++
tests/Functional.openvpn/data/testcli.conf | 7 ++
tests/Functional.openvpn/data/testenv.sh | 18 +++++
tests/Functional.openvpn/data/testsrv.conf | 16 +++++
tests/Functional.openvpn/fuego_test.sh | 19 +++++
tests/Functional.openvpn/openvpn_test.sh | 9 +++
tests/Functional.openvpn/spec.json | 6 ++
.../tests/openvpn_genkey.sh | 26 +++++++
.../tests/openvpn_lport_client.sh | 66 +++++++++++++++++
.../tests/openvpn_lport_server.sh | 65 +++++++++++++++++
.../tests/openvpn_pid_client.sh | 62 ++++++++++++++++
.../tests/openvpn_pid_server.sh | 63 ++++++++++++++++
.../tests/openvpn_ps_client.sh | 67 +++++++++++++++++
.../tests/openvpn_ps_server.sh | 67 +++++++++++++++++
.../tests/openvpn_syslog-ng_client.sh | 71 +++++++++++++++++++
.../tests/openvpn_syslog-ng_server.sh | 69 ++++++++++++++++++
.../tests/openvpn_tun_client.sh | 56 +++++++++++++++
.../tests/openvpn_tun_server.sh | 56 +++++++++++++++
18 files changed, 765 insertions(+)
create mode 100644 tests/Functional.openvpn/data/host-target.key
create mode 100644 tests/Functional.openvpn/data/testcli.conf
create mode 100644 tests/Functional.openvpn/data/testenv.sh
create mode 100644 tests/Functional.openvpn/data/testsrv.conf
create mode 100644 tests/Functional.openvpn/fuego_test.sh
create mode 100755 tests/Functional.openvpn/openvpn_test.sh
create mode 100644 tests/Functional.openvpn/spec.json
create mode 100644 tests/Functional.openvpn/tests/openvpn_genkey.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_lport_client.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_lport_server.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_pid_client.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_pid_server.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_ps_client.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_ps_server.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_syslog-ng_client.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_syslog-ng_server.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_tun_client.sh
create mode 100644 tests/Functional.openvpn/tests/openvpn_tun_server.sh
diff --git a/tests/Functional.openvpn/data/host-target.key b/tests/Functional.openvpn/data/host-target.key
new file mode 100644
index 0000000..99743bf
--- /dev/null
+++ b/tests/Functional.openvpn/data/host-target.key
@@ -0,0 +1,22 @@
+#
+# 2048 bit OpenVPN static key
+#
+-----BEGIN OpenVPN Static key V1-----
+debe9557c7eb224c5cf4f3369d5211ff
+fb9c375a4784759edf6b0f6eb8f5da31
+bb280394d40382cc8e02d6cbb3e47492
+3509eac6b48965078e3d317b0791dea2
+dbcf0eddcab0fb20780fcf0908ce94cd
+7cb65a913fea73ac6bfe0ab34f085aa3
+a6c8b89a97d189e5145c3199955c4b34
+6d51f864f2b49f3252d1548c3b3510ec
+0ecd4b9f17f2039439a79f41a46f6a54
+c0385b962b2b94fcbe73e0108b224a5b
+2efae27d872f0efef67b244c7eb6f525
+581e4c2b4e6aa193fb1d37798bdb46ff
+7c6727f08e9601c10ac7478d73d731e6
+f4b652252f3e5309cd1d6d30c7a433cc
+134bd6dd50fa6a6fc7a843fdc058d38d
+fb8679b48eb09745badf004fbf4a434c
+-----END OpenVPN Static key V1-----
+
diff --git a/tests/Functional.openvpn/data/testcli.conf b/tests/Functional.openvpn/data/testcli.conf
new file mode 100644
index 0000000..2c252bb
--- /dev/null
+++ b/tests/Functional.openvpn/data/testcli.conf
@@ -0,0 +1,7 @@
+remote 192.168.0.1
+port 5000
+dev tap
+#dev tun
+verb 3
+ping 60
+
diff --git a/tests/Functional.openvpn/data/testenv.sh b/tests/Functional.openvpn/data/testenv.sh
new file mode 100644
index 0000000..8c01d58
--- /dev/null
+++ b/tests/Functional.openvpn/data/testenv.sh
@@ -0,0 +1,18 @@
+#set the variable
+if [ "$init_manager" == "systemd" ]
+then
+ service_name="openvpn at loopback-server.service"
+ config_file="/etc/openvpn/loopback-server.conf"
+ pid_file="/var/run/openvpn/loopback-server.pid"
+else
+ service_name="openvpn"
+ if [ "$test_type" == "client" ]
+ then
+ config_file="/etc/openvpn/testcli.conf"
+ pid_file="/var/run/openvpn.testcli.pid"
+ elif [ "$test_type" == "server" ]
+ then
+ config_file="/etc/openvpn/testsrv.conf"
+ pid_file="/var/run/openvpn.testsrv.pid"
+ fi
+fi
diff --git a/tests/Functional.openvpn/data/testsrv.conf b/tests/Functional.openvpn/data/testsrv.conf
new file mode 100644
index 0000000..0c18a40
--- /dev/null
+++ b/tests/Functional.openvpn/data/testsrv.conf
@@ -0,0 +1,16 @@
+#
+proto udp
+port 5000
+
+dev tap
+
+secret /etc/openvpn/host-target.key
+#link-mtu 1200
+
+ping 10
+ping-restart 60
+ping-timer-rem
+persist-key
+persist-tun
+verb 3
+
diff --git a/tests/Functional.openvpn/fuego_test.sh b/tests/Functional.openvpn/fuego_test.sh
new file mode 100644
index 0000000..65d2991
--- /dev/null
+++ b/tests/Functional.openvpn/fuego_test.sh
@@ -0,0 +1,19 @@
+function test_pre_check {
+ assert_has_program openvpn
+}
+
+function test_deploy {
+ put $TEST_HOME/openvpn_test.sh $BOARD_TESTDIR/fuego.$TESTDIR/
+ put $FUEGO_CORE/scripts/fuego_board_function_lib.sh $BOARD_TESTDIR/fuego.$TESTDIR
+ put -r $TEST_HOME/tests $BOARD_TESTDIR/fuego.$TESTDIR/
+ put -r $TEST_HOME/data $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+ report "cd $BOARD_TESTDIR/fuego.$TESTDIR;\
+ ./openvpn_test.sh"
+}
+
+function test_processing {
+ log_compare "$TESTDIR" "0" "TEST-FAIL" "n"
+}
diff --git a/tests/Functional.openvpn/openvpn_test.sh b/tests/Functional.openvpn/openvpn_test.sh
new file mode 100755
index 0000000..42f41ea
--- /dev/null
+++ b/tests/Functional.openvpn/openvpn_test.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+. ./fuego_board_function_lib.sh
+set_init_manager
+
+. data/testenv.sh
+
+for i in tests/*.sh; do
+ source $i
+done
diff --git a/tests/Functional.openvpn/spec.json b/tests/Functional.openvpn/spec.json
new file mode 100644
index 0000000..e9fdc5a
--- /dev/null
+++ b/tests/Functional.openvpn/spec.json
@@ -0,0 +1,6 @@
+{
+ "testName": "Functional.openvpn",
+ "specs": {
+ "default": {}
+ }
+}
diff --git a/tests/Functional.openvpn/tests/openvpn_genkey.sh b/tests/Functional.openvpn/tests/openvpn_genkey.sh
new file mode 100644
index 0000000..cef533e
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_genkey.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# In target, run command openvpn.
+# option: --genkey
+
+test="genkey"
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+
+openvpn --genkey --secret /etc/openvpn/host-target.key
+if ls /etc/openvpn/host-target.key
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+rm -f /etc/openvpn/host-target.key
+
+if [ -f /etc/openvpn/host-target.key_bak ]
+then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+fi
+
diff --git a/tests/Functional.openvpn/tests/openvpn_lport_client.sh b/tests/Functional.openvpn/tests/openvpn_lport_client.sh
new file mode 100644
index 0000000..f8aac80
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_lport_client.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+# In the target, run openvpn and check the Listening port.
+
+test="lport_client"
+
+test_type="client"
+
+service_status=$(get_service_status $service_name)
+exec_service_on_target $service_name stop
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testcli.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+restore_target() {
+ rm -fr /dev/net
+ rm $config_file
+ if [ -f $config_file"_bak" ]
+ then
+ mv $config_file"_bak" $config_file
+ fi
+ rm -r /etc/openvpn/host-target.key
+ if [ -f /etc/openvpn/host-target.key_bak ]
+ then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+ fi
+
+ modprobe -r tun
+}
+
+if exec_service_on_target $service_name start
+then
+ echo " -> $test: service start succeeded."
+else
+ echo " -> $test: service start failed."
+ echo " -> $test: TEST-FAIL"
+ restore_target
+ exit
+fi
+
+sleep 5
+
+if netstat -ln | grep ":5000"
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+
+if [ "$service_status" = "inactive" ]
+then
+ exec_service_on_target $service_name stop
+fi
+restore_target
diff --git a/tests/Functional.openvpn/tests/openvpn_lport_server.sh b/tests/Functional.openvpn/tests/openvpn_lport_server.sh
new file mode 100644
index 0000000..0377c2d
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_lport_server.sh
@@ -0,0 +1,65 @@
+#!/bin/sh
+
+# In the target, run openvpn and check the Listening port.
+
+test="lport_server"
+
+test_type="server"
+
+service_status=$(get_service_status $service_name)
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testsrv.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+restore_target() {
+ rm -fr /dev/net
+ rm $config_file
+ if [ -f $config_file"_bak" ]
+ then
+ mv $config_file"_bak" $config_file
+ fi
+ rm -r /etc/openvpn/host-target.key
+ if [ -f /etc/openvpn/host-target.key_bak ]
+ then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+ fi
+
+ modprobe -r tun
+}
+
+if exec_service_on_target $service_name start
+then
+ echo " -> $test: service start succeeded."
+else
+ echo " -> $test: service start failed."
+ echo " -> $test: TEST-FAIL"
+ restore_target
+ exit
+fi
+
+sleep 5
+
+if netstat -ln | grep ":5000"
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+if [ "$service_status" = "inactive" ]
+then
+ exec_service_on_target $service_name stop
+fi
+restore_target
diff --git a/tests/Functional.openvpn/tests/openvpn_pid_client.sh b/tests/Functional.openvpn/tests/openvpn_pid_client.sh
new file mode 100644
index 0000000..a7829b2
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_pid_client.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+# In the target, run openvpn and check the pidfile.
+
+test="pid_client"
+
+test_type="client"
+
+service_status=$(get_service_status $service_name)
+exec_service_on_target $service_name stop
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testcli.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+restore_target() {
+ rm -fr /dev/net
+ rm $config_file
+ if [ -f $config_file"_bak" ]
+ then
+ mv $config_file"_bak" $config_file
+ fi
+ rm -r /etc/openvpn/host-target.key
+ if [ -f /etc/openvpn/host-target.key_bak ]
+ then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+ fi
+ modprobe -r tun
+}
+
+if exec_service_on_target $service_name start
+then
+ echo " -> $test: service start succeeded."
+else
+ echo " -> $test: service start failed."
+ echo " -> $test: TEST-FAIL"
+ restore_target
+ exit
+fi
+
+if ls $pid_file
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+if [ "$service_status" = "inactive" ]
+then
+ exec_service_on_target $service_name stop
+fi
+restore_target
diff --git a/tests/Functional.openvpn/tests/openvpn_pid_server.sh b/tests/Functional.openvpn/tests/openvpn_pid_server.sh
new file mode 100644
index 0000000..e2f2e7b
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_pid_server.sh
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+# In the target, run openvpn and check the pidfile.
+
+test="pid_server"
+
+test_type="server"
+
+service_status=$(get_service_status $service_name)
+exec_service_on_target $service_name stop
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testsrv.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+restore_target() {
+ rm -fr /dev/net
+ rm $config_file
+ if [ -f $config_file"_bak" ]
+ then
+ mv $config_file"_bak" $config_file
+ fi
+ rm -r /etc/openvpn/host-target.key
+ if [ -f /etc/openvpn/host-target.key_bak ]
+ then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+ fi
+ modprobe -r tun
+}
+
+if exec_service_on_target $service_name start
+then
+ echo " -> $test: service start succeeded."
+else
+ echo " -> $test: service start failed."
+ echo " -> $test: TEST-FAIL"
+ restore_target
+ exit
+fi
+
+if ls $pid_file
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+
+if [ "$service_status" = "inactive" ]
+then
+ exec_service_on_target $service_name stop
+fi
+restore_target
diff --git a/tests/Functional.openvpn/tests/openvpn_ps_client.sh b/tests/Functional.openvpn/tests/openvpn_ps_client.sh
new file mode 100644
index 0000000..956c2fd
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_ps_client.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# In the target, run openvpn and check the status of process.
+
+test="ps_client"
+
+test_type="client"
+
+service_status=$(get_service_status $service_name)
+exec_service_on_target $service_name stop
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testcli.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+restore_target() {
+ rm -fr /dev/net
+ rm $config_file
+ if [ -f $config_file"_bak" ]
+ then
+ mv $config_file"_bak" $config_file
+ fi
+ rm -r /etc/openvpn/host-target.key
+ if [ -f /etc/openvpn/host-target.key_bak ]
+ then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+ fi
+ modprobe -r tun
+}
+
+exec_service_on_target $service_name start
+
+if ps aux | grep "[/]usr/sbin/openvpn"
+then
+ echo " -> $test: get the process of openvpn succeeded."
+else
+ echo " -> $test: get the process of openvpn failed."
+ echo " -> $test: TEST-FAIL"
+ exec_service_on_target $service_name stop
+ restore_target
+ exit
+fi
+
+exec_service_on_target $service_name stop
+
+if ! ps aux | grep "[/]usr/sbin/openvpn"
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+restore_target
+if [ "$service_status" = "active" -o "$service_status" = "unknown" ]
+then
+ exec_service_on_target $service_name start
+fi
diff --git a/tests/Functional.openvpn/tests/openvpn_ps_server.sh b/tests/Functional.openvpn/tests/openvpn_ps_server.sh
new file mode 100644
index 0000000..6a6a25c
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_ps_server.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# In the target, run openvpn and check the status of process.
+
+test="ps_server"
+
+test_type="server"
+
+service_status=$(get_service_status $service_name)
+exec_service_on_target $service_name stop
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testsrv.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+restore_target() {
+ rm -fr /dev/net
+ rm $config_file
+ if [ -f $config_file"_bak" ]
+ then
+ mv $config_file"_bak" $config_file
+ fi
+ rm -r /etc/openvpn/host-target.key
+ if [ -f /etc/openvpn/host-target.key_bak ]
+ then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+ fi
+ modprobe -r tun
+}
+
+exec_service_on_target $service_name start
+
+if ps aux | grep "[/]usr/sbin/openvpn"
+then
+ echo " -> $test: get the process of openvpn succeeded."
+else
+ echo " -> $test: get the process of openvpn failed."
+ echo " -> $test: TEST-FAIL"
+ exec_service_on_target $service_name stop
+ restore_target
+ exit
+fi
+
+exec_service_on_target $service_name stop
+
+if ! ps aux | grep "[/]usr/sbin/openvpn"
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+restore_target
+if [ "$service_status" = "active" -o "$service_status" = "unknown" ]
+then
+ exec_service_on_target $service_name start
+fi
diff --git a/tests/Functional.openvpn/tests/openvpn_syslog-ng_client.sh b/tests/Functional.openvpn/tests/openvpn_syslog-ng_client.sh
new file mode 100644
index 0000000..7b4f36c
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_syslog-ng_client.sh
@@ -0,0 +1,71 @@
+#!/bin/sh
+
+# In the target, run openvpn and check the message of syslog-ng.
+
+test="syslog-ng_client"
+
+test_type="client"
+
+logger_service=$(detect_logger_service)
+openvpn_logfile=$(get_service_logfile)
+service_status=$(get_service_status $service_name)
+
+exec_service_on_target $service_name stop
+exec_service_on_target $logger_service stop
+
+if [ -f $openvpn_logfile ]
+then
+ mv $openvpn_logfile $openvpn_logfile"_bak"
+fi
+
+exec_service_on_target $logger_service restart
+
+sleep 2
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testcli.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+exec_service_on_target $service_name start
+
+sleep 5
+
+if cat $openvpn_logfile | grep OpenVPN
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+
+exec_service_on_target $service_name stop
+
+rm -fr /dev/net
+
+rm $config_file
+if [ -f $config_file"_bak" ]
+then
+ mv $config_file"_bak" $config_file
+fi
+
+rm -r /etc/openvpn/host-target.key
+if [ -f /etc/openvpn/host-target.key_bak ]
+then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+fi
+
+modprobe -r tun
+if [ "$service_status" = "active" -o "$service_status" = "unknown" ]
+then
+ exec_service_on_target $service_name start
+fi
diff --git a/tests/Functional.openvpn/tests/openvpn_syslog-ng_server.sh b/tests/Functional.openvpn/tests/openvpn_syslog-ng_server.sh
new file mode 100644
index 0000000..29a53b9
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_syslog-ng_server.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+# In the target, run openvpn and check the message of syslog-ng.
+
+test="syslog-ng_server"
+
+logger_service=$(detect_logger_service)
+service_status=$(get_service_status $service_name)
+openvpn_logfile=$(get_service_logfile)
+
+exec_service_on_target $service_name stop
+exec_service_on_target $logger_service stop
+
+if [ -f $openvpn_logfile ]
+then
+ mv $openvpn_logfile $openvpn_logfile"_bak"
+fi
+
+exec_service_on_target $logger_service restart
+
+sleep 2
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testsrv.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+exec_service_on_target $service_name start
+
+sleep 5
+
+if cat $openvpn_logfile | grep OpenVPN
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+
+exec_service_on_target $service_name stop
+
+rm -fr /dev/net
+
+rm $config_file
+if [ -f $config_file"_bak" ]
+then
+ mv $config_file"_bak" $config_file
+fi
+
+rm -r /etc/openvpn/host-target.key
+if [ -f /etc/openvpn/host-target.key_bak ]
+then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+fi
+
+modprobe -r tun
+if [ "$service_status" = "active" -o "$service_status" = "unknown" ]
+then
+ exec_service_on_target $service_name start
+fi
diff --git a/tests/Functional.openvpn/tests/openvpn_tun_client.sh b/tests/Functional.openvpn/tests/openvpn_tun_client.sh
new file mode 100644
index 0000000..7bba41e
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_tun_client.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# Verify the creation of the tun device (tap0) interface by openvpn.
+
+test="tun_client"
+
+test_type="client"
+
+service_status=$(get_service_status $service_name)
+exec_service_on_target $service_name stop
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testcli.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+exec_service_on_target $service_name start
+
+if ifconfig tap0
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+
+exec_service_on_target $service_name stop
+
+rm -fr /dev/net
+
+rm $config_file
+if [ -f $config_file"_bak" ]
+then
+ mv $config_file"_bak" $config_file
+fi
+
+rm -r /etc/openvpn/host-target.key
+if [ -f /etc/openvpn/host-target.key_bak ]
+then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+fi
+
+modprobe -r tun
+if [ "$service_status" = "active" -o "$service_status" = "unknown" ]
+then
+ exec_service_on_target $service_name start
+fi
diff --git a/tests/Functional.openvpn/tests/openvpn_tun_server.sh b/tests/Functional.openvpn/tests/openvpn_tun_server.sh
new file mode 100644
index 0000000..4a9aa46
--- /dev/null
+++ b/tests/Functional.openvpn/tests/openvpn_tun_server.sh
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+# Verify the creation of the tun device (tap0) interface by openvpn.
+
+test="tun_server"
+
+test_type="server"
+
+service_status=$(get_service_status $service_name)
+exec_service_on_target $service_name stop
+
+if [ -f $config_file ]
+then
+ mv $config_file $config_file"_bak"
+fi
+cp data/testsrv.conf $config_file
+
+if [ -f /etc/openvpn/host-target.key ]
+then
+ mv /etc/openvpn/host-target.key /etc/openvpn/host-target.key_bak
+fi
+cp data/host-target.key /etc/openvpn/host-target.key
+
+mkdir -m 755 /dev/net
+mknod /dev/net/tun c 10 200
+
+exec_service_on_target $service_name start
+
+if ifconfig tap0
+then
+ echo " -> $test: TEST-PASS"
+else
+ echo " -> $test: TEST-FAIL"
+fi
+
+exec_service_on_target $service_name stop
+
+rm -fr /dev/net
+
+rm $config_file
+if [ -f $config_file"_bak" ]
+then
+ mv $config_file"_bak" $config_file
+fi
+
+rm -r /etc/openvpn/host-target.key
+if [ -f /etc/openvpn/host-target.key_bak ]
+then
+ mv /etc/openvpn/host-target.key_bak /etc/openvpn/host-target.key
+fi
+
+modprobe -r tun
+if [ "$service_status" = "active" -o "$service_status" = "unknown" ]
+then
+ exec_service_on_target $service_name start
+fi
--
2.17.1
More information about the Fuego
mailing list