From a7d3e1068e60ce459e76a154cb42ad22a3505a80 Mon Sep 17 00:00:00 2001 From: Karol Latecki Date: Wed, 29 Mar 2023 07:39:42 +0200 Subject: [PATCH] autotest: set FreeBSD kern.ipc.maxsockbuf to 4k unittest_sock unit tests fail on FreeBSD due to ENOBUFS. Increase to buffer size to 4k for tests to pass. Fixes #2943 Signed-off-by: Karol Latecki Change-Id: I55d1164d49edb2d90ebfe5f720a615f052ee52d9 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17370 Tested-by: SPDK CI Jenkins Reviewed-by: Jim Harris Reviewed-by: Konrad Sztyber --- autotest.sh | 1 + test/common/autotest_common.sh | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/autotest.sh b/autotest.sh index 34f7430450b..fbc5612c20c 100755 --- a/autotest.sh +++ b/autotest.sh @@ -60,6 +60,7 @@ out=$output_dir cd $src freebsd_update_contigmem_mod +freebsd_set_maxsock_buf # lcov takes considerable time to process clang coverage. # Disabling lcov allow us to do this. diff --git a/test/common/autotest_common.sh b/test/common/autotest_common.sh index c9d0f96d756..76477ab94fb 100755 --- a/test/common/autotest_common.sh +++ b/test/common/autotest_common.sh @@ -1411,6 +1411,15 @@ function freebsd_update_contigmem_mod() { fi } +function freebsd_set_maxsock_buf() { + # FreeBSD needs 4MB maxsockbuf size to pass socket unit tests. + # Otherwise tests fail due to ENOBUFS when trying to do setsockopt(SO_RCVBUF|SO_SNDBUF). + # See https://github.com/spdk/spdk/issues/2943 + if [[ $(uname) = FreeBSD ]] && (($(sysctl -n kern.ipc.maxsockbuf) < 4194304)); then + sysctl kern.ipc.maxsockbuf=4194304 + fi +} + function get_nvme_name_from_bdf() { blkname=()