From nobody Mon Dec 23 15:49:54 2024 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 4YH2XM6BdSz5WrX4; Mon, 23 Dec 2024 15:49:55 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4YH2XM1swCz4pkT; Mon, 23 Dec 2024 15:49:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1734968995; 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=s3n9dU026c7S5SMKYs7zbos2pDBDPaQRK9iegz4eDt0=; b=w7XJE6y3lyZbS9MbW3TxDaXrM6xhXJ1yFF/WfQWYtUpCVi2aYkx9/enlPtFDkUYgDDd7W6 5tUHdDrrIIIlID6Lrwu/x+z1A3chAErSomsIa9UzR2zj2L5Pe0UMPVNCTnS+RNSlvf+Lpa FQqqu5fHcRRvHHyATAfMIGl++sL18KSXXanOf5I31f9OYy4WzwnVY6BU+aE+g5682A0dL0 h9kDfEh6xaRQ/bshuBCB+yxqSKLBktjRd8EToo7izdNsdZGsDwfnoZ6dFa6ljgBK1hRfwh wmT/9jdDH6Uzk0PLtYh9EZ66KULRRjJJhI6zoQ6pivSppHkkM64VS0hOI2wLvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1734968995; 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=s3n9dU026c7S5SMKYs7zbos2pDBDPaQRK9iegz4eDt0=; b=eIdVMh1wzBwdvQwKjZlv1jowxHo6DhVB5xviih3QGPIPzB31/MThomT+0ddLQOJ5MdjZcO j7+xbBMgKqJsa2B33EJw/3/Fnaicw110g+Wx6GhlCsS1ecYM7M5x9U1/1BNOkhQei1L7Kd iv4dmqLLP+B3mOLkffz6GZxC+SZ1EwLSXM3rex1+WVTBCIFb3zNJkUxT/LCGirsQjYGYoY 0YI2GrwzyWnPqXiLyMH4cLtoMOV3o3IAMtaJxUzi06WXM1Sxm9SNMUFZiF4KCMu9qiMaaT 4mkBuXkQhPvPaqR5d5lHy2cpQoeVDjMSL8358H3tol9K4YOEPaMweyTN8YFRMQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1734968995; a=rsa-sha256; cv=none; b=X6O/NBbnnzvlKCsrjpraaH26w2Ufdgl1xBZhnh4H+sGAhD/5ERbuxulkOwdHiIiS7Pg890 o79e+KGuAa09XaW2TIr7l3klaPxXUeO9WWf9lQyjj9WdrjLZwJYfeVuaenoxd8vjHxxJBQ JeWVvDoh3ZzvEceJH3ho/7AGeiw+g9Szsu4pVhCWfAuQyUh2tRBkaVhJVTOBD4ufNWmRo1 C9dbis+287LyQc3r3Fa4fmijwAboyUyYPBuslz4Dy+mRfcvKuLT2hgsi4Y/rNAeUS573k0 g4QvyEJ0JQkQCVsl5h94MLbKE48bldI9lk/+baN9LH2TjKESQi2NH3HVRcMU7g== 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 4YH2XM00hRz1080; Mon, 23 Dec 2024 15:49:55 +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 4BNFnsaa012048; Mon, 23 Dec 2024 15:49:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 4BNFnsmR012045; Mon, 23 Dec 2024 15:49:54 GMT (envelope-from git) Date: Mon, 23 Dec 2024 15:49:54 GMT Message-Id: <202412231549.4BNFnsmR012045@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: 65c61840eeb7 - main - syslogd: Add syslog relayed message format tests 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 65c61840eeb794ca1505bc7e076f664c8d985f72 Auto-Submitted: auto-generated The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=65c61840eeb794ca1505bc7e076f664c8d985f72 commit 65c61840eeb794ca1505bc7e076f664c8d985f72 Author: Michal Scigocki AuthorDate: 2024-12-23 02:57:37 +0000 Commit: Mark Johnston CommitDate: 2024-12-23 15:45:59 +0000 syslogd: Add syslog relayed message format tests Reviewed by: markj MFC after: 3 weeks Pull Request: https://github.com/freebsd/freebsd-src/pull/1536 --- usr.sbin/syslogd/tests/Makefile | 1 + .../syslogd/tests/syslogd_relayed_format_test.sh | 162 +++++++++++++++++++++ 2 files changed, 163 insertions(+) diff --git a/usr.sbin/syslogd/tests/Makefile b/usr.sbin/syslogd/tests/Makefile index 36b7798d317c..fcc0679f3274 100644 --- a/usr.sbin/syslogd/tests/Makefile +++ b/usr.sbin/syslogd/tests/Makefile @@ -2,6 +2,7 @@ PACKAGE= tests ATF_TESTS_SH= syslogd_basic_format_test \ syslogd_forwarded_format_test \ + syslogd_relayed_format_test \ syslogd_test # Run in jail with new vnet so we don't need to worry about address conflicts diff --git a/usr.sbin/syslogd/tests/syslogd_relayed_format_test.sh b/usr.sbin/syslogd/tests/syslogd_relayed_format_test.sh new file mode 100644 index 000000000000..21481823068d --- /dev/null +++ b/usr.sbin/syslogd/tests/syslogd_relayed_format_test.sh @@ -0,0 +1,162 @@ +#- +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2024 Michal Scigocki +# + +. $(atf_get_srcdir)/syslogd_format_test_common.sh + +readonly SERVER_1_PORT="5140" +readonly SERVER_2_PORT="5141" +readonly SERVER_3_PORT="5142" + +# Relayed messages tests +# [Host] ---UDP--> [Relay] ---UDP--> [Central] +setup_relayed_format_test() +{ + local format="$1" + local logfile="$2" + local pcapfile="$3" + + confirm_INET_support_or_skip + + # Begin packet capture for single packet + tcpdump --immediate-mode -c 1 -i lo0 -w "${pcapfile}" dst port \ + "${SERVER_1_PORT}" & + tcpdump_pid="$!" + + # Start first (central) server: receive UDP, log to file + printf "user.debug\t${logfile}\n" \ + > "$(config_filename ${SERVER_1_PORT})" + syslogd_start_on_port "${SERVER_1_PORT}" -O "${format}" + + # Start second (relay) server: send UDP, log to central server + printf "user.debug\t@127.0.0.1:${SERVER_1_PORT}\n" \ + > "$(config_filename ${SERVER_2_PORT})" + syslogd_start_on_port "${SERVER_2_PORT}" -O "${format}" + + # Start third logging host: send UDP, log to relay server + printf "user.debug\t@127.0.0.1:${SERVER_2_PORT}\n" \ + > "$(config_filename ${SERVER_3_PORT})" + syslogd_start_on_port "${SERVER_3_PORT}" -O "${format}" + + # Send test syslog message + syslogd_log -4 -p user.debug -t "${TAG}" -h 127.0.0.1 \ + -P "${SERVER_3_PORT}" -H "${HOSTNAME}" "${MSG}" + + wait "${tcpdump_pid}" # Wait for packet capture to finish +} + +atf_test_case "O_flag_bsd_relayed" "cleanup" +O_flag_bsd_relayed_head() +{ + atf_set descr "bsd format test on a relayed syslog message" + set_common_atf_metadata +} +O_flag_bsd_relayed_body() +{ + local format="bsd" + local logfile="${PWD}/${format}_relayed.log" + local pcapfile="${PWD}/${format}_relayed.pcap" + + setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + + atf_expect_fail "PR 220246 issue with the legacy bsd format" + atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC3164_PAYLOAD}" \ + tcpdump -A -r "${pcapfile}" +} +O_flag_bsd_relayed_cleanup() +{ + syslogd_stop_on_ports \ + "${SERVER_1_PORT}" \ + "${SERVER_2_PORT}" \ + "${SERVER_3_PORT}" +} + +atf_test_case "O_flag_rfc3164_relayed" "cleanup" +O_flag_rfc3164_relayed_head() +{ + atf_set descr "rfc3164 format test on a relayed syslog message" + set_common_atf_metadata +} +O_flag_rfc3164_relayed_body() +{ + local format="rfc3164" + local logfile="${PWD}/${format}_relayed.log" + local pcapfile="${PWD}/${format}_relayed.pcap" + + setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + + atf_expect_fail "PR 220246 issue with the legacy rfc3164 format" + atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC3164_PAYLOAD}" \ + tcpdump -A -r "${pcapfile}" +} +O_flag_rfc3164_relayed_cleanup() +{ + syslogd_stop_on_ports \ + "${SERVER_1_PORT}" \ + "${SERVER_2_PORT}" \ + "${SERVER_3_PORT}" +} + +atf_test_case "O_flag_syslog_relayed" "cleanup" +O_flag_syslog_relayed_head() +{ + atf_set descr "syslog format test on a relayed syslog message" + set_common_atf_metadata +} +O_flag_syslog_relayed_body() +{ + local format="syslog" + local logfile="${PWD}/${format}_relayed.log" + local pcapfile="${PWD}/${format}_relayed.pcap" + + setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + + atf_check -s exit:0 -o match:"${REGEX_RFC5424_LOGFILE}" cat "${logfile}" + atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC5424_PAYLOAD}" \ + tcpdump -A -r "${pcapfile}" +} +O_flag_syslog_relayed_cleanup() +{ + syslogd_stop_on_ports \ + "${SERVER_1_PORT}" \ + "${SERVER_2_PORT}" \ + "${SERVER_3_PORT}" +} + +atf_test_case "O_flag_rfc5424_relayed" "cleanup" +O_flag_rfc5424_relayed_head() +{ + atf_set descr "rfc5424 format test on a relayed syslog message" + set_common_atf_metadata +} +O_flag_rfc5424_relayed_body() +{ + local format="rfc5424" + local logfile="${PWD}/${format}_relayed.log" + local pcapfile="${PWD}/${format}_relayed.pcap" + + setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + + atf_check -s exit:0 -o match:"${REGEX_RFC5424_LOGFILE}" cat "${logfile}" + atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC5424_PAYLOAD}" \ + tcpdump -A -r "${pcapfile}" +} +O_flag_rfc5424_relayed_cleanup() +{ + syslogd_stop_on_ports \ + "${SERVER_1_PORT}" \ + "${SERVER_2_PORT}" \ + "${SERVER_3_PORT}" +} + +atf_init_test_cases() +{ + atf_add_test_case "O_flag_bsd_relayed" + atf_add_test_case "O_flag_rfc3164_relayed" + atf_add_test_case "O_flag_syslog_relayed" + atf_add_test_case "O_flag_rfc5424_relayed" +}