From nobody Wed Feb 12 14:44:50 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4YtLgl04NNz5mtWP; Wed, 12 Feb 2025 14:44:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YtLgk1RQjz44tl; Wed, 12 Feb 2025 14:44:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739371490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DIGhzcIY7WvRjnurcEIQSTEu5JAmhB53i1hb9MbybOA=; b=yzflqbuRQFM8tykYBpryVVtn9ZUod2Lt+ezLy68mp6gQAeMS3xFT9b6slIfN1yHgL/1AZu TnbzG4Xdy5L8JcvCHUueAcvvZnEbIlROZ2hU5uOrVznQ1UlBQc+6Hmh5ggm3a+00ETMvCb TXTIqgu5Ui4zX69ZPAvincCNWagxd7aRpoLasZ+x8gi4SoprVlbcGN8ZBY+JW1qZmiXjS9 rtXwv9E67O/Np0BYvh9V7A3dVED2lqLm0xBsMHFLiWw8/nlKdWgBaGx79CzdCyIMFkFdK4 igxABqe48tdiAehjOYGmuAHNkpDM5hH39etCiB1Bkn9q1WJ3OoF4txuCmimNAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1739371490; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DIGhzcIY7WvRjnurcEIQSTEu5JAmhB53i1hb9MbybOA=; b=s/OzHple2/3ocBAHO/YqLYySa1VE2+YgfX7luMUBGtAY1MkHEh3q4i/OEhf4uOKaYqKng6 oTR9bVuC2CdGwFnkrxdkHexBBrTMt4LAHAudqWhwu38IMveiDaDvMv670rFl2DcOANKuB+ HV00Qb9Pq/95QHpRvxCaNGVifizT74PblB+1WjHerb2OvvyfaQhFH1N/C7SavlXVTttNUn 6MVmuuiKu8+ROgaTaoMJXxXM8sTZMYAMneVZyKpCUSDrrprHroOSzwcHF+PLR6xWALs7rH gzwAF7xceNg9Qxfzd086mpjQqmbMM7Zacpe4MGVbPI0aX2o+t8SUXEQbCKvGPg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1739371490; a=rsa-sha256; cv=none; b=yfrcGc3n5yCGY6GMeJSKAfebLBav+z3Yt8OWB+P06cSqlr96AcfPIHy2HtYRuk3kYm6NmZ dKMEY73NN4Qf0LEEHJfu14FQU1muwGPMKN2SW0Bm6aTaxu9v1kIZvBNpy2fOnduyZW/Evt qh7+Pt7xK0GqjZ9Z3TgZbM2U2g3Bv8EyeYnk/YCORr5QXhb5zdtuDjlvJ06XRjQuk3PvDw nt6K+FA6WYNyyx4CwzUAQ2hfh5SBLCClZ/rqmrTlSPNLXOHNazUbHXalfGfOFhONjDbarr SxbtcoflXIae60b5Jfy7dH1KV/bUmzsB6NDphPcov3iybpe15aQ0SeK7Z0MILg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4YtLgk0x4kz13YV; Wed, 12 Feb 2025 14:44:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 51CEiob4016982; Wed, 12 Feb 2025 14:44:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 51CEioa0016979; Wed, 12 Feb 2025 14:44:50 GMT (envelope-from git) Date: Wed, 12 Feb 2025 14:44:50 GMT Message-Id: <202502121444.51CEioa0016979@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jose Luis Duran Subject: git: 8d9c25c4e171 - main - syslogd: Fix tests when if_epair is not loaded List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jlduran X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8d9c25c4e1715e54b523cfd03bfb4c788b34ff57 Auto-Submitted: auto-generated The branch main has been updated by jlduran: URL: https://cgit.FreeBSD.org/src/commit/?id=8d9c25c4e1715e54b523cfd03bfb4c788b34ff57 commit 8d9c25c4e1715e54b523cfd03bfb4c788b34ff57 Author: Jose Luis Duran AuthorDate: 2025-02-12 14:42:09 +0000 Commit: Jose Luis Duran CommitDate: 2025-02-12 14:42:09 +0000 syslogd: Fix tests when if_epair is not loaded Take a cue from vnet.subr and abstract module loading, jail creation and cleanup. Note that the way jails are created differs slightly from vnet.subr, to maintain the current style of the tests. Reported by: Jenkins Reviewed by: markj Approved by: emaste (mentor) MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D48949 --- usr.sbin/syslogd/tests/syslogd_test.sh | 23 +++++++------- usr.sbin/syslogd/tests/syslogd_test_common.sh | 43 +++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 11 deletions(-) diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index fd3d0c49c080..2d093dd80c35 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -323,7 +323,7 @@ jail_noinet_body() { local logfile - atf_check jail -c name=syslogd_noinet persist + syslogd_mkjail syslogd_noinet logfile="${PWD}/jail_noinet.log" printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" @@ -335,7 +335,7 @@ jail_noinet_body() } jail_noinet_cleanup() { - jail -r syslogd_noinet + syslogd_cleanup } # Create a pair of jails, connected by an epair. The idea is to run syslogd in @@ -344,10 +344,12 @@ jail_noinet_cleanup() # 169.254.0.2 or 169.254.0.3. allowed_peer_test_setup() { + syslogd_check_req epair + local epair - atf_check jail -c name=syslogd_allowed_peer vnet persist - atf_check jail -c name=syslogd_client vnet persist + syslogd_mkjail syslogd_allowed_peer vnet + syslogd_mkjail syslogd_client vnet atf_check -o save:epair ifconfig epair create epair=$(cat epair) @@ -364,9 +366,7 @@ allowed_peer_test_setup() allowed_peer_test_cleanup() { - jail -r syslogd_allowed_peer - jail -r syslogd_client - ifconfig $(cat epair) destroy + syslogd_cleanup } atf_test_case allowed_peer "cleanup" @@ -499,19 +499,21 @@ forward_head() } forward_body() { + syslogd_check_req epair + local epair logfile atf_check -o save:epair ifconfig epair create epair=$(cat epair) epair=${epair%%a} - atf_check jail -c name=syslogd_server vnet persist + syslogd_mkjail syslogd_server vnet atf_check ifconfig ${epair}a vnet syslogd_server atf_check jexec syslogd_server ifconfig ${epair}a inet 169.254.0.1/16 atf_check jexec syslogd_server ifconfig ${epair}a alias 169.254.0.2/16 atf_check jexec syslogd_server ifconfig lo0 inet 127.0.0.1/8 - atf_check jail -c name=syslogd_client vnet persist + syslogd_mkjail syslogd_client vnet atf_check ifconfig ${epair}b vnet syslogd_client atf_check jexec syslogd_client ifconfig ${epair}b inet 169.254.0.3/16 atf_check jexec syslogd_client ifconfig lo0 inet 127.0.0.1/8 @@ -545,8 +547,7 @@ __EOF__ } forward_cleanup() { - jail -r syslogd_server - jail -r syslogd_client + syslogd_cleanup } atf_init_test_cases() diff --git a/usr.sbin/syslogd/tests/syslogd_test_common.sh b/usr.sbin/syslogd/tests/syslogd_test_common.sh index 34099684a1c2..f06eb417d423 100644 --- a/usr.sbin/syslogd/tests/syslogd_test_common.sh +++ b/usr.sbin/syslogd/tests/syslogd_test_common.sh @@ -115,3 +115,46 @@ syslogd_stop() rm -f "${pid_file}" "${socket_file}" "${privsocket_file}" fi } + +# Check required kernel module. +syslogd_check_req() +{ + type=$1 + + if kldstat -q -n if_${type}.ko; then + return + fi + + if ! kldload -n -q if_${type}; then + atf_skip "if_${type}.ko is required to run this test." + return + fi +} + +# Make a jail and save its name to the created_jails.lst file. +# Accepts a name and optional arguments. +syslogd_mkjail() +{ + jailname=$1 + shift + args=$* + + atf_check jail -c name=${jailname} ${args} persist + + echo $jailname >> created_jails.lst +} + +# Remove epair interfaces and jails. +syslogd_cleanup() +{ + if [ -f created_jails.lst ]; then + while read jailname; do + jail -r ${jailname} + done < created_jails.lst + rm created_jails.lst + fi + + if [ -f epair ]; then + ifconfig $(cat epair) destroy + fi +}