From bea74f838b42926cfbf60278914c4a211cc907a9 Mon Sep 17 00:00:00 2001 From: Jiaying Song Date: Wed, 20 Nov 2024 13:29:33 +0800 Subject: openvpn: add ptest support All test cases PASS. Add openvpn to PTESTS_SLOW because test duration longer than 30s Below is parts of the run log: [==========] xkey provider tests: Running 3 test(s). [ RUN ] xkey_provider_test_fetch [ OK ] xkey_provider_test_fetch [ RUN ] xkey_provider_test_mgmt_sign_cb [ OK ] xkey_provider_test_mgmt_sign_cb [ RUN ] xkey_provider_test_generic_sign_cb [ OK ] xkey_provider_test_generic_sign_cb [==========] xkey provider tests: 3 test(s) run. [ PASSED ] 3 test(s). PASS: provider_testdriver The files t_client.sh.in and t_cltsrv.sh were not added because they require specific environment configuration files. It is recommended that users configure these based on their environment before testing. Since the recipe enables iproute2, the condition for t_net.sh based on HAVE_SITNL is not met, so t_net.sh will not be included in the build. Signed-off-by: Jiaying Song Signed-off-by: Khem Raj --- .../include/ptest-packagelists-meta-networking.inc | 1 + .../recipes-support/openvpn/openvpn/run-ptest | 5 +++ .../recipes-support/openvpn/openvpn_2.6.12.bb | 48 +++++++++++++++++++++- 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 meta-networking/recipes-support/openvpn/openvpn/run-ptest (limited to 'meta-networking') diff --git a/meta-networking/conf/include/ptest-packagelists-meta-networking.inc b/meta-networking/conf/include/ptest-packagelists-meta-networking.inc index 7ec6f9063d..2197a06e74 100644 --- a/meta-networking/conf/include/ptest-packagelists-meta-networking.inc +++ b/meta-networking/conf/include/ptest-packagelists-meta-networking.inc @@ -25,6 +25,7 @@ PTESTS_FAST_META_NETWORKING = "\ # firewalld PTESTS_SLOW_META_NETWORKING = "\ net-snmp \ + openvpn \ " PTESTS_PROBLEMS_META_NETWORKING = "\ diff --git a/meta-networking/recipes-support/openvpn/openvpn/run-ptest b/meta-networking/recipes-support/openvpn/openvpn/run-ptest new file mode 100644 index 0000000000..5b187d9086 --- /dev/null +++ b/meta-networking/recipes-support/openvpn/openvpn/run-ptest @@ -0,0 +1,5 @@ +#!/bin/sh +for x in `find ./ -name Makefile`; +do + make -C `dirname ${x}` -k runtest-TESTS +done diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.6.12.bb b/meta-networking/recipes-support/openvpn/openvpn_2.6.12.bb index d81b8ce449..958eecb63a 100644 --- a/meta-networking/recipes-support/openvpn/openvpn_2.6.12.bb +++ b/meta-networking/recipes-support/openvpn/openvpn_2.6.12.bb @@ -3,13 +3,14 @@ HOMEPAGE = "https://openvpn.net/" SECTION = "net" LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=89196bacc47ed37a5b242a535661a049" -DEPENDS = "lzo lz4 openssl iproute2 libcap-ng ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}" +DEPENDS = "lzo lz4 openssl iproute2 libcap-ng ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} ${@bb.utils.contains('PTEST_ENABLED', '1', 'cmocka', '', d)} " -inherit autotools systemd update-rc.d pkgconfig +inherit autotools systemd update-rc.d pkgconfig ptest SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \ file://0001-configure.ac-eliminate-build-path-from-openvpn-versi.patch \ file://openvpn \ + file://run-ptest \ " UPSTREAM_CHECK_URI = "https://openvpn.net/community-downloads" @@ -42,6 +43,8 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd" PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux" +RDEPENDS:${PN}-ptest:append = " make bash" + do_install:append() { install -d ${D}/${sysconfdir}/init.d install -m 755 ${UNPACKDIR}/openvpn ${D}/${sysconfdir}/init.d @@ -63,6 +66,47 @@ do_install:append() { install -d -m 710 ${D}/${localstatedir}/lib/openvpn } +do_compile_ptest () { + for x in `find ${B}/tests/unit_tests -name Makefile -exec grep -l buildtest-TESTS {} \;`; do + dir=`dirname ${x}` + case $dir in + *example*) + echo "Skipping directory: $dir" + ;; + *) + oe_runmake -C ${dir} buildtest-TESTS + ;; + esac + done +} + +do_install_ptest() { + for x in $(find ${B}/tests/unit_tests -name Makefile -exec grep -l buildtest-TESTS {} \;); do + dir=$(dirname ${x}) + + if [[ "$dir" == *example* ]]; then + continue + fi + + target_dir="${D}/${PTEST_PATH}/unit_tests/$(basename ${dir})" + mkdir -p ${target_dir} + cp -f ${dir}/Makefile ${target_dir}/ + sed -i "s/^Makefile:/MM:/g" ${target_dir}/Makefile + sed -i 's/^#TESTS = $(am__EXEEXT_4)/TESTS = $(am__EXEEXT_4)/' ${target_dir}/Makefile + + for testfile in $(find ${dir} -name "*testdriver"); do + cp -rf ${testfile} ${target_dir}/ + done + done + sed -i 's|find ./|find ${PTEST_PATH}|g' ${D}${PTEST_PATH}/run-ptest + sed -i 's|${top_builddir}/src/openvpn|${sbindir}|g' ${S}/tests/t_lpback.sh + cp -f ${S}/tests/t_lpback.sh ${D}/${PTEST_PATH} + cp -f ${B}/tests/Makefile ${D}/${PTEST_PATH} + sed -i "s/^Makefile:/MM:/g" ${D}/${PTEST_PATH}/Makefile + sed -i "s/^test_scripts = t_client.sh t_lpback.sh t_cltsrv.sh/test_scripts = t_lpback.sh/g" ${D}/${PTEST_PATH}/Makefile + +} + PACKAGES =+ " ${PN}-sample " RRECOMMENDS:${PN} = "kernel-module-tun" -- cgit v1.2.3-54-g00ecf