From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 702308018A for ; Tue, 22 Sep 2026 12:04:02 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 68MC2elN018073; Tue, 22 Sep 2026 15:02:41 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 68MC2elN018073 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="r9lKFHMy" Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 68MC2cRg018049 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Tue, 22 Sep 2026 15:02:38 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 68MC2cRg018049 Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-49e823c4868so33121715e9.0 for ; Tue, 22 Sep 2026 05:02:38 -0700 (PDT) X-Gm-Message-State: AFuF++nPgobrUFmhvgszLkolWjuVOawtjc99zKU+vEyI14W7WazlBWZ/ EamOmqc/arQBhRcPTw+LolHY2T0FbJ3l3DgO1+uAzdvXSkaHFQO0LU3byBnpa47FL4y6tBzv3nv 8HURxOuVaQPfW99ZJwU0O9zpF/sgxqveAZS027uGc88e113ggCgJNJA== X-Gm-Gg: AYBFou3F/zZI3jApZPowdoBxfr7xl6yt070SrZU4wqJSz1Mk51AmyZCc8TOXhkkZj+z yQbCt8D39hObKeokmGA2pB+mY+9tKyRoFQ7XykNKU58AyqHBkba06cfZSe1HIVeLEYesYDusUzI tejXAxzBiF99JsmSRlv5rDgNpRUwfMc0qtLNxfk7sTQMKc865Jv+PZLCwXDFhjED5dA6J6LG7tz u3GQuQKj8cxcsNxvgP1YpFTM6iG+6DqnMa+LYulsO63o91u4ewRzEeRPqYtpSOkLrQOktHEscWN cd1We4dE/vxnQFyDmqrIuRTf9EHNR3yOUerYAq+HI0R2y3qjgxY0O3mDKPszwt1YN6toF6gu3Yr GGkMCQrCmowRYS8gL2QL7TSW8hA== X-Received: by 2002:a05:600c:470d:b0:49f:ce78:356b with SMTP id 5b1f17b1804b1-49fce7836bdmr135503675e9.28.1790078558331; Tue, 22 Sep 2026 05:02:38 -0700 (PDT) X-Received: by 2002:a05:600c:470d:b0:49f:ce78:356b with SMTP id 5b1f17b1804b1-49fce7836bdmr135503275e9.28.1790078557772; Tue, 22 Sep 2026 05:02:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1790078557; cv=none; d=google.com; s=arc-20260327; b=cuL1T96Ewf7Z8gTRe83cjEoNy6+gTFL2D1E2IWY7ld+QWpmg+2PGGHBoekHR1hLbmI xMUsAh36BAe3pYd13d3it0rV8sDm1Pkl2NNihyj1QcGheZ5gPjXbdYDAkyv9uVCgICux BvvfjhchidS7Ic/hb9WsvSjUJw8FtPKPzF0wNDb6SxI6uXR6rZ1tKKtN9s7GGPtcueW0 42muEqrelSDrG7j3trkvcQ3sP/8iKroQcV5leotWVlNQjyu7MT07fVTF0w/nbnggcgDX kkYEIxc3E1gX0JzDzja5oVFk8tyb16yAJ7+F6GHgAFGdmGyNRT0cp7jFHnj7WHnDfazP by9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=4vr07wc32fRe+6hIfQpXI/ZrwCLVPvd7gyeC7RTbOtg=; fh=bRmlDJ6vflC8xapCpe8SIKiBemLWBr+xozKix8GBr/Q=; b=LWRpjnDfGgE7E5KaZTYU18pSRFa6JpLq8L2W+Yqbr0UghoDzfzKuS1sTAzUvz5FwUx DglUNHyHX7+a4gg6e7lhCgLuKbdLexYNdflpTKm7NLc45Rr62Da1/plDEv+jtwgbs/mR OHYkxWInC/fMpUspQf7Y4f/ei5MnFoLzjG5HkF0xLNIq9Qxf+AgIXuwRokZb5zBvn25g ovtFPBih4noKn1IHWUgZPdAnUBXDHzOgvTWxCtkLlv0g/tdejQKNxEMMoYEU8H8CpREI Qkmt9arq+JwXQAvksPOR/VziNPtEUbi3QJ6+P/PEovtfadaXJaVV+Hcspy4cacwjgQZ6 gfoQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=r9lKFHMy; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-488628c45d6si2898503f8f.254.2026.09.22.05.02.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 22 Sep 2026 05:02:37 -0700 (PDT) Received-SPF: pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=r9lKFHMy; spf=pass (google.com: domain of eva.kurchatova@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=eva.kurchatova@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-ID:Date:Subject:From: Content-Type; bh=4vr07wc32fRe+6hIfQpXI/ZrwCLVPvd7gyeC7RTbOtg=; b=r9lKFHMyv+6A cHqQ3h7shrBEmIM3J4qMIsIRbDKax4EfePzSkc6A7adBpLJL9Iqcbn4QSMzY43QfD8Izv5K2TWMso 4iamL/r0WTY/jNn2cOkU3+YSFJ2EOh4sFMmKnJ8IzPCa0mTpfSGMaK0KAYZhhKsREa3wUl1qJ3YA1 UEYtbTl/9bHNLRnbPMJGwcgnWu241SP4jT0SkA3slVibk/ZltlldR4cTyOodN7dpoY78TksAQ5ubI bZwbr8HgKu5ApZecaukVyzUyyB4TeFmzTgwyUOJPlwhXxkbI8QIDUPSV59Qw62SGjSZDS0AwVh5+U 9bwcV7s1xSKMEiZdG9EUQQ==; Received: from ch-vpn.virtuozzo.com ([130.117.225.6] helo=LekKit-T14) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1x8z9t-009l3P-3B; Tue, 22 Sep 2026 14:02:27 +0200 From: Eva Kurchatova To: vasileios.almpanis@virtuozzo.com Date: Tue, 22 Sep 2026 15:02:21 +0300 Message-ID: <20260922120235.2729869-2-eva.kurchatova@virtuozzo.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260922120235.2729869-1-eva.kurchatova@virtuozzo.com> References: <20260922120235.2729869-1-eva.kurchatova@virtuozzo.com> MIME-Version: 1.0 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH vz10 v2 2/6] selftests: net: skip what this kernel and iproute2 do not have X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org Five cases report a failure where a feature is simply not there. tls asks for every cipher it knows and fails on the ones the kernel does not implement, SM4 and ARIA, which answer ENOENT at setsockopt time. Skip a cipher the kernel refuses that way; the run then reports 632 passed, 264 skipped and none failed. rtnetlink.sh sets up an erspan tunnel, which this kernel does not have and which fails with "Unknown device type", and checks a netconf dump whose exit status iproute2 gets wrong: 6.11 exits 2 on a dump that worked, 6.17 exits 0. Probe for both and skip when unusable. rtnetlink.py asks for an IPv4 multicast address dump the kernel answers with EOPNOTSUPP, and ip_local_port_range asks for protocols it does not have. Skip those too. https://virtuozzo.atlassian.net/browse/VSTOR-139651 Feature: fix selftests Signed-off-by: Eva Kurchatova --- .../selftests/net/ip_local_port_range.c | 17 +++++++--- tools/testing/selftests/net/rtnetlink.py | 11 +++++-- tools/testing/selftests/net/rtnetlink.sh | 31 +++++++++++++++++++ tools/testing/selftests/net/tls.c | 2 ++ 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/net/ip_local_port_range.c b/tools/testing/selftests/net/ip_local_port_range.c index 29451d2244b7..2d7b9c852b2b 100644 --- a/tools/testing/selftests/net/ip_local_port_range.c +++ b/tools/testing/selftests/net/ip_local_port_range.c @@ -118,10 +118,6 @@ static int get_ip_local_port_range(int fd, __u32 *range) FIXTURE(ip_local_port_range) {}; -FIXTURE_SETUP(ip_local_port_range) -{ -} - FIXTURE_TEARDOWN(ip_local_port_range) { } @@ -180,6 +176,19 @@ FIXTURE_VARIANT_ADD(ip_local_port_range, ip6_mptcp) { .so_protocol = IPPROTO_MPTCP, }; +FIXTURE_SETUP(ip_local_port_range) +{ + int fd; + + /* Not every protocol under test is built into every kernel. */ + fd = socket(variant->so_domain, variant->so_type, variant->so_protocol); + if (fd < 0 && (errno == EPROTONOSUPPORT || errno == ESOCKTNOSUPPORT || + errno == EAFNOSUPPORT)) + SKIP(return, "%s", strerror(errno)); + ASSERT_GE(fd, 0) TH_LOG("socket failed"); + close(fd); +} + TEST_F(ip_local_port_range, invalid_option_value) { __u16 val16; diff --git a/tools/testing/selftests/net/rtnetlink.py b/tools/testing/selftests/net/rtnetlink.py index e9ad5e88da97..e0b44902c602 100755 --- a/tools/testing/selftests/net/rtnetlink.py +++ b/tools/testing/selftests/net/rtnetlink.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 # SPDX-License-Identifier: GPL-2.0 -from lib.py import ksft_exit, ksft_run, ksft_ge, RtnlAddrFamily +from lib.py import ksft_exit, ksft_run, ksft_ge, KsftSkipEx +from lib.py import NlError, RtnlAddrFamily +import errno import socket IPV4_ALL_HOSTS_MULTICAST = b'\xe0\x00\x00\x01' @@ -12,7 +14,12 @@ def dump_mcaddr_check(rtnl: RtnlAddrFamily) -> None: At least the loopback interface should have this address. """ - addresses = rtnl.getmulticast({"ifa-family": socket.AF_INET}, dump=True) + try: + addresses = rtnl.getmulticast({"ifa-family": socket.AF_INET}, dump=True) + except NlError as e: + if e.nl_msg.error == -errno.EOPNOTSUPP: + raise KsftSkipEx("IPv4 multicast address dump is not supported") + raise all_host_multicasts = [ addr for addr in addresses if addr['multicast'] == IPV4_ALL_HOSTS_MULTICAST diff --git a/tools/testing/selftests/net/rtnetlink.sh b/tools/testing/selftests/net/rtnetlink.sh index 5f72b447e940..cc4e94b90002 100755 --- a/tools/testing/selftests/net/rtnetlink.sh +++ b/tools/testing/selftests/net/rtnetlink.sh @@ -142,10 +142,30 @@ kci_del_dummy() run_cmd ip link del dev "$devdummy" } +# Some iproute2 versions exit non-zero from a netconf dump that worked, +# printing the devconf and then failing anyway. Nothing about the kernel +# can be learned from the exit status of such an ip, so find out once. +netconf_exit_status_usable() +{ + local out + + out=$(ip -4 netconf show dev lo 2>/dev/null) + if [ $? -ne 0 ] && [ -n "$out" ]; then + return 1 + fi + return 0 +} + kci_test_netconf() { dev="$1" r=$ret + + if ! netconf_exit_status_usable; then + end_test "SKIP: ip netconf $dev: iproute2 fails a dump that worked" + return $ksft_skip + fi + run_cmd ip netconf show dev "$dev" for f in 4 6; do run_cmd ip -$f netconf show dev "$dev" @@ -920,6 +940,17 @@ kci_test_erspan() return $ksft_skip fi + # the kernel can be built without erspan, rtnetlink then has no ops + # for the type and says so. A kernel that has it gets past this and + # fails on the attributes the probe leaves out. + if ip -netns "$testns" link add dev "$DEV_NS" type erspan 2>&1 | \ + grep -q "Unknown device type"; then + end_test "SKIP: erspan: not supported by the kernel" + ip netns del "$testns" + return $ksft_skip + fi + ip -netns "$testns" link del dev "$DEV_NS" 2>/dev/null + # test native tunnel erspan v1 run_cmd ip -netns "$testns" link add dev "$DEV_NS" type erspan seq \ key 102 local 172.16.1.100 remote 172.16.1.200 \ diff --git a/tools/testing/selftests/net/tls.c b/tools/testing/selftests/net/tls.c index c9b0b4337e12..07f2b454d755 100644 --- a/tools/testing/selftests/net/tls.c +++ b/tools/testing/selftests/net/tls.c @@ -413,6 +413,8 @@ FIXTURE_SETUP(tls) return; ret = setsockopt(self->fd, SOL_TLS, TLS_TX, &tls12, tls12.len); + if (ret < 0 && errno == ENOENT) + SKIP(return, "Cipher not built into the kernel"); ASSERT_EQ(ret, 0); ret = setsockopt(self->cfd, SOL_TLS, TLS_RX, &tls12, tls12.len); -- 2.55.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel