From nobody Wed May 22 01:26:21 2024 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 31C841953D for ; Wed, 21 Jun 2023 17:18:30 +0000 (UTC) Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-31114b46d62so6417584f8f.3 for ; Wed, 21 Jun 2023 10:18:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367909; x=1689959909; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PQa1TW50ng55egfUjgHkNFvtrJkxUHGXd3+xQuWRT5I=; b=Fcl6/qXzUmggYGHE3KId/OYEYI8EgTQu7nDWaatVpzehTmkisetP54sbJNop4pthMK nEdtiaW9H9ZC0XiggHUxscCoSNdGtOYGpkjD2s9Y56a9WgYj0XlHLHnscC1HKOEWbJZB gIA2Z0q6kPwaQMUuDSs0ZNFq0kIz20fE+XuoGB31BYKnr9zQbhVLrQ+VY4eCPbQ2dUTh WdvNc4PQ4ANcHcjyQBEbK6IODJJTJl13bY5f9pi6OSlVM4RhKHYkrsLFOXOXQ7rQORjv N9onBdFyTLOpFf04HePhEBzypO8XTYWwcEaoFEtcFxvKNtbUM7KhWY1aua1LkLu05nnr TADA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367909; x=1689959909; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PQa1TW50ng55egfUjgHkNFvtrJkxUHGXd3+xQuWRT5I=; b=ltpYXYmEXCDKjuvF0d4HXfAcdirPcmaOI1zNYKeWsAchVWri5tafnTrMyk6F2JbtoF UzOq3yZ3Cspyohh3zsg8wk7a4WsrJ7Q/zpgSIXrDal263ULixo51EHhBbShccK/CPF8D PpCfrpZsoqsM9AXKOmY/Ho8pPl3G1KdhpgPYJ0PZhyDXqy9HSxpR+2OiCVnJwALvlZ0T EQ8qv7A82yVCTZGu+usF5RXFRBVMiPxJ25xbPYusoKoPuygKua1pqxjdQJcGYaPydjxz 96GffweUirfB4eSrAMD6LrzSCAYAT/k5qXAl3uA4fR04B6Zea2fuXPVc7wDt8i+6NhTB IVEA== X-Gm-Message-State: AC+VfDxHOsumOdb45XNKEfFOhidD2hrdHsOGlM7WORbqw5HR/TxyiYQe 8116XlpQgAQV0CItkCAxwaEpzOZxX39O6nIp/pyYFwbq X-Google-Smtp-Source: ACHHUZ4N+9rI4HP5bHVOpayrYP8p65wgW6g0p5TXTX8jIMf2k9vnX72m3k+gJir/Xv4Clv3IkqJdBQ== X-Received: by 2002:a5d:4149:0:b0:311:1b83:e1e4 with SMTP id c9-20020a5d4149000000b003111b83e1e4mr15278690wrq.5.1687367909022; Wed, 21 Jun 2023 10:18:29 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:28 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:02 +0200 Subject: [PATCH mptcp-next 01/18] selftests: mptcp: connect: fail if nft supposed to work Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-1-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1664; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=klmdFirllUiXh8mZSKs1Gp/kh4aYgIJUmIhH/mSzGQ0=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDiu3g1IjmMzZzUjgFbaOKxjVHTxAA1CC3EP ag3+1bzViiJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4gAKCRD2t4JPQmmg c073EACRFXF9QpPuJBUnoEuqUDrpomJz89bEAedLVll0Ry4zK0PGU0C3UJX/SSD6iJmdm9e1pXD FwFixsPd+lvQnrEUNshtnbKiM8bgY7HoX4jpxLyHQ3tC7vRbd+UF5sT/kXvHf08vW6snu1VWfWh Ehe59YIdDv8AVPNBMkZyHcuHIy+3aJC1bDUwm+QeRnKzL1miHTJC5JixhCq61mUCy+UK+V/Apwt IV3pcxlSnsASKHGTtSxF0B9oe6a0TLVeOnUOBNW2HS6mHowAr+FA+WfwD5FSBYl5L1j+97pslUH ZW6N8uVODkV4xfR9FbTbKsHfnwMsBCWc0nlvfYxSNBxRPMjWsaklKV0WMoy+pK3Yz/8gTmdgJ0e onY/tv2C3EBYTLGT3LtEJXOuLRGRaVRytDKUFBMG/AR9BQhWyNDaDK90XGTNYUA05HZNoPqWBbF n3K8mtGn2XE/YcKW5/uFJodwwalHkMQ0PJP7+uJceWmphbbiGZVw++rJkKAoSwRwf7ExPlclAWX AXx48CHjeI3QHojmvGuILSalyC5t6U5yXjbIn7XE+DWBNG77x3ScMmeXa0naH2Hj5kc9kOyLUFz 9nf+WGgfa5kAjssAEyJ71RFsrtKEiA1iUpvWFANgtKx3cuXCJLnsJL1MUouoibTAm6oBYCFEhK5 SK+QnXlxpGOXuSQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 In case of "external" errors when preparing the environment for the TProxy tests, the subtests were marked as skipped. This is fine but it means these errors are ignored. On MPTCP Public CI, we do want to catch such issues and mark the selftest as failed if there are such issues. We can then use mptcp_lib_fail_if_expected_feature() helper that has been recently added to fail if needed. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Fixes: 5fb62e9cd3ad ("selftests: mptcp: add tproxy test case") Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/mptcp_connect.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index 773dd770a567..780b8fef2261 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -718,6 +718,7 @@ table inet mangle { EOF if [ $? -ne 0 ]; then echo "SKIP: $msg, could not load nft ruleset" + mptcp_lib_fail_if_expected_feature "nft rules" return fi =20 @@ -733,6 +734,7 @@ EOF if [ $? -ne 0 ]; then ip netns exec "$listener_ns" nft flush ruleset echo "SKIP: $msg, ip $r6flag rule failed" + mptcp_lib_fail_if_expected_feature "ip rule" return fi =20 @@ -741,6 +743,7 @@ EOF ip netns exec "$listener_ns" nft flush ruleset ip -net "$listener_ns" $r6flag rule del fwmark 1 lookup 100 echo "SKIP: $msg, ip route add local $local_addr failed" + mptcp_lib_fail_if_expected_feature "ip route" return fi =20 --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D9B319BA5 for ; Wed, 21 Jun 2023 17:18:31 +0000 (UTC) Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-311153ec442so5080354f8f.1 for ; Wed, 21 Jun 2023 10:18:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367910; x=1689959910; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ypD/yMyaigzGyqp4qaD6UhyRIT9GcdjywDJ7C1whlb0=; b=SxvRjVbCVuVYpg3TgZL55b0T7gmzpPt7Va59wfgPFM7ngQ8G0xCYxSq+4lBzFg6V7T JhxcsLomYnYelwT2a22pgKy6CGDOmRJoPc9Lv5p8/9YKa0i32OCFg45xqBXYW9d7BXO2 WkXHONZ1ueKjgMX3yoRb37/2alCGVMGTxjTnFm3Z7ioh4EH/0FhHa16YUZxajNH+ei3S t/4cG+3SIh42HLckmhkL2FMQQ4GysTzjFRlTwTSD18Dtr2lK0FJT6XMndVOB4DuI2s3y qp92jDRBZAPwGel7Sp7P5ZTmQqR1TwshQqNhVvubCsQMJolj/bQ2kjhnM54S1L+tCw1+ qXTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367910; x=1689959910; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ypD/yMyaigzGyqp4qaD6UhyRIT9GcdjywDJ7C1whlb0=; b=a2QIe+gF87YkjhZMy871oHrlu0vi6g0/sAQAiI08uaTlXB/cY3FJMB2Ua9VEcn34Rr +r8jyZXjPZXm7urdqTxMnfO900eLXvkwwYD1s+HbZh67dn03y7lrm0Mh2qSr4N4doNM+ jkaiFHh1TBMK01oGsxiNYTBTW3B3+CYCdZSPb652A0GmFgSn9/VxloJuEhtFNLP2T2em sVN8YHR61CSsiPQIjh+/KRLKv2ztjpxbVU+K9PQ4plq89BDr2d5p7UzEYNgiKR8NClaR P/3GdeOnKaWai1UcWwijoV8xQjD5DTK7dGQpSMO+KMHDBnvaHJaxaNIEg9r5CDGBZeRk uuVA== X-Gm-Message-State: AC+VfDyNf4ECPGCBPQOWU/fEgffvUyaTbwiZXL1ZV9L/8IBrsi5UFAj7 M7IvxwS1KCBBS8qiktM+X3RpOPyubaO7yN+OB56icYlx X-Google-Smtp-Source: ACHHUZ4Ms5Irvt7FrceXJXIrazPSJUrNB249OQrL0L++thh6LNKDHVqglnL18x1sC6Pe+z0+UmNSwQ== X-Received: by 2002:adf:e910:0:b0:30f:c7e5:6176 with SMTP id f16-20020adfe910000000b0030fc7e56176mr14751199wrm.14.1687367909730; Wed, 21 Jun 2023 10:18:29 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:29 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:03 +0200 Subject: [PATCH mptcp-next 02/18] selftests: mptcp: sockopt: use 'iptables-legacy' if available Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-2-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2289; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=jK/gu3UqUgOJPUBK52hpPFELn9TeXPonVGSj+M+P1sw=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDiRk6BdWcqGZy9u823XVV/OmEQZhD3ubAnv 8sU/w8ZwVCJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4gAKCRD2t4JPQmmg c40ZD/9r6jtHvUjclwNBhTYZU/5BgvdOFuxRfj7leJuOBbQPjKaA4p4aZV24mRHec7UXmBW/NMw 1jYT/KKsxzySRzz6KwNqpIOakXIM5wCiK9NHBsyJF3q89aXlJkPHjykewBJp4c5uXbOHRU0v8qS ovdHvfB7R+T0BMhJa/wYdk3V1AYgtUjNU/9LPJqw0XquJE5bB9DnlLmulK4W3neRyLqkvpnNULW eC4ayEutHt7PnCCjoOwTL1XfA6xfJBQSr/+JZPlJ+VeHSSeZCWqHDrCZbbrOwImaruEFcv1K1c3 Gba4nDDFIzEhweozra8yjM2JTRooxZN+jNVIsDnDqbpzB+Yat/fmpEqyCR4ppuCJk9EHXfrQF4p JYG4JOOZhiYaneB1wNQd6RyX2RVFHI9aABOF2yF4KA4ItJlWWl0ryfibM5aaSFbWqCAgUg7CVpY 9g/m5PtGeXcDtHyDfavXVUjmpUzupgQLIII/pDZj0iGUPMNhfbfo7+A96ApkbzBsRFhDDpo2ock GGtQ9I6PqBrzpQiZLOwV68eRTwx7GJsh8Grh66XJYvAo00daKrwBzL7sG8Z0XbzkL8MN3Y1fUEW dJ5OcdfBdML7mNHnrROrWRAo+slS6YcJkHKiUxBU+Z+e0oX7Xh+h+DJCWilJeZJshxq3XWIS8Ho BXM6MfCLr8gvMtw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 IPTables commands using 'iptables-nft' fail on old kernels, at least on v5.15 because it doesn't see the default IPTables chains: $ iptables -L iptables/1.8.2 Failed to initialize nft: Protocol not supported As a first step before switching to NFTables, we can use iptables-legacy if available. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Fixes: dc65fe82fb07 ("selftests: mptcp: add packet mark test case") Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 20 +++++++++++-------= -- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index f295a371ff14..c21bfd7f0c01 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -12,6 +12,8 @@ ksft_skip=3D4 timeout_poll=3D30 timeout_test=3D$((timeout_poll * 2 + 1)) mptcp_connect=3D"" +iptables=3D"iptables" +ip6tables=3D"ip6tables" =20 sec=3D$(date +%s) rndh=3D$(printf %x $sec)-$(mktemp -u XXXXXX) @@ -25,7 +27,7 @@ add_mark_rules() local m=3D$2 =20 local t - for t in iptables ip6tables; do + for t in ${iptables} ${ip6tables}; do # just to debug: check we have multiple subflows connection requests ip netns exec $ns $t -A OUTPUT -p tcp --syn -m mark --mark $m -j ACCEPT =20 @@ -95,14 +97,14 @@ if [ $? -ne 0 ];then exit $ksft_skip fi =20 -iptables -V > /dev/null 2>&1 -if [ $? -ne 0 ];then +# Use the legacy version if available to support old kernel versions +if iptables-legacy -V &> /dev/null; then + iptables=3D"iptables-legacy" + ip6tables=3D"ip6tables-legacy" +elif ! iptables -V &> /dev/null; then echo "SKIP: Could not run all tests without iptables tool" exit $ksft_skip -fi - -ip6tables -V > /dev/null 2>&1 -if [ $? -ne 0 ];then +elif ! ip6tables -V &> /dev/null; then echo "SKIP: Could not run all tests without ip6tables tool" exit $ksft_skip fi @@ -112,10 +114,10 @@ check_mark() local ns=3D$1 local af=3D$2 =20 - local tables=3Diptables + local tables=3D${iptables} =20 if [ $af -eq 6 ];then - tables=3Dip6tables + tables=3D${ip6tables} fi =20 local counters values --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0C65619BAF for ; Wed, 21 Jun 2023 17:18:32 +0000 (UTC) Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-311099fac92so7157454f8f.0 for ; Wed, 21 Jun 2023 10:18:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367911; x=1689959911; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=h2EdQ3JDQONImAx702zX61SGKq1gne/3I+N13/5zM6Q=; b=sJcJhSNVeuyCml0NpGi8IvlyMXrUDDp0ZlDl0pP8x3+AJyZxihbX/zlQl5GXoqedw7 R3DuVXtORXQLp/6BvSXalTFvPKAqCRImLIz8wNCuWBI55LdtQayRXW2gLwwWAbLFFs3U GBDME0G3f1hwUS5PcISBof+CyG1cnLMlLXyxEsAZwPYTx4ffbJYP4yrDvtoARVpWI+uD C8PP6YMdvwYu6FeM094OVbyLJsVz2firCuLhYRTI7wBH8KCYgZQ05Vvlda5GCX8c/W0p HexifVaFGcjGOOK91cMmZRYAqQi5xzGyeEADhJqTwTunWmMbOzXld3poPTWns/EOWWUB ubhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367911; x=1689959911; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=h2EdQ3JDQONImAx702zX61SGKq1gne/3I+N13/5zM6Q=; b=LrOya1XyvjimEMwuYFcT+jt8q7D1Bf/HHl8ukqOBdXO1aKVO49g3vttKSdzaC7gcxS I12ISStf2weGKU4pMCMUQVk3l9YEXFBaG9ZIfr23v67BhmNKcDsVIu3A8t7S/AmmN2Ce 3K/6iLjkQTzlHwUq0LS5md5EvwoCNCy7gl2tPHZ/ml3GLbV/KRaBWl2jPKDQLri4oxt0 5MqyqtZuhC+EbhOUTttHcRRNQ2nl52thhHa+Og0dyd9N0p/flJOP5SYj1d6p4uQ8g182 NtD0H+q3uFL0y23UnmWQBBucUt1kWboCSKL4UxrhXOh/zEsWsA7uJOFQN21OkwwdB0jD y4Eg== X-Gm-Message-State: AC+VfDwgx3dKJfvi5CxeJId8LPWk2s2UUSFn9FtJQ+cltd6nTgXotL5j QVyGFnGKCFSlwVmJzb3UNylPSo0PmF+a6gY8f+B5MuUe X-Google-Smtp-Source: ACHHUZ5fV1mMTuS8plTifwTGaGWUqZerMKJl+mEEZJWElR4hEZY9SLiF7Hqtj/sQ2YbHQCXGsKdxcg== X-Received: by 2002:a5d:62cc:0:b0:30d:2184:84c0 with SMTP id o12-20020a5d62cc000000b0030d218484c0mr14165611wrv.30.1687367910854; Wed, 21 Jun 2023 10:18:30 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:30 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:04 +0200 Subject: [PATCH mptcp-next 03/18] selftests: mptcp: sockopt: return error if wrong mark Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-3-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1695; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=59N81gpCRPDPY0cHa0+5/xM5wYQnpdwvir/4Bjc+mPg=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDiCCQ1vv1q1gje0lFMuMuAnbitEyLCW1qzk +jJyjyLKcSJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4gAKCRD2t4JPQmmg c9duEACG7p26Uv2CnZcITPRGMUkq+Ah4kC89Xeakl0U+ixn/jXBqEok7gmpWp0Xv8vV/t5ThNAN kh0ITcQWp7tKVbi4seFfySADbFMFIrB1qczOHAWpn9OkIi2rMn4vU5jIMIcOB8xF6HARA0Poofl 7i3qJwFBR8/41KsSh6caegffChVEmPT/ADMJr7SH2AsOzQ+kINhdpYfKofmqpaNNOJcopF5/InM 97iieTmHM4iqINOnoRlOt5onuFxTPNi3zEygkvgSNxvkk8GF3lLPnHaZG4t5ot+LyCgDlE958VL 1RcT+tZy1cn4/4K5p+33ql0jRifnyzj0Q82fn3hJCxGqv8bKk0IrHx/tyPj+v2QqODw4pxqg04X M9S8gutLx3chaBObtyabwrf1UNqaRy3Hd8ehZEEZtw3YiiyZd5azWECXquBravfGrfNKTwbu2Ol yYb89uxMjiNiMrLOBFJYuXpmTXZ15QTKxnYgzVu8qtOXBbY7Rvch7E2Z+1TtCaUFvP/R+mEl74I 7kcxCXouiSGeVDAzA0pVn7DPSVUzI4MCMvxKeMJAMl6oV1moCvWjNXYgmvJgtlRnKKstQjgfsZ6 k6qZbjUlvtrK7+TaM4epIbGiUPFo11hOj+zJiU1z8lblbgzfliSQF9M1kc0n16ixBfgV9UbyzFo +mV/5YcUAk8TuIw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 When an error was detected when checking the marks, a message was correctly printed mentioning the error but followed by another one saying everything was OK and the selftest was not marked as failed as expected. Now the 'ret' variable is directly set to 1 in order to make sure the exit is done with an error, similar to what is done in other functions. While at it, the error is correctly propagated to the caller. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Fixes: dc65fe82fb07 ("selftests: mptcp: add packet mark test case") Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index c21bfd7f0c01..dc8d473fc82c 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -128,6 +128,7 @@ check_mark() for v in $values; do if [ $v -ne 0 ]; then echo "FAIL: got $tables $values in ns $ns , not 0 - not all expected pa= ckets marked" 1>&2 + ret=3D1 return 1 fi done @@ -227,11 +228,11 @@ do_transfer() fi =20 if [ $local_addr =3D "::" ];then - check_mark $listener_ns 6 - check_mark $connector_ns 6 + check_mark $listener_ns 6 || retc=3D1 + check_mark $connector_ns 6 || retc=3D1 else - check_mark $listener_ns 4 - check_mark $connector_ns 4 + check_mark $listener_ns 4 || retc=3D1 + check_mark $connector_ns 4 || retc=3D1 fi =20 check_transfer $cin $sout "file received by server" --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 525AD19BAE for ; Wed, 21 Jun 2023 17:18:33 +0000 (UTC) Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-31272fcedf6so3167530f8f.2 for ; Wed, 21 Jun 2023 10:18:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367911; x=1689959911; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=9RqGRI/B/YItKhReSPR/OXWduSMRpWckGJNnLbWPvb8=; b=1eI3O6UkkvPq/xjIiedFz2xYM+nY6z3zr50XNf6Rq40cfptBZXMOSN7bYuoZD51Udx WAl+NhX3b4cK+MofKJP4T6fns1OXU6LFozjLufAZmc1B/1DgXF4d0BMpW1E7bZM/zm+Q fkjCEDlHFDkZZQkwXPy3LF7TglXpF/koM76TeV4IIXDXDRFtFeUMcH91NkrLcgZu7tW6 8NsaOmCcJjNijfH/U3CvJPfITF32uTp/f3GIu+GQjV0lE54lemXKiQDP9mBG9AHhz2fE 2d/ibCO75Gtk5m02jTIAYFhIYTzVZC2g3FcY8dgLIisBX/N4Lhub5cSwEvmvoE6IrqdF NLgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367911; x=1689959911; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9RqGRI/B/YItKhReSPR/OXWduSMRpWckGJNnLbWPvb8=; b=TsW1faKRnZYgDS216eiClsXMkzpHXtZYElQgduAuVEVvZkmyxuqbK2z4ytbckIm1qI Nu66Ldt2MoZLoiZ/ySd5cP0gmVqi//9sk/5RB79lGK82qEUQA+DpvQi0/AnmYpIkbKlL n4MLrz/SeXU2h/u6mqdkjuWZU6Z01yFfncVUfy7u0VyEvlfOdNm+bBxiZlCvWKZrEONW ePP3O3Ai9EH1OjLe6vFFR1qnqtd3RzNB/0xPm5hA2uc5XrKppTyWaueFS0qANoBojTkz niBn/FQSz4HFjBo/R7It1J+A3eIf7mQb6qg+7frzdIDC9IhW9O5P/pTtPGFeCP8r5xTW pXpA== X-Gm-Message-State: AC+VfDyguLzR7CUgcmrlgHrZX+CbmBbEc5Mham+N85joq53ZnuYgBQYd CMDM2m5FDM9WaLr0pawD37csEkvmDUVJ+SBKhuE+loGr X-Google-Smtp-Source: ACHHUZ6A46P+ypMcgtq1dkw+Q5xiguRXK203Ukdg8gmOmIIvCYfVB74KK89YFLMntmwR3Ro0HHnYUA== X-Received: by 2002:a5d:5259:0:b0:309:303b:3dc5 with SMTP id k25-20020a5d5259000000b00309303b3dc5mr10640452wrc.7.1687367911594; Wed, 21 Jun 2023 10:18:31 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:31 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:05 +0200 Subject: [PATCH mptcp-next 04/18] selftests: mptcp: userspace_pm: use correct server port Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-4-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1146; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=FQa5z10gzlOU2HJw5oPCa/iZCc9Z9jUtiydDOM6oeRI=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDiVx/lo3ziTmAJ4XOJU5zmFDrcDP4ugobTl ZuyNxCj/EuJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4gAKCRD2t4JPQmmg c24mEACV7n7aRbVMhIlYKzWBBgOI3KY1khJOPuHyINkaoGJpZIs11qFbfWkxd2RIpMtCNmHgSOp tmt/pezJU6XUZ3dhJTuuvkXPBL44p0m/KyQe60wwqDtG7qpuGN+z1MSGd2bdqcnm67vVOAsqsGZ xhrQWDqBijAvIKQfP3Qt590rN3sye65m6cKIfZxfDrc9SnJ3ilRz/Dv4Yq0dgl8KQmp4dyEsuKs F7I4+718KUFtemcIY0rv8pKmUdkWHbPZGKSco/EfaD0pauEoVr4iWVcOSwjanxOa+cOBTiPrEOy KuJBRI+6xvYX13ivKq9eRDpuWYLo0FvKlgQ2C5ksRd3BkdgV6S0npUFwCo/agSRchFgSwmt+5H7 Z6+yi4+Mj3Rq7uDuaVbuXYew2xjwtv+W4rlJGgBK5mKTvBFxYmqtIbK4Tp6oWzsNP6QD153iUOc akl5gWwF8fJoIYu8fivtdD/aJIsHSZ1NkpgKaWOv0pqVofrEgm4TOifXW32HvCYyMLeM1exeN6X Puh8Dnq0lcoH7YQ1y+tZFQ+ZHkypRs74rfxuKsZ5q5ZGDzTbYrgE6VK8sWf2GvKHFcQj5fXS2hU fHW3AU9HN+OL+rzOrkREnCwkHzR9YbUuXies84A2Mk7g2cs6s4fF6EX0uIiw9APEajWKdKeZ1Cp ghcRlGZY5PjhLZg== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 "server4_port" variable is not set but "app4_port" is the server port in v4 and the correct variable name to use. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Fixes: ca188a25d43f ("selftests: mptcp: userspace PM support for MP_PRIO si= gnals") Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 98d9e4d2d3fc..841a67a7d524 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -848,7 +848,7 @@ test_prio() local count =20 # Send MP_PRIO signal from client to server machine - ip netns exec "$ns2" ./pm_nl_ctl set 10.0.1.2 port "$client4_port" flags = backup token "$client4_token" rip 10.0.1.1 rport "$server4_port" + ip netns exec "$ns2" ./pm_nl_ctl set 10.0.1.2 port "$client4_port" flags = backup token "$client4_token" rip 10.0.1.1 rport "$app4_port" sleep 0.5 =20 # Check TX --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E0DAF19BB8 for ; Wed, 21 Jun 2023 17:18:34 +0000 (UTC) Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-4f8775126d3so4140387e87.1 for ; Wed, 21 Jun 2023 10:18:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367912; x=1689959912; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=QKeuqA239CLSj2qvsrYqFrn6+p3vijXBy9Uy0RXsss8=; b=SfAYd015NTjuqjqULxIfgf9zqAIslovitFKHaaY1jNQDEngvbpUMfzWHOKNaC0hNnl ylseSFwMbIEzNWB4QAar0OfJ/sCZFahjD3gC0OLiSYBxINBM7E+zLiPYRmS5u4Izo0mV uxeIcA2iUzzqcvON4KNEEUvSgf2fglMTOxj6N+kjdKDxSsdUqDBeH82/3gUh+27FedNZ wTHVxKRnAP8JeUZIccqfsh0EhbHuqV/jYiqZ7MXCLUxG5XRcHmIf0Gq9UgZZuylyK/Y2 /k4dwy2bqHdIQal8YMDH7csX+0Q+ylmdpK5c4qhcveZj7COn6NX263YzfNIxzQRcAgmq 835Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367912; x=1689959912; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QKeuqA239CLSj2qvsrYqFrn6+p3vijXBy9Uy0RXsss8=; b=PivrRa2FUmGRGRMyJuct5NJIqMdUX8h0MXwZtzYZjYWUajzRkdvL021+zl55R2IS+F ylgF9biHEUXrpkpLoRjuDH2/wxf/gI0MFOiDs29DdXQNzYZteGNALydm1MwqROpQGpeA UajforgKgNJ2RTFa4ljyHX2SF1F5rCLjjbYN97vJFEjUyQ9Yh4hmvjJLHMUB2+4Mk4eL UZMl6WC0f3pyGNj/jaN1dirsj0vyIndOmxx2MVj3K2On4TkuRd8FslWxGMXIgHOfzk53 ysjixfbRFntFy0LIRB058Z+NrvJzvRQ4BVXIv2rWBXupaMsDu05VAyCy41nKCBfDKdQX xrzw== X-Gm-Message-State: AC+VfDyfG0CV8NhXBAsBPthdryvHu9fhKrsWwgoL93ssjRMzmCrvsqSi MZWAVVfB40mHqOR4VN2kVs5W/tTlnWfNstgL9n9JIhLh X-Google-Smtp-Source: ACHHUZ6K0DHJ64U8QC8UY0GanjRtEn6UfkgVOh+xqUyKA5xT5zRgZZnGehxDjc9WMGm9o+S41gVO1A== X-Received: by 2002:a19:f246:0:b0:4f6:2e78:e4ee with SMTP id d6-20020a19f246000000b004f62e78e4eemr10034871lfk.68.1687367912446; Wed, 21 Jun 2023 10:18:32 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:32 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:06 +0200 Subject: [PATCH mptcp-next 05/18] selftests: mptcp: userspace_pm: report errors with 'remove' tests Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-5-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1170; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=7n4lCE+ehC4/g/hR/ng1wq1I81Ib2VuFgi9sTdOIZHg=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDi4IG50sovDaP3KTff57gZOo6PS9yhv3lNg +nR19TLV22JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4gAKCRD2t4JPQmmg c92JD/98XQ6PAZvwe8lrI11xdTe21zf5NTxQGX5WehjFcEMwLHNL+HiQqzItj5hOKUmvumNbMpg n08pR1KtAl6IaxeKl7uDn21E1eJm7m/vcZd1y7uN4ezgnOyAY/o5iRY7d5pZbdWMA4XybZKwQxt Tie/w6IiNaWiaYjPYswV4jLjjnCnUEaYEVmrXbhDnnE6fPV6z1E8etBts2oLzbJPnSdG05rrPZy 2PFgSiJbJBbejfXs3cjx6fnK8bexkCwDj/FmQsJzYK429IjFaxhdOgimkXSgGeiRHlHoo+Hqpzw MWwxBJzpfgO1TVfu/FDktO1IEVZKc25al1z9lxaDF/TBjI7H1M1ZVkdkdAFCrwxv/wpQNoM9BFg BM1SEj3YK5u08CfNVeYXw/m/nkQ8POoHLRs9QT5cGSQAMF47I7T2zmFKngPC79T83r7euwyC5pI qhAKQyPHU3s/qFPxa0W+XmR7agc+VQSQgJ3rXmtFNW1kPu8jgZGuSGbgRRPOmwuq0J7qIhvkAx1 t/cgn+m5drUxudaqboxRN7L5n1Da1ywEsMEbf3E9x1jE93d9KWhVEpehybSepWhLgEqyrphHGL5 izLEQQKLht9y3tJOk+YS/Q6Jj6H/V0a0DR9jKcrPNJ7Hq8zyqHDJdQGywCIqsn+mwqw2TuMO3QE UHbFZP0tLOilTzQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 A message was mentioning an issue with the "remove" tests but the selftest was not marked as failed. Directly exit with an error like it is done everywhere else in this selftest. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Fixes: 259a834fadda ("selftests: mptcp: functional tests for the userspace = PM type") Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 841a67a7d524..b180133a30af 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -423,6 +423,7 @@ test_remove() stdbuf -o0 -e0 printf "[OK]\n" else stdbuf -o0 -e0 printf "[FAIL]\n" + exit 1 fi =20 # RM_ADDR using an invalid addr id should result in no action @@ -437,6 +438,7 @@ test_remove() stdbuf -o0 -e0 printf "[OK]\n" else stdbuf -o0 -e0 printf "[FAIL]\n" + exit 1 fi =20 # RM_ADDR from the client to server machine --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 93E5219BAF for ; Wed, 21 Jun 2023 17:18:35 +0000 (UTC) Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-3f9bece8d1bso9714335e9.0 for ; Wed, 21 Jun 2023 10:18:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367913; x=1689959913; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=dPp0ofcUyqkhAjCDcbfJCpnUAodJQAp8o3E5VVr+9DQ=; b=M6am/+BsP/VLGCzqGlLH1bcY6aLP/WEaFoRQCsjBB6r3ux69HL5A99SgF+6s+nKBYZ 4KLugkENw3dhDmbHFCEuaXgAZU3mJJNVTiEcxgKAS1LhPeAXSwbF8oh2CZzta2JGyjNB h7GhIfp8FV+pzGU6rpQqMv3xCssA4nuSspgeNdeoUYA5NUtnY5qSCYy6vtQmeQQ+oOtZ qrMo/nSme5T+ZOpbmSy0unnK6QjncEXcZ+dZ7RQ4XFdAq/jTlrgcCr8YFl7yvYBSLQGv S/i9Ig/7YJ+9BLLfaCOE0nt3Ro2EaF+2CdwpOUsq5LhzHmPCdSYkVziV3lxm9N43r+m/ bFvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367913; x=1689959913; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dPp0ofcUyqkhAjCDcbfJCpnUAodJQAp8o3E5VVr+9DQ=; b=Clmc3TjKXvMLqhP7pIJys4XprXZAgc53D4xIByEZ55KPy67jedEb0Qy+IQGnUfm2E/ rzbNXZuKiwCkRr/Y+8GAI6pGo6rdl7dhj/NS4JJIjDTw23YJhKsgdFPNTnGB8pFevfIt puOZACnzRAtveP5lmNjZcovC21JYgcP1VEkW1j/dGTwJFRvEo5q9vDmXVt+Rir1uoFQU eR8RMJXWSXH+evakvnbHMZJ8Hbgu+pWIPcHzJ0JlfNgeo/fIPw78ApPWQiPx8mmHxzYS qygTSHd4Iv0woZeJ0Vwzb44qwRpX59Yk/ImYEek43kH5gOtxCAI1QK3ZlKAIBUWVoQ4e i/Pg== X-Gm-Message-State: AC+VfDxw+m50Tl9fAJ8U9sQmegq9n/W5wriTurYYgPOfmy8A8dpfPlV9 r/ekKPkyQrsR76/dsy6/Iyn26Ql6XOTEPlXMv9gqi2sV X-Google-Smtp-Source: ACHHUZ6C8tbw6KXJtA90PxpNml8d5XMrqcE343H7itcuyuU8aeVFGDR8ybzq3b8EG/qUPLZOxU+PwA== X-Received: by 2002:a05:600c:364c:b0:3f9:c82e:9d87 with SMTP id y12-20020a05600c364c00b003f9c82e9d87mr1394016wmq.13.1687367913274; Wed, 21 Jun 2023 10:18:33 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:32 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:07 +0200 Subject: [PATCH mptcp-next 06/18] selftests: mptcp: connect: don't stop if error Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-6-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2356; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=hCwZDxC/ahUh3GbDHB2wK455fgZOje1bl7rk8p+i4JQ=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDiTHrJFbouJaxuEv1Bc8Pvxpd5lSzcG5g+N LUTXAjp0CmJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4gAKCRD2t4JPQmmg c8wlD/94qq7NMRRb8xv4uWI0Powtq/A+why7/SmXWnXBkf8syPvTkUrPRdyJa/BERAwzKxzhqf8 cz1tYrRZK9K6CKgZnJsFGKup7pMHx81hAO2GlXbJzD/Zz4X4nl17snwSwz+p219vFLj9KUYwoOG peZ3Yga5xQe/eODFblGVHnbsggAxJ0Bf/uNO8CKi5oSFRjjaWEQtJOQGQI7YkPUG8N2lj2s+kAp JFmqfZ/xLUjHlQEYHRp8vkYUKRG3LYtrmniFFh8UZXnchzeqb4Zs1ZJRMPYNj2wp/QQg75xN6jB fiIBob+/vNCLT2OsBlOhIhgCaTW43RPJxJB9ccLnd9MOvlr77qaSqgEdntVvLzxzYDRJUv3pW3a aveiiGD7vSTPC1+PtSyfSVMc6v0lxkbBiwDNeQkaOi1b3edZwGTde3Z6L9zfaLtW+92t0pDKPD4 3NQWKpUIMkwyL5R2MGOotjdNfeiNBR7KFx5mPuXNJ2//J8vmamemGGZwJCPyBIwa8q878mYskx2 3FY1lfzVOOkoFLZeX/iEs4aj4U5vvJtycd3y+Ugnp20p6UvHXZTFmtduznFyc9EdvNXBWNZvGER TS2IjB2CNz+boAqxV4nF/FY2tmbDkl96O6Ki9LZHJiFTF0AKaHCezSWIBmnoeFYutJhSPANH0dD KDRzYuuXqgDnySg== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 No more tests were executed after a failure but it is still interesting to get results for all the tests to better understand what's still OK and what's not after a modification. Now we only exit earlier if the basic tests are failing: no ping going through namespaces or unable to transfer data on the loopback interface. Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/mptcp_connect.sh | 27 ++++++++++++++++--= ---- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index 780b8fef2261..dba58875ef4c 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -7,6 +7,7 @@ time_start=3D$(date +%s) =20 optstring=3D"S:R:d:e:l:r:h4cm:f:tC" ret=3D0 +final_ret=3D0 sin=3D"" sout=3D"" cin_disconnect=3D"" @@ -837,14 +838,25 @@ display_time() echo "Time: ${time_run} seconds" } =20 -stop_if_error() +log_if_error() { local msg=3D"$1" =20 if [ ${ret} -ne 0 ]; then echo "FAIL: ${msg}" 1>&2 + + final_ret=3D${ret} + ret=3D0 + + return ${final_ret} + fi +} + +stop_if_error() +{ + if ! log_if_error "${@}"; then display_time - exit ${ret} + exit ${final_ret} fi } =20 @@ -934,23 +946,24 @@ for sender in $ns1 $ns2 $ns3 $ns4;do run_tests "$ns4" $sender 10.0.3.1 run_tests "$ns4" $sender dead:beef:3::1 =20 - stop_if_error "Tests with $sender as a sender have failed" + log_if_error "Tests with $sender as a sender have failed" done =20 run_tests_peekmode "saveWithPeek" run_tests_peekmode "saveAfterPeek" -stop_if_error "Tests with peek mode have failed" +log_if_error "Tests with peek mode have failed" =20 # MPTFO (MultiPath TCP Fatopen tests) run_tests_mptfo -stop_if_error "Tests with MPTFO have failed" +log_if_error "Tests with MPTFO have failed" =20 # connect to ns4 ip address, ns2 should intercept/proxy run_test_transparent 10.0.3.1 "tproxy ipv4" run_test_transparent dead:beef:3::1 "tproxy ipv6" -stop_if_error "Tests with tproxy have failed" +log_if_error "Tests with tproxy have failed" =20 run_tests_disconnect +log_if_error "Tests of the full disconnection have failed" =20 display_time -exit $ret +exit ${final_ret} --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3071E19BAE for ; Wed, 21 Jun 2023 17:18:36 +0000 (UTC) Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-3112f256941so4129050f8f.1 for ; Wed, 21 Jun 2023 10:18:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367914; x=1689959914; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=jd1BOMbJnFLwt8Atjjr36zRC7VcTomJHW26m34zzNO0=; b=VAqmd8ZkDT4HeOjrGFsQRAEfCkWcIXNfQOpS5AADMDeYV6yLCNQP0XyZJVVrO8KGuy wIesNstWy9Vouere+FHBlYv1qvAoPIwvxVtw0QnUsOv4P/uuvPBw3hRjSCfOT27f8inL OfaoxfAdoNzsONIa8ILK0uQfyVindN2wSsxXUmp1ebRiaIEb7KXyIKSj10sKPKOPRhxr FudHJJ1D3bln7YyHkPSFm8Q8btmg3yt64poxOBgliS/Suq1T/4H9Qyk+glku/EfeGDve YXE5gXHlxV7EoofwtR92en+3BmLMaHRzNsQm/55WaNx/VvL1K+oo2hpjVStMqOr+1opp TnAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367914; x=1689959914; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jd1BOMbJnFLwt8Atjjr36zRC7VcTomJHW26m34zzNO0=; b=YmHNjwNsOKz0gq2+ZC4njeO1ySUOYXvtw85IbXq7K6IGvWh5H73zGlnFqKaTO6Xvls vdIS7ngx1njPtvOcqxs6Azs4FvN6MV3SpgavyGyBkc2xLr2ax6BqaQVhyD2agiCHOVw1 DBtYtERA8ZHEk9LFqshfm7MU/YV4nwF6KL5Tj92tsXkcz+ew29bWMQMAamHqKN73Lbd5 MMsxzk9pXzj4+Sh+4H/a1ykyh++V8ZazzF1YATLZ7ljPPRgP0gsAAbeaVInDGYfciCGZ OI7mxoMjgWl6jT4rBnW3L8M0EuCtxLl8PngN+1ZXg4s9M0MfA+2eVRNDhBZ5y0TJIjqK q5GQ== X-Gm-Message-State: AC+VfDzbx2PWytMTORAco9WUoA+ARbKDoUxRQRf/KTUb/imWSHPBkR3J mMaB0n7nnAvh1MGfmSrrVnHD7axQPXDl2xMTgToNsEry X-Google-Smtp-Source: ACHHUZ6khoLN23TrqphyJhG+jo3ndX9B7JuYaThIO1+X5D5gwrqJ7mpovMnin7gRF8nD7OqCSQAK6A== X-Received: by 2002:a5d:4cd2:0:b0:30f:ce60:a3a with SMTP id c18-20020a5d4cd2000000b0030fce600a3amr10609405wrt.10.1687367914179; Wed, 21 Jun 2023 10:18:34 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:33 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:08 +0200 Subject: [PATCH mptcp-next 07/18] selftests: mptcp: userspace pm: don't stop if error Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-7-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2540; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=PsozxEb4SxEpdyVzTQmz+Pia85BGsPww+pdoW8KjXRE=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDi7VMsCvLXiCZklKYcP72OCQWkp9bbPDZfq YWAJ3rtrnaJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4gAKCRD2t4JPQmmg czgLEACidecNOyqkTZH9n2NebGAXpM2I0uYbgLogK8wtN7wEBEFssRNnii0eqrsJoKJ2P/+P6z/ QnJKnTKeXnrFD3D9aBwMZu3iGQ+PDys/dQtaXLosjWS4QHpYv5C4q3ZelfNnnX0cWPTfhXMePAB kJRD/I7/Ay1Ydw5VQOFRuzkhqCR9Ba1CuZrfGGgZR6hl5JTmSVF7jmQGplDsUD3bRBJaIWMXo2D gbXEq0CzMmzhclLlt6o1kfhtxamd78AqV86jmnFiS5CiFU10r+Cx/SK43T6AG7f6ngK5zSOJJOe 4G6mHUK0iUjkAQ+ldPD3uCLkXtDDo4QxtCbgtldIN8w28JbTYjfBHgqgb1PTFfYcWieGlfeWF6k 5AUVhOFczYbuALlayfkvGX/Rxpdb83ZwYQ4mXDm0dPFisaMDZRqWfbFT5/eo+cjqQLdlpt4geWp 6Ye0z2LxqoXVFUkLtxh7Mm04wx8deQbEezl+x7BpxhJWl2C9zGvBKKNVbf9/dIPMxO3tXWtxILm t9WsRANfM+PcInQ8ctRwsdzMC2qL/e5cyw8VkWqQeCNKV0T/eQkTV2CZ2e9T+eesgE5Jc8raH+L lnXvIJtwV8+mJsegQ23+XepSCqZlSZXVilZ7stXZrbzMjUFeq+SFTF3czKAgVnh6qTMCXQqN9yf QNwYvWcx2IYBQzw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 No more tests were executed after a failure but it is still interesting to get results for all the tests to better understand what's still OK and what's not after a modification. Now we only exit earlier if the two connections cannot be established. Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 21 +++++++++++--------= -- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index b180133a30af..c57ce4df4973 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -52,6 +52,7 @@ sec=3D$(date +%s) rndh=3D$(printf %x "$sec")-$(mktemp -u XXXXXX) ns1=3D"ns1-$rndh" ns2=3D"ns2-$rndh" +ret=3D0 =20 print_title() { @@ -257,21 +258,21 @@ check_expected_one() # $@: all var names to check check_expected() { - local ret=3D0 + local rc=3D0 local var =20 for var in "${@}" do - check_expected_one "${var}" "${ret}" || ret=3D1 + check_expected_one "${var}" "${rc}" || rc=3D1 done =20 - if [ ${ret} -eq 0 ] + if [ ${rc} -eq 0 ] then stdbuf -o0 -e0 printf "[OK]\n" return 0 fi =20 - exit 1 + ret=3D1 } =20 verify_announce_event() @@ -323,7 +324,7 @@ test_announce() stdbuf -o0 -e0 printf "[OK]\n" else stdbuf -o0 -e0 printf "[FAIL]\n\ttype defined: %s\n" "${type}" - exit 1 + ret=3D1 fi =20 # ADD_ADDR from the client to server machine reusing the subflow port @@ -423,7 +424,7 @@ test_remove() stdbuf -o0 -e0 printf "[OK]\n" else stdbuf -o0 -e0 printf "[FAIL]\n" - exit 1 + ret=3D1 fi =20 # RM_ADDR using an invalid addr id should result in no action @@ -438,7 +439,7 @@ test_remove() stdbuf -o0 -e0 printf "[OK]\n" else stdbuf -o0 -e0 printf "[FAIL]\n" - exit 1 + ret=3D1 fi =20 # RM_ADDR from the client to server machine @@ -859,7 +860,7 @@ test_prio() [ -z "$count" ] && count=3D0 if [ $count !=3D 1 ]; then stdbuf -o0 -e0 printf "[FAIL]\n\tCount !=3D 1: %d\n" "${count}" - exit 1 + ret=3D1 else stdbuf -o0 -e0 printf "[OK]\n" fi @@ -870,7 +871,7 @@ test_prio() [ -z "$count" ] && count=3D0 if [ $count !=3D 1 ]; then stdbuf -o0 -e0 printf "[FAIL]\n\tCount !=3D 1: %d\n" "${count}" - exit 1 + ret=3D1 else stdbuf -o0 -e0 printf "[OK]\n" fi @@ -961,4 +962,4 @@ test_subflows_v4_v6_mix test_prio test_listener =20 -exit 0 +exit ${ret} --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8623F19BAF for ; Wed, 21 Jun 2023 17:18:37 +0000 (UTC) Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-4f87592eccfso4660366e87.2 for ; Wed, 21 Jun 2023 10:18:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367915; x=1689959915; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uHtNdNXNxG2F+yE5LQDi4hyKLHgfMHZ+rw8kzfXed60=; b=TH/qIhSFQxVWsSeC7M7oHflqDuETbDjZmMWKDC/K+LiZf7SGIvaFvusguaxpGy80Su OQq2+VAcY4X2KadAVabD8PyLhHWSDk2aFbYnrzM8OA+b4jAZr1m+znOuyxRmUmd48j5U 4Hxq2krqHVfRalEjWwhBKEie+d5l909e5oQJlyV9n9YX8yWsbLreFust0gDMBduw9PVx 0sw4y9Q/2sh8ZMPWt9twTwmcbwOLauuk4C9jk4cmlyLSq0Vx7ibb5Jufbn65Pu0K8t9c WUd2E+EGU2tWATuPW9oBK+TVPtZqgk6Eem7lQVeG7KG1ce1hcaCRVwBSKY00skfwWgeB 6cxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367915; x=1689959915; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uHtNdNXNxG2F+yE5LQDi4hyKLHgfMHZ+rw8kzfXed60=; b=DMcvQGt+qkCG49oE3lr/m/s8siGpP07kU2uefvGnJ3R5sT+osAqi8OGtCRUlOjvE3r hI9CUX9suxGR6rXA7pwszy3eqfBliuulh9bZjeJOh7i8MkNsVX+ZVXbLFRwZvnCnTLXK 4RZppf9CPcwznmzDf1Xre0eXaO3vo9M6KO6IYzmwKwQW8tXnttQvj7u6NpOcUpEYMor+ HceuuSH4hys/6/Duohi1wJMXe1dNNb2f+qsncIkNzDCgf//0tLTB9krgeW7BW/1bmPMR PyRtFjJM27RzL6UcHJpRSv3ZD0P5Fc/O2b0r0/1qBhjlFyTIkHfLUeRLW7ytjZEoyJXi hNSw== X-Gm-Message-State: AC+VfDyJqu+PE0FiGgm0k7AUzuv4Otu+kGZXfdvwfPwTjppvzG5DUZ5w wKMXX0z88nFZm0pqHWLhcn/U7qjhrD/i2Nd1TjJ1NJuT X-Google-Smtp-Source: ACHHUZ68Z3f+iHBLoSFEy1pbNL1erONUP2UUl+BZgkY2BFpdOS8r3ppUxgRLmOyBFOrkjw6SO1il5Q== X-Received: by 2002:a05:6512:285:b0:4f8:41f6:5adb with SMTP id j5-20020a056512028500b004f841f65adbmr10488463lfp.46.1687367915238; Wed, 21 Jun 2023 10:18:35 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:34 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:09 +0200 Subject: [PATCH mptcp-next 08/18] selftests: mptcp: userspace_pm: fix shellcheck warnings Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-8-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2147; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=0wg20bPslBWqR1FAmrhezfTh+Cxq7VuoazXeHHb4+YY=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjbFbKj89W5uR2EX7hDuR2jv+sYP8UiERaG BSrEIlCmduJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg c30CD/4nZyQCVCELCl2JsuGxUc353c0mpqU+OCG0iMSx/GnqEjs2v8UZVVz0hIAjShcHEstzkXZ K1h8OvMGx6R4yLriqtFhIWtbd1r2zg+KbZT/D5xkw8sWgJfMXQ9ZYR9uOrrNeO0n9ldY/ZUUkwi T172pe+4JQP1RPPzRSVdULblXrkAys17Y8z8j8p66tCtFVxE8gujLXeshOlpMtGl9dFWQw5fgde EIUMiebqwXHdLX5ALvxCsZOXcXnpZMkTL4y9vpGEs5Hahph0B+UNirsQLXXEYinLt/vaDbzZiRy FlTXUYSyZf+pyfXwO3poxkY4dQqW609vSn5YjS7IakgprvvqIqFiimqXkX685ydxd8n798hFUKt O7qwW3uIbbSy1VXbakvuWaCrySc/prgHRa+nzvQj9YYi4nXionexz9kPhAGuA2k8m6qbV5EX+9x ztb+yyj/KRlaqailTobo8Ae5UXJUDRiaIXz1vGTKeCn0SKxhvpWOvzH/ijKImMtkqT3IF4bvW65 +06dkvWB/PkQXLs9GbMWkx3CQt0JqG/LxqjuHgYKxFoneyrQ8Z9kOa9KqzFf7SXX7eO8mJWBG6/ z6y41iv3JqZOUWNmrWAYdKbOeNxN6/m+hJSrSB/8oDs2mR/iwdJphhIpjihzhNwDU17W0jR9jic kZu88YZFgoJfG5A== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 shellcheck recently helped to find an issue where a wrong variable name was used. It is then good to fix the other harmless issues in order to spot "real" ones later. Here, three categories of warnings are ignored: - SC2317: Command appears to be unreachable. The cleanup() function is invoke indirectly via the EXIT trap. - SC2034: Variable appears unused. The check_expected_one() function takes the name of the variable in argument but it ends up reading the content: indirect usage. - SC2086: Double quote to prevent globbing and word splitting. This is recommended but the current usage is correct and there is no need to do all these modifications to be compliant with this rule. One error has been fixed with SC2181: Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?. Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index c57ce4df4973..63d348693e98 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -1,6 +1,13 @@ #!/bin/bash # SPDX-License-Identifier: GPL-2.0 =20 +# Double quotes to prevent globbing and word splitting is recommended in n= ew +# code but we accept it. +#shellcheck disable=3DSC2086 + +# Some variables are used below but indirectly, see check_expected_one() +#shellcheck disable=3DSC2034 + . "$(dirname "${0}")/mptcp_lib.sh" =20 mptcp_lib_check_mptcp @@ -11,8 +18,7 @@ if ! mptcp_lib_has_file '/proc/sys/net/mptcp/pm_type'; th= en exit ${KSFT_SKIP} fi =20 -ip -Version > /dev/null 2>&1 -if [ $? -ne 0 ];then +if ! ip -Version &> /dev/null; then echo "SKIP: Cannot not run test without ip tool" exit ${KSFT_SKIP} fi @@ -68,6 +74,8 @@ kill_wait() wait $1 2>/dev/null } =20 +# This function is used in the cleanup trap +#shellcheck disable=3DSC2317 cleanup() { print_title "Cleanup" --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-lf1-f53.google.com (mail-lf1-f53.google.com [209.85.167.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9780E19BAE for ; Wed, 21 Jun 2023 17:18:38 +0000 (UTC) Received: by mail-lf1-f53.google.com with SMTP id 2adb3069b0e04-4f766777605so8267755e87.1 for ; Wed, 21 Jun 2023 10:18:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367916; x=1689959916; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=p1oSQ4Ccu/f5EthrQQvSLS3SHaFzVjpXNFB2Is4Ne4o=; b=gIU/VWZq8BXsipOjp22ilw2FoKhK6ZnCIRHBXiAAh6/5KzPGnpjnHkvPntJDrv8xbO 4bIBub1WWf+eRLu+xXCOEb5sRTx1Db5+o5Wr8h0q+IABoc39gTT0vvYiTLUpoo4or5Vv H/7S9QfbE68gxDWlwYDOaW3xVfUMDFv4FWn+NzHXLk/ubWBQpfGbDTFKEDsSJbPx/K8V Oq5IQOA/3GpFJlTjikclINMN8nfAWF5QAKFkNknrkMGgj3EyOkU/HA8ccn7Q7GLez1yc HjFnNRy2mEMZjq/rLOVMZj4IjIDddjyKrkNHcvtZViggAEc9HNXXB9A4d/4r2jW8FHPY X1Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367916; x=1689959916; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p1oSQ4Ccu/f5EthrQQvSLS3SHaFzVjpXNFB2Is4Ne4o=; b=ZYaqMuLHId1wCQqQR6xQ6doHDGhngICrhHM3Xdgm8mrX6tPvXFhH2/fI3beYCtMy0g /qRBJSqfyvXh61qLFyV58belUetwVqT/AZtJAxvLItdmC+zwG6oOqHGvbA7QpT4Od7Zn o/IqzYtpLuk8A3MiVKEPDyqeb9yQgL0l0uM+tnSNduEWP4TGD/veoZH7nSkbti2nansx f36e6Nycc6TPxx5ju/hon/vwp9QKLPLXFSWTXH/rDeJJyqp9/+N3DLGehRvBWxEjWM0W a8yJWL528/5qbsULIJls0ZH8Lr0BD2pXaMLH26cc5KT3CPSDRljP9AKgwFQc0qJQJ+60 cURg== X-Gm-Message-State: AC+VfDxeZ2fAAOe9AY2QCeP6zNwBbIoyD65mIRoLXhZotGXmBNzHZHz8 fKk2tMla2kQ/bVF/tRArgkNE5Z9F5cZ4I9SnalUv0ZU/ X-Google-Smtp-Source: ACHHUZ74TgNknnfQzxZUMqq9ASP/LKcd+XL/jtg7BX0EX7UhfMV+krWOrSnxUhZMqLI/SpsMg28fBQ== X-Received: by 2002:a05:6512:291:b0:4f8:6e26:9347 with SMTP id j17-20020a056512029100b004f86e269347mr7260195lfp.68.1687367916115; Wed, 21 Jun 2023 10:18:36 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:35 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:10 +0200 Subject: [PATCH mptcp-next 09/18] selftests: mptcp: userspace_pm: uniform results printing Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-9-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=14088; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=BOWFEpbaKJK7L6N+YzvXRsJ8yTozFgI5zIeqYFgq4g4=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjTClPxO8LUXWLhvgz4iY2wrU1NNUfrGzF1 Eigri19SyWJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg c4n1D/9ygK3TwyHfFOkiGEv/p+5MsDEeblag0sDs/b+4O02+oc8qjqZjIiV7vfke5oGgwB6r4Kn YASpu9QzLR4am4IYDfYJuTFqobtAr9yCzkZnWfiBoy6PDD9xBI2pXdLLrQkLOSwaj4Q1pPhFmRr RyV6SOtBez1MFFpa/N082I14rboZhAuBTqGsau1HC/FtLRaJBwqzI1lB9dmObw22RJKN/q757KU P6+qqsXA819fW1WEwACi3ZHvtapZSpILq3C5be8FqpsvM7/SW58KKxKnh9lEVqcKD40Py0+Vuzh oS5SgsDErw5neWWOnk0WHNUzbyafqTDqpuh5KkA5hQ7XeZpyJGDOlqXELVLPLikD76ynjvpZurp Q2WFsk4J9FDQ/OOVbj9TGk7V0JXu8kgodq1dy5m+1SyCObCvXRLUWwvH2mQ1A/6qIKKSgCHFe3/ Mce8KB0RHqThmhktmONevM+aS+xxIFJzOcq5jTfQzaQjrJ5Y9OIh0w1YlqyrT/ex34Y9QqcdY6p 5nCNPdVlh/+EbB6s7XDeuvgH0kep4f7ONF3wXZZUosf/qLuMRbB77hEQApyTIKzeEKf2/1QTV0s /5qkC7aPzOTYXgunBad8W2tzLoX/09hlSJxQlDYEUpbzbO5kzypLu1ElXDuXQSq5AU26KTOryGb r0gsJ173buffrRw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 There are a few reasons to do that: - When the tabs are not printed as 8 spaces, some results were not properly aligned - Some lines printing the test name were very long due to the use of a lot of spaces/tabs at the end and stdbuf at the beginning. - To reduce duplicated code, e.g. to print what has failed and set the status But by centralising how the test results are printed, this also prepares future commits to avoid more duplicated code and ease the tracking of the different subtests. Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 141 ++++++++++++------= ---- 1 file changed, 79 insertions(+), 62 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 63d348693e98..6b733b97d358 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -65,6 +65,38 @@ print_title() stdbuf -o0 -e0 printf "INFO: %s\n" "${1}" } =20 +# $1: test name +print_test() +{ + stdbuf -o0 -e0 printf "%-63s" "${1}" +} + +print_results() +{ + stdbuf -o0 -e0 printf "[%s]\n" "${1}" +} + +test_pass() +{ + print_results " OK " +} + +test_skip() +{ + print_results "SKIP" +} + +# $1: msg +test_fail() +{ + print_results "FAIL" + ret=3D1 + + if [ -n "${1}" ]; then + stdbuf -o0 -e0 printf "\t%s\n" "${1}" + fi +} + kill_wait() { [ $1 -eq 0 ] && return 0 @@ -127,7 +159,8 @@ ip -net "$ns2" addr add dead:beef:2::2/64 dev ns2eth1 n= odad ip -net "$ns2" link set ns2eth1 up =20 print_title "Init" -stdbuf -o0 -e0 printf "Created network namespaces ns1, ns2 \t\t\t[= OK]\n" +print_test "Created network namespaces ns1, ns2" +test_pass =20 make_file() { @@ -212,16 +245,13 @@ make_connection() server_serverside=3D$(grep "type:1," "$server_evts" | sed --unbuffered -n 's/.*\(server_side:\)\([[:digit:]]*\).*$/\2/p;q= ') =20 - stdbuf -o0 -e0 printf "Established IP%s MPTCP Connection ns2 =3D> ns1 = \t\t" $is_v6 + print_test "Established IP${is_v6} MPTCP Connection ns2 =3D> ns1" if [ "$client_token" !=3D "" ] && [ "$server_token" !=3D "" ] && [ "$clie= nt_serverside" =3D 0 ] && [ "$server_serverside" =3D 1 ] then - stdbuf -o0 -e0 printf "[OK]\n" + test_pass else - stdbuf -o0 -e0 printf "[FAIL]\n" - stdbuf -o0 -e0 printf "\tExpected tokens (c:%s - s:%s) and server (c:%d = - s:%d)\n" \ - "${client_token}" "${server_token}" \ - "${client_serverside}" "${server_serverside}" + test_fail "Expected tokens (c:${client_token} - s:${server_token}) and s= erver (c:${client_serverside} - s:${server_serverside})" exit 1 fi =20 @@ -255,7 +285,7 @@ check_expected_one() =20 if [ "${prev_ret}" =3D "0" ] then - stdbuf -o0 -e0 printf "[FAIL]\n" + test_fail fi =20 stdbuf -o0 -e0 printf "\tExpected value for '%s': '%s', got '%s'.\n" \ @@ -276,11 +306,11 @@ check_expected() =20 if [ ${rc} -eq 0 ] then - stdbuf -o0 -e0 printf "[OK]\n" + test_pass return 0 fi =20 - ret=3D1 + return 1 } =20 verify_announce_event() @@ -326,13 +356,12 @@ test_announce() =20 local type type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= server_evts") - stdbuf -o0 -e0 printf "ADD_ADDR 10.0.2.2 (ns2) =3D> ns1, invalid token = \t\t" + print_test "ADD_ADDR 10.0.2.2 (ns2) =3D> ns1, invalid token" if [ "$type" =3D "" ] then - stdbuf -o0 -e0 printf "[OK]\n" + test_pass else - stdbuf -o0 -e0 printf "[FAIL]\n\ttype defined: %s\n" "${type}" - ret=3D1 + test_fail "type defined: ${type}" fi =20 # ADD_ADDR from the client to server machine reusing the subflow port @@ -340,7 +369,7 @@ test_announce() ip netns exec "$ns2"\ ./pm_nl_ctl ann 10.0.2.2 token "$client4_token" id $client_addr_id dev\ ns2eth1 > /dev/null 2>&1 - stdbuf -o0 -e0 printf "ADD_ADDR id:%d 10.0.2.2 (ns2) =3D> ns1, reuse port= \t\t" $client_addr_id + print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) =3D> ns1, reuse = port" sleep 0.5 verify_announce_event $server_evts $ANNOUNCED $server4_token "10.0.2.2" $= client_addr_id \ "$client4_port" @@ -349,7 +378,7 @@ test_announce() :>"$server_evts" ip netns exec "$ns2" ./pm_nl_ctl ann\ dead:beef:2::2 token "$client6_token" id $client_addr_id dev ns2eth1 >= /dev/null 2>&1 - stdbuf -o0 -e0 printf "ADD_ADDR6 id:%d dead:beef:2::2 (ns2) =3D> ns1, reu= se port\t\t" $client_addr_id + print_test "ADD_ADDR6 id:${client_addr_id} dead:beef:2::2 (ns2) =3D> ns1,= reuse port" sleep 0.5 verify_announce_event "$server_evts" "$ANNOUNCED" "$server6_token" "dead:= beef:2::2"\ "$client_addr_id" "$client6_port" "v6" @@ -359,7 +388,7 @@ test_announce() client_addr_id=3D$((client_addr_id+1)) ip netns exec "$ns2" ./pm_nl_ctl ann 10.0.2.2 token "$client4_token" id\ $client_addr_id dev ns2eth1 port $new4_port > /dev/null 2>&1 - stdbuf -o0 -e0 printf "ADD_ADDR id:%d 10.0.2.2 (ns2) =3D> ns1, new port \= t\t\t" $client_addr_id + print_test "ADD_ADDR id:${client_addr_id} 10.0.2.2 (ns2) =3D> ns1, new po= rt" sleep 0.5 verify_announce_event "$server_evts" "$ANNOUNCED" "$server4_token" "10.0.= 2.2"\ "$client_addr_id" "$new4_port" @@ -370,7 +399,7 @@ test_announce() # ADD_ADDR from the server to client machine reusing the subflow port ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server4_token" id\ $server_addr_id dev ns1eth2 > /dev/null 2>&1 - stdbuf -o0 -e0 printf "ADD_ADDR id:%d 10.0.2.1 (ns1) =3D> ns2, reuse port= \t\t" $server_addr_id + print_test "ADD_ADDR id:${server_addr_id} 10.0.2.1 (ns1) =3D> ns2, reuse = port" sleep 0.5 verify_announce_event "$client_evts" "$ANNOUNCED" "$client4_token" "10.0.= 2.1"\ "$server_addr_id" "$app4_port" @@ -379,7 +408,7 @@ test_announce() :>"$client_evts" ip netns exec "$ns1" ./pm_nl_ctl ann dead:beef:2::1 token "$server6_token= " id\ $server_addr_id dev ns1eth2 > /dev/null 2>&1 - stdbuf -o0 -e0 printf "ADD_ADDR6 id:%d dead:beef:2::1 (ns1) =3D> ns2, reu= se port\t\t" $server_addr_id + print_test "ADD_ADDR6 id:${server_addr_id} dead:beef:2::1 (ns1) =3D> ns2,= reuse port" sleep 0.5 verify_announce_event "$client_evts" "$ANNOUNCED" "$client6_token" "dead:= beef:2::1"\ "$server_addr_id" "$app6_port" "v6" @@ -389,7 +418,7 @@ test_announce() server_addr_id=3D$((server_addr_id+1)) ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server4_token" id\ $server_addr_id dev ns1eth2 port $new4_port > /dev/null 2>&1 - stdbuf -o0 -e0 printf "ADD_ADDR id:%d 10.0.2.1 (ns1) =3D> ns2, new port \= t\t\t" $server_addr_id + print_test "ADD_ADDR id:${server_addr_id} 10.0.2.1 (ns1) =3D> ns2, new po= rt" sleep 0.5 verify_announce_event "$client_evts" "$ANNOUNCED" "$client4_token" "10.0.= 2.1"\ "$server_addr_id" "$new4_port" @@ -423,39 +452,34 @@ test_remove() local invalid_token=3D$(( client4_token - 1 )) ip netns exec "$ns2" ./pm_nl_ctl rem token $invalid_token id\ $client_addr_id > /dev/null 2>&1 - stdbuf -o0 -e0 printf "RM_ADDR id:%d ns2 =3D> ns1, invalid token = \t"\ - $client_addr_id + print_test "RM_ADDR id:${client_addr_id} ns2 =3D> ns1, invalid token" local type type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= server_evts") if [ "$type" =3D "" ] then - stdbuf -o0 -e0 printf "[OK]\n" + test_pass else - stdbuf -o0 -e0 printf "[FAIL]\n" - ret=3D1 + test_fail fi =20 # RM_ADDR using an invalid addr id should result in no action local invalid_id=3D$(( client_addr_id + 1 )) ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\ $invalid_id > /dev/null 2>&1 - stdbuf -o0 -e0 printf "RM_ADDR id:%d ns2 =3D> ns1, invalid id = \t"\ - $invalid_id + print_test "RM_ADDR id:${invalid_id} ns2 =3D> ns1, invalid id" type=3D$(sed --unbuffered -n 's/.*\(type:\)\([[:digit:]]*\).*$/\2/p;q' "$= server_evts") if [ "$type" =3D "" ] then - stdbuf -o0 -e0 printf "[OK]\n" + test_pass else - stdbuf -o0 -e0 printf "[FAIL]\n" - ret=3D1 + test_fail fi =20 # RM_ADDR from the client to server machine :>"$server_evts" ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\ $client_addr_id > /dev/null 2>&1 - stdbuf -o0 -e0 printf "RM_ADDR id:%d ns2 =3D> ns1 = \t"\ - $client_addr_id + print_test "RM_ADDR id:${client_addr_id} ns2 =3D> ns1" sleep 0.5 verify_remove_event "$server_evts" "$REMOVED" "$server4_token" "$client_a= ddr_id" =20 @@ -464,8 +488,7 @@ test_remove() client_addr_id=3D$(( client_addr_id - 1 )) ip netns exec "$ns2" ./pm_nl_ctl rem token "$client4_token" id\ $client_addr_id > /dev/null 2>&1 - stdbuf -o0 -e0 printf "RM_ADDR id:%d ns2 =3D> ns1 = \t"\ - $client_addr_id + print_test "RM_ADDR id:${client_addr_id} ns2 =3D> ns1" sleep 0.5 verify_remove_event "$server_evts" "$REMOVED" "$server4_token" "$client_a= ddr_id" =20 @@ -473,8 +496,7 @@ test_remove() :>"$server_evts" ip netns exec "$ns2" ./pm_nl_ctl rem token "$client6_token" id\ $client_addr_id > /dev/null 2>&1 - stdbuf -o0 -e0 printf "RM_ADDR6 id:%d ns2 =3D> ns1 = \t"\ - $client_addr_id + print_test "RM_ADDR6 id:${client_addr_id} ns2 =3D> ns1" sleep 0.5 verify_remove_event "$server_evts" "$REMOVED" "$server6_token" "$client_a= ddr_id" =20 @@ -484,8 +506,7 @@ test_remove() # RM_ADDR from the server to client machine ip netns exec "$ns1" ./pm_nl_ctl rem token "$server4_token" id\ $server_addr_id > /dev/null 2>&1 - stdbuf -o0 -e0 printf "RM_ADDR id:%d ns1 =3D> ns2 = \t"\ - $server_addr_id + print_test "RM_ADDR id:${server_addr_id} ns1 =3D> ns2" sleep 0.5 verify_remove_event "$client_evts" "$REMOVED" "$client4_token" "$server_a= ddr_id" =20 @@ -494,7 +515,7 @@ test_remove() server_addr_id=3D$(( server_addr_id - 1 )) ip netns exec "$ns1" ./pm_nl_ctl rem token "$server4_token" id\ $server_addr_id > /dev/null 2>&1 - stdbuf -o0 -e0 printf "RM_ADDR id:%d ns1 =3D> ns2 = \t" $server_addr_id + print_test "RM_ADDR id:${server_addr_id} ns1 =3D> ns2" sleep 0.5 verify_remove_event "$client_evts" "$REMOVED" "$client4_token" "$server_a= ddr_id" =20 @@ -502,7 +523,7 @@ test_remove() :>"$client_evts" ip netns exec "$ns1" ./pm_nl_ctl rem token "$server6_token" id\ $server_addr_id > /dev/null 2>&1 - stdbuf -o0 -e0 printf "RM_ADDR6 id:%d ns1 =3D> ns2 = \t" $server_addr_id + print_test "RM_ADDR6 id:${server_addr_id} ns1 =3D> ns2" sleep 0.5 verify_remove_event "$client_evts" "$REMOVED" "$client6_token" "$server_a= ddr_id" } @@ -529,25 +550,24 @@ verify_subflow_events() local dport local locid local remid + local info + + info=3D"${e_saddr} (${e_from}) =3D> ${e_daddr} (${e_to})" =20 if [ "$e_type" =3D "$SUB_ESTABLISHED" ] then if [ "$e_family" =3D "$AF_INET6" ] then - stdbuf -o0 -e0 printf "CREATE_SUBFLOW6 %s (%s) =3D> %s (%s) "\ - "$e_saddr" "$e_from" "$e_daddr" "$e_to" + print_test "CREATE_SUBFLOW6 ${info}" else - stdbuf -o0 -e0 printf "CREATE_SUBFLOW %s (%s) =3D> %s (%s) \t"\ - "$e_saddr" "$e_from" "$e_daddr" "$e_to" + print_test "CREATE_SUBFLOW ${info}" fi else if [ "$e_family" =3D "$AF_INET6" ] then - stdbuf -o0 -e0 printf "DESTROY_SUBFLOW6 %s (%s) =3D> %s (%s) "\ - "$e_saddr" "$e_from" "$e_daddr" "$e_to" + print_test "DESTROY_SUBFLOW6 ${info}" else - stdbuf -o0 -e0 printf "DESTROY_SUBFLOW %s (%s) =3D> %s (%s) \t"\ - "$e_saddr" "$e_from" "$e_daddr" "$e_to" + print_test "DESTROY_SUBFLOW ${info}" fi fi =20 @@ -818,7 +838,7 @@ test_subflows_v4_v6_mix() :>"$client_evts" ip netns exec "$ns1" ./pm_nl_ctl ann 10.0.2.1 token "$server6_token" id\ $server_addr_id dev ns1eth2 > /dev/null 2>&1 - stdbuf -o0 -e0 printf "ADD_ADDR4 id:%d 10.0.2.1 (ns1) =3D> ns2, reuse por= t\t\t" $server_addr_id + print_test "ADD_ADDR4 id:${server_addr_id} 10.0.2.1 (ns1) =3D> ns2, reuse= port" sleep 0.5 verify_announce_event "$client_evts" "$ANNOUNCED" "$client6_token" "10.0.= 2.1"\ "$server_addr_id" "$app6_port" @@ -863,25 +883,23 @@ test_prio() sleep 0.5 =20 # Check TX - stdbuf -o0 -e0 printf "MP_PRIO TX = \t" + print_test "MP_PRIO TX" count=3D$(ip netns exec "$ns2" nstat -as | grep MPTcpExtMPPrioTx | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ $count !=3D 1 ]; then - stdbuf -o0 -e0 printf "[FAIL]\n\tCount !=3D 1: %d\n" "${count}" - ret=3D1 + test_fail "Count !=3D 1: ${count}" else - stdbuf -o0 -e0 printf "[OK]\n" + test_pass fi =20 # Check RX - stdbuf -o0 -e0 printf "MP_PRIO RX = \t" + print_test "MP_PRIO RX" count=3D$(ip netns exec "$ns1" nstat -as | grep MPTcpExtMPPrioRx | awk '{= print $2}') [ -z "$count" ] && count=3D0 if [ $count !=3D 1 ]; then - stdbuf -o0 -e0 printf "[FAIL]\n\tCount !=3D 1: %d\n" "${count}" - ret=3D1 + test_fail "Count !=3D 1: ${count}" else - stdbuf -o0 -e0 printf "[OK]\n" + test_pass fi } =20 @@ -898,11 +916,9 @@ verify_listener_events() local sport =20 if [ $e_type =3D $LISTENER_CREATED ]; then - stdbuf -o0 -e0 printf "CREATE_LISTENER %s:%s\t\t\t\t\t"\ - $e_saddr $e_sport + print_test "CREATE_LISTENER $e_saddr:$e_sport" elif [ $e_type =3D $LISTENER_CLOSED ]; then - stdbuf -o0 -e0 printf "CLOSE_LISTENER %s:%s\t\t\t\t\t"\ - $e_saddr $e_sport + print_test "CLOSE_LISTENER $e_saddr:$e_sport" fi =20 type=3D$(grep "type:$e_type," $evt | @@ -927,7 +943,8 @@ test_listener() print_title "Listener tests" =20 if ! mptcp_lib_kallsyms_has "mptcp_event_pm_listener$"; then - stdbuf -o0 -e0 printf "LISTENER events = \t[SKIP] Not supported\n" + print_test "LISTENER events" + test_skip return fi =20 --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE8D919BB6 for ; Wed, 21 Jun 2023 17:18:38 +0000 (UTC) Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-3f90a1aa204so56199775e9.0 for ; Wed, 21 Jun 2023 10:18:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367917; x=1689959917; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=x5FKJe59+zZcEKP+2FCedLLuPhu8q47P8O4/lX6/NFg=; b=2oZELMuRAaa2sBWfTnMNchM5Po/6Yh2ZyUK9EPjDPAbmyV2lq5EU2o41gIC6urx85p VITOLAL8xMOSVOMs2yBO0cHMF78k3oHmj7zR+rDPyQma0LHTjWox2g+5beNJEKsd21sX dHL9zGduWTIAmqUvcELYjgVKTdly3Wc5aVDVLb7gYe4YX721+FXBCaOElMvXB2rMyomI oPOA+f5/jRGy3cogLAwfr8RF7cqTNlei8BOP5vEkTTippMpxc2FxkbHmaJ7GQMt0SwQi 8hrQnHUCSJrlX9lcuKJVPYdI9NCCHLdpRfNSGH3se/+hXO9h6hUNG148EfVhsD/sexLy bG8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367917; x=1689959917; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=x5FKJe59+zZcEKP+2FCedLLuPhu8q47P8O4/lX6/NFg=; b=dJ2QZHWP6DEGnY8aCfKFr9dxDYnO0sMSVYyHPY9gHqWllWNiiilLjIDxG7L7tc8D9W 5omZyx45zx9LeF3kXdTqXtWWXY6Gawgn9J/hg7pUjDuI7lxckcj8Js5N3rTrZ+M4Zy4J citA0YxEarSmwoAj+g4SJ8mbnoZG3r1fg+Cf89ESGXJMokkEw9YqfpG3ecIyrjq3SawI reHvXDLkWukGbYy8ruFmuQ8JDkG6TgWZhVNZdpQTFYriHQXYJpXgkEyyxOaT/d4Z8kpo Wsl7+k+Ok06t2mYlLtn5U/wFOHEwD1dNU/23mqFqnlhJWCdfDhsHwshkXKvmbNxzRK4/ k2sw== X-Gm-Message-State: AC+VfDyEryfJK9c2+XL9i2VN/s5Ipwr1QHbNPZDQUGzPauLso2HWDGYI hIWkqhtdGOFLd3MYPwCCjITEUkv998Zs6tDGPdv+ClcV X-Google-Smtp-Source: ACHHUZ4F+Qkx6eaiMcUVYWPQNPcOL+koSiwPyWNL+WaLm1/5qhP/+EjENp8GK8FkAKnD+aKVwelXkg== X-Received: by 2002:a7b:cd14:0:b0:3f9:b415:468 with SMTP id f20-20020a7bcd14000000b003f9b4150468mr7326444wmj.25.1687367917011; Wed, 21 Jun 2023 10:18:37 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:36 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:11 +0200 Subject: [PATCH mptcp-next 10/18] selftests: mptcp: userspace_pm: reduce dup code around printf Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-10-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1705; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=1E0tUQvjVtEk3jpnA2xa60w/3ojogyW0lHzGxO6VFW4=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjC9QBui2h4t1as/PXe36e+IK8NQ1EdrZA7 shqIeXbuNKJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg c/BOEAClTUfk6Wlxu7ijMdSltAhyRWjFmUPN+W+eYvQmQaVvfWOzMUjDWTi552es6NhA3EYUNGy FFZy6I+wDIZgQYqTKxzLKMroy54diRnZi3ddWmsUwdTT5QSeBG3u50Kp8QWGKvJy5kgArmCwMu4 MLXSHc9PvR8AtFouS9hAz7Cu+pVR7Bca8HW3d0gkZZ45Nff5gUXNpreycQ0es1ndT1O3IKQpN85 0ezdoS0vqasgnXz+Acutd6D8EXUSAlcHorrVA8tAqlORXIr17u3gpz5xprJKTj+gYGJ8U3oegcB dTntaoz5vDCzz2Bh1eLKvOU++6BWBTr87PLjbyXXFIVcvKIL7sWxpFEHNKhvI+TPUAf2d8iBVn/ jAKbPjhnDrBqq3o0UUwTN2Q7Aj/madMLVg8Oh2eP0HqWXZd0vlPvrf+zO1bhAdHPon5TygXxKCd QiKfzPPm+EhSy0x3ynWteQOlIaRX3X2NZM8zMoNO6kkxRJo8c0h750zJRF9FZctKVi6YWSxVt+4 vETFS/lq7lq8S5eK3DUv2LByjYWmPTaP5+BGcV6l5XWODrmu89vOWhx2CMRfXhsMbdpK7SdrQHz 70pCKbEHauTfvYR3+khu+oVcTgEtY0/YUcI8HLKi8+PcP8cYhTbKjKQ6R4opxVo3ET/tIJ4wYRU lB8D2617uqP1AEA== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 In this selftest, "printf" is always used with "stdbuf". With a new helper, it is possible to call "stdbuf" only from one place. This makes the code a bit clearer to read. Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 6b733b97d358..568ddee1d102 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -59,21 +59,24 @@ rndh=3D$(printf %x "$sec")-$(mktemp -u XXXXXX) ns1=3D"ns1-$rndh" ns2=3D"ns2-$rndh" ret=3D0 +_printf() { + stdbuf -o0 -e0 printf "${@}" +} =20 print_title() { - stdbuf -o0 -e0 printf "INFO: %s\n" "${1}" + _printf "INFO: %s\n" "${1}" } =20 # $1: test name print_test() { - stdbuf -o0 -e0 printf "%-63s" "${1}" + _printf "%-63s" "${1}" } =20 print_results() { - stdbuf -o0 -e0 printf "[%s]\n" "${1}" + _printf "[%s]\n" "${1}" } =20 test_pass() @@ -93,7 +96,7 @@ test_fail() ret=3D1 =20 if [ -n "${1}" ]; then - stdbuf -o0 -e0 printf "\t%s\n" "${1}" + _printf "\t%s\n" "${1}" fi } =20 @@ -127,7 +130,7 @@ cleanup() =20 rm -rf $file $client_evts $server_evts =20 - stdbuf -o0 -e0 printf "Done\n" + _printf "Done\n" } =20 trap cleanup EXIT @@ -288,7 +291,7 @@ check_expected_one() test_fail fi =20 - stdbuf -o0 -e0 printf "\tExpected value for '%s': '%s', got '%s'.\n" \ + _printf "\tExpected value for '%s': '%s', got '%s'.\n" \ "${var}" "${!exp}" "${!var}" return 1 } --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AEA1719BAF for ; Wed, 21 Jun 2023 17:18:39 +0000 (UTC) Received: by mail-wm1-f51.google.com with SMTP id 5b1f17b1804b1-3f9bece8e19so11036545e9.1 for ; Wed, 21 Jun 2023 10:18:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367917; x=1689959917; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VFBmb7b2BmxYQ7xgqQb+mzgY3GhtTdjwA+7V6UD1T14=; b=Aucjjbk7azjPwpkiiIr5OA4yX2h3OFUG+p1wGRQumS0bwhKR6aaUv/jAp0w160jQlh CQ8PNWC42Yvz5fWTFV8p5We6r/DxAcVQlqOW9fVM5kZ5JveWLs3eqT5MFSJ/Hv+XNsFp HXZ+4QzKY6YAejItMlNVdlU3s6P3EHdJYuLwICGsi9ymPvh9A5Cp700YniVUXyyHZh/h 8cMkuB6qFXU6aQR/7jB+Mjh6QIBLBw0x+zufQLn4UCj7qpCLpzNnHN+lzfQaZ0KPTtza I7huGhepXmiwEvzQ4eQnl4sOEF161KAUmvyApkEOtiRtzNazXIq5osgQUntV/i68M0y0 +bfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367917; x=1689959917; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VFBmb7b2BmxYQ7xgqQb+mzgY3GhtTdjwA+7V6UD1T14=; b=cCvPuTvCbjR0U2Do1CJBrHk3O8NayZiprxHLpmQ0k9laMQO7PYVtQb7WuG3FC3eJFP z5pPfe1QZ0MmemiCHnXEzbK/0U6zIZKFrL5Nu9Rhu+Y11hNlpnsNOTEyyNOUXGMQ0ATH kfRc2AGpbRYW5Nbuhl2ZVmDFVkKw5gS50HToS7/Q5pddyEbmKsuiLDHyTSW+mIqvHAcW C44lh1BT0oBiVsRq0f2fRxR59xyPJQulR/ZIb3X7cW/k4GUGb2TwULXXAwcosVhleJlO RIkiwBa+2vT0mbDN57Z0Aw4RkEw4ZOelQB+IMC5CE+e1YsNQsV1WmOso4N8qzddWrfzY aE7w== X-Gm-Message-State: AC+VfDxPtAn08k5h1wRiJvPT6SAxFCSGJlm6dFXORb+Ywc7Bk7L4Fhxi 0w9wBvQv8/gTEcFs66VQmxsZro20DSDY6MYqEPbZ+i5b X-Google-Smtp-Source: ACHHUZ5+62DMrPi1r2guGXH4GH6sh3FQsDLL/uOnC62Ehh0rVAvhaKW78tD+VEK4mKs4at0QzeZg0g== X-Received: by 2002:a5d:5582:0:b0:30e:57f2:9f0 with SMTP id i2-20020a5d5582000000b0030e57f209f0mr15851939wrv.39.1687367917759; Wed, 21 Jun 2023 10:18:37 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:37 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:12 +0200 Subject: [PATCH mptcp-next 11/18] selftests: mptcp: lib: format subtests results in TAP Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-11-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3323; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=AIydYrUPrCrSUDKDcff1/982NgIiHi5E7/OfOIzo+4k=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjEh9dmTEjChRdbv7s6nnEm1g9JLa8MPkbw 2MlfzaNPVCJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg cxYmEACm7W9ico6AngLJIb5fmLFXsOb1fjq/EAmBw1iVg9SucRYXXp/OFdWdmrLxywFhZiu6vA4 s3DCMD3W5SXfCvDzcjvltldqSLe1z3WkkUX2ymYpltIGUYketfW7+KfeO+e6Ng/gpqMxvgdum36 tlauqX4SCBLo3xCVhpXConQLU/ix/04/ERw1q1dzPsKleytQuzxkgyYBzO9KVSl1talqIsQAjbM nczEEggMtnA2abT9W8D0jyTCRas8n45yLW/297P4u/zM+FGDG3oWzdUxdKfIWW4zaIH4anrFMeg LJI1sl5iAJmq1ZIr1UWiHfkYFhuDGOu+yhg+MVKC6DhTxQVicqTdXeyMtVXlWv5sVKXCqz9axra XyK6Z78ZgSlvRO9N64CAj+wwd9wJ5xwoxajIz+24pT+R6UcEE5GJtXkxmfHBqACdWk60gYhsGtx rdz16szczZIPWyQLvKJc/rmRxNh4x0f6eDan+nBKjUXoo71VlTEi8E2UOwXzXYrE6CbqXWJ36Wa Uoq7Gt/pDHY8jf2tOkMEylWSK0eeUWJ3ijWSdR34SqG7Ir8GRb0AcIB2oST3QXVc8IWB6p1MGUb 5TxKrMk0PAYggG3yb9yMrDwrwaqZ0sj2UoIVUaeYS5hRcpLggR2z4U1AdrsRy/cvgo5XEE7v5r0 7yRjqfUII76Qnow== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests. MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest. It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored. This patch adds some helpers in mptcp_lib.sh to be able to easily format subtests results in TAP in the different MPTCP selftests. Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/mptcp_lib.sh | 66 ++++++++++++++++++++++= ++++ 1 file changed, 66 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/mptcp_lib.sh b/tools/testing= /selftests/net/mptcp/mptcp_lib.sh index f32045b23b89..b1a0fdd0408b 100644 --- a/tools/testing/selftests/net/mptcp/mptcp_lib.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_lib.sh @@ -1,8 +1,12 @@ #! /bin/bash # SPDX-License-Identifier: GPL-2.0 =20 +readonly KSFT_PASS=3D0 readonly KSFT_FAIL=3D1 readonly KSFT_SKIP=3D4 +readonly KSFT_TEST=3D$(basename "${0}" | sed 's/\.sh$//g') + +MPTCP_LIB_SUBTESTS=3D() =20 # SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES env var can be set when validati= ng all # features using the last version of the kernel and the selftests to make = sure @@ -102,3 +106,65 @@ mptcp_lib_kversion_ge() { =20 mptcp_lib_fail_if_expected_feature "kernel version ${1} lower than ${v}" } + +__mptcp_lib_result_add() { + local result=3D"${1}" + shift + + local id=3D$((${#MPTCP_LIB_SUBTESTS[@]} + 1)) + + MPTCP_LIB_SUBTESTS+=3D("${result} ${id} - ${KSFT_TEST}: ${*}") +} + +# $1: test name +mptcp_lib_result_pass() { + __mptcp_lib_result_add "ok" "${1}" +} + +# $1: test name +mptcp_lib_result_fail() { + __mptcp_lib_result_add "not ok" "${1}" +} + +# $1: test name +mptcp_lib_result_skip() { + __mptcp_lib_result_add "ok" "${1} # SKIP" +} + +# $1: result code ; $2: test name +mptcp_lib_result_code() { + local ret=3D"${1}" + local name=3D"${2}" + + case "${ret}" in + "${KSFT_PASS}") + mptcp_lib_result_pass "${name}" + ;; + "${KSFT_FAIL}") + mptcp_lib_result_fail "${name}" + ;; + "${KSFT_SKIP}") + mptcp_lib_result_skip "${name}" + ;; + *) + echo "ERROR: wrong result code: ${ret}" + exit ${KSFT_FAIL} + ;; + esac +} + +mptcp_lib_result_print_all_tap() { + local subtest + + if [ ${#MPTCP_LIB_SUBTESTS[@]} -eq 0 ] || + [ "${SELFTESTS_MPTCP_LIB_NO_TAP:-}" =3D "1" ]; then + return + fi + + printf "\nTAP version 13\n" + printf "1..%d\n" "${#MPTCP_LIB_SUBTESTS[@]}" + + for subtest in "${MPTCP_LIB_SUBTESTS[@]}"; do + printf "%s\n" "${subtest}" + done +} --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A038E19BB6 for ; Wed, 21 Jun 2023 17:18:40 +0000 (UTC) Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-3f9b1a117caso33304635e9.0 for ; Wed, 21 Jun 2023 10:18:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367918; x=1689959918; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=XH2yJYNIBeDUoFK6wBIuMe60uiEr3uKqfavOad4jbfo=; b=MUuHxjqEzEZe5jUnOSELFQ4mKEUiAYci2zvZMbNiIGjiqykEqHv9FNmC8pUpx4Nuo2 glAkSrrJnQJWomRcXPpRnZpujIGicm045DGTJz8sPQgwLvidJtCLaCvgGLEReY3xdFO5 Pc28O2zq/ib3C9nM6X+1U4QAVHfvH4M3LDRVgCLrGUZPe37Hzo8lSAERcMVtIzvEPyBs qWlXNivFkkekx/X82vpMcIWUUsLTRmsZZ1BF3YZqRqwSUJJljjTqdWPar4ONvj5jCXYb fhWUC5yG/tHJnVN3ZWZ3T21lsgAfcOtZOuw1E/qIau7QilAnTXj593skA6P1r7VDUqc4 maTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367918; x=1689959918; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=XH2yJYNIBeDUoFK6wBIuMe60uiEr3uKqfavOad4jbfo=; b=i5d3Nby/ei+1PR/TkTH8vbC627vkKQt14QebVLZzR33v4ZfMTXITcsCyIPEjlUGm9/ oWjiPRC3qzto9AKz4fomqbyYiFNEi23at/0aWkPSn2vPZgard/d5+KKbOYafZ1Z/lw4h ikFpQSBXJTm6pLGyDpKaQq9c6vp32vuZh315CwrNv8eM3m9Ivk3K9LEZmyHc1Qj3gScW EjHdNjkvu6RRuTTPH8XsSJMPeZtYeBGF0e977/M10SV7ZEpAiwfRWhAMhV+d1WflcJTs BFl7QpeW/xh+ZX8rgrpQ78Ww9vES02umPhPalSlR70t6cbDbRTMyx7Moqn4h0sR4JP4G k4ew== X-Gm-Message-State: AC+VfDxfeN1/OGr5e5EZLIcYrIZHtUcZ91R++hcze3VUUF9QlaJsDXgH enkpE9R8r1PiK8Z9rLva4tpV5QGPbfFi6OZA9IzQQVZj X-Google-Smtp-Source: ACHHUZ4BjnpyMSv7oir91/yQFk68PTXeEgDTBI/yrBa8BFKwQoo14htvBAmQvnBG6NcpiKZryqesaw== X-Received: by 2002:a1c:ed0b:0:b0:3f5:39:240c with SMTP id l11-20020a1ced0b000000b003f50039240cmr57441wmh.27.1687367918537; Wed, 21 Jun 2023 10:18:38 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:38 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:13 +0200 Subject: [PATCH mptcp-next 12/18] selftests: mptcp: connect: format subtests results in TAP Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-12-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=7315; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=D/D8ftBZomxqHObQ0bmg9cyKZZl6R3qNQxo3PNmcH0Q=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjRGVuvMHnpCvNmGeCZPRP2ypBkyJZN35HU DQhVDoVfyuJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg cyY5EADM2lhy2MqLLxYunu3z84Dz88Q5qpvxOMU0rDIPSTxbyby494IPnjU9T8m0lo/sGdwi1RL 03a84CtNjYIcQta6SvOlc+VxmSBdho4laQ9ftwuxgTRMzgPv/63cNxj01oIvbod3SscD96Zkfiy uO/L3Eiuwtkl0AjOPcC5VwfmR5DcCwRZo0RBpzkvh+NGv7oAk8ctTa+/yZiLqFvUseov7a0MAa9 pBShxn7pxJdrHnI5J0jQXar+qXtxmNP+xldPmIhIPGl6XTzTkE3W+0HkiV09kdXopMBDoLBMJLi QVziXum1XQrvVEAmVFIvlYO2PhOr9pUr8s7ZTmhVIhWCR+N1QhxoXNq5unPUMblun+W5IQuvODB L3by3OqjOrZJ0BvDN007WyDM3etG9qMkQ/0ixjk0Bqzq7jn4hTScPI6roNzI3Mr+QNxc94SZdUX mAjhA8Gh0RlsBUT8hvDwY/7fVOg4FUkBd5BFjI4L+HMzhGw/L1euBZl+T8aFki9jUwGdNNO1s6f fofs3dohvWXwLTNtUsaSI0ey3C1u6RDS9qblHolCqGkQAH6DyvZCLD6nG4q0OproGx8YkXN70vQ MXdHiDP8tABOb2RgaKDWHBbYtsrY/qxg683ofFZucjtW483c30cfVG6X2i8DblOgXIb8CxrcTCT cicFsxyuk/59UaQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests. MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest. It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored. This patch formats subtests results in TAP in mptcp_connect.sh selftest. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/mptcp_connect.sh | 39 ++++++++++++++++++= ++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_connect.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_connect.sh index dba58875ef4c..bd5c51e30657 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh @@ -129,6 +129,7 @@ ns3=3D"ns3-$rndh" ns4=3D"ns4-$rndh" =20 TEST_COUNT=3D0 +TEST_GROUP=3D"" =20 cleanup() { @@ -286,6 +287,7 @@ check_mptcp_disabled() # net.mptcp.enabled should be enabled by default if [ "$(ip netns exec ${disabled_ns} sysctl net.mptcp.enabled | awk '{ pr= int $3 }')" -ne 1 ]; then echo -e "net.mptcp.enabled sysctl is not 1 by default\t\t[ FAIL ]" + mptcp_lib_result_fail "net.mptcp.enabled sysctl is not 1 by default" ret=3D1 return 1 fi @@ -298,11 +300,13 @@ check_mptcp_disabled() =20 if [ ${err} -eq 0 ]; then echo -e "New MPTCP socket cannot be blocked via sysctl\t\t[ FAIL ]" + mptcp_lib_result_fail "New MPTCP socket cannot be blocked via sysctl" ret=3D1 return 1 fi =20 echo -e "New MPTCP socket can be blocked via sysctl\t\t[ OK ]" + mptcp_lib_result_pass "New MPTCP socket can be blocked via sysctl" return 0 } =20 @@ -318,14 +322,16 @@ do_ping() local connector_ns=3D"$2" local connect_addr=3D"$3" local ping_args=3D"-q -c 1" + local rc=3D0 =20 if is_v6 "${connect_addr}"; then $ipv6 || return 0 ping_args=3D"${ping_args} -6" fi =20 - ip netns exec ${connector_ns} ping ${ping_args} $connect_addr >/dev/null - if [ $? -ne 0 ] ; then + ip netns exec ${connector_ns} ping ${ping_args} $connect_addr >/dev/null = || rc=3D1 + + if [ $rc -ne 0 ] ; then echo "$listener_ns -> $connect_addr connectivity [ FAIL ]" 1>&2 ret=3D1 =20 @@ -404,7 +410,9 @@ do_transfer() =20 local addr_port addr_port=3D$(printf "%s:%d" ${connect_addr} ${port}) - printf "%.3s %-5s -> %.3s (%-20s) %-5s\t" ${connector_ns} ${cl_proto} ${l= istener_ns} ${addr_port} ${srv_proto} + local result_msg + result_msg=3D"$(printf "%.3s %-5s -> %.3s (%-20s) %-5s" ${connector_ns} $= {cl_proto} ${listener_ns} ${addr_port} ${srv_proto})" + printf "%s\t" "${result_msg}" =20 if $capture; then local capuser @@ -479,6 +487,7 @@ do_transfer() =20 local duration duration=3D$((stop-start)) + result_msg+=3D" # time=3D${duration}ms" printf "(duration %05sms) " "${duration}" if [ ${rets} -ne 0 ] || [ ${retc} -ne 0 ]; then echo "[ FAIL ] client exit code $retc, server $rets" 1>&2 @@ -491,6 +500,7 @@ do_transfer() =20 echo cat "$capout" + mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}" return 1 fi =20 @@ -550,6 +560,9 @@ do_transfer() =20 if [ $retc -eq 0 ] && [ $rets -eq 0 ]; then printf "[ OK ]" + mptcp_lib_result_pass "${TEST_GROUP}: ${result_msg}" + else + mptcp_lib_result_fail "${TEST_GROUP}: ${result_msg}" fi =20 if [ $cookies -eq 2 ];then @@ -692,6 +705,8 @@ run_test_transparent() local lret=3D0 local r6flag=3D"" =20 + TEST_GROUP=3D"${msg}" + # skip if we don't want v6 if ! $ipv6 && is_v6 "${connect_addr}"; then return 0 @@ -703,6 +718,7 @@ run_test_transparent() # checking for a specific kernel version. if ! mptcp_lib_kallsyms_has "T __ip_sock_set_tos$"; then echo "INFO: ${msg} not supported by the kernel: SKIP" + mptcp_lib_result_skip "${TEST_GROUP}" return fi =20 @@ -720,6 +736,7 @@ EOF if [ $? -ne 0 ]; then echo "SKIP: $msg, could not load nft ruleset" mptcp_lib_fail_if_expected_feature "nft rules" + mptcp_lib_result_skip "${TEST_GROUP}" return fi =20 @@ -736,6 +753,7 @@ EOF ip netns exec "$listener_ns" nft flush ruleset echo "SKIP: $msg, ip $r6flag rule failed" mptcp_lib_fail_if_expected_feature "ip rule" + mptcp_lib_result_skip "${TEST_GROUP}" return fi =20 @@ -745,6 +763,7 @@ EOF ip -net "$listener_ns" $r6flag rule del fwmark 1 lookup 100 echo "SKIP: $msg, ip route add local $local_addr failed" mptcp_lib_fail_if_expected_feature "ip route" + mptcp_lib_result_skip "${TEST_GROUP}" return fi =20 @@ -774,6 +793,7 @@ run_tests_peekmode() { local peekmode=3D"$1" =20 + TEST_GROUP=3D"peek mode: ${peekmode}" echo "INFO: with peek mode: ${peekmode}" run_tests_lo "$ns1" "$ns1" 10.0.1.1 1 "-P ${peekmode}" run_tests_lo "$ns1" "$ns1" dead:beef:1::1 1 "-P ${peekmode}" @@ -781,8 +801,11 @@ run_tests_peekmode() =20 run_tests_mptfo() { + TEST_GROUP=3D"MPTFO" + if ! mptcp_lib_kallsyms_has "mptcp_fastopen_"; then echo "INFO: TFO not supported by the kernel: SKIP" + mptcp_lib_result_skip "${TEST_GROUP}" return fi =20 @@ -806,8 +829,11 @@ run_tests_disconnect() local old_cin=3D$cin local old_sin=3D$sin =20 + TEST_GROUP=3D"full disconnect" + if ! mptcp_lib_kallsyms_has "mptcp_pm_data_reset$"; then echo "INFO: Full disconnect not supported: SKIP" + mptcp_lib_result_skip "${TEST_GROUP}" return fi =20 @@ -856,6 +882,7 @@ stop_if_error() { if ! log_if_error "${@}"; then display_time + mptcp_lib_result_print_all_tap exit ${final_ret} fi } @@ -886,6 +913,8 @@ for sender in "$ns1" "$ns2" "$ns3" "$ns4";do do_ping "$ns4" $sender dead:beef:3::1 done =20 +mptcp_lib_result_code "${ret}" "ping tests" + stop_if_error "Could not even run ping tests" =20 [ -n "$tc_loss" ] && tc -net "$ns2" qdisc add dev ns2eth3 root netem loss = random $tc_loss delay ${tc_delay}ms @@ -915,12 +944,15 @@ echo "on ns3eth4" =20 tc -net "$ns3" qdisc add dev ns3eth4 root netem delay ${reorder_delay}ms $= tc_reorder =20 +TEST_GROUP=3D"loopback v4" run_tests_lo "$ns1" "$ns1" 10.0.1.1 1 stop_if_error "Could not even run loopback test" =20 +TEST_GROUP=3D"loopback v6" run_tests_lo "$ns1" "$ns1" dead:beef:1::1 1 stop_if_error "Could not even run loopback v6 test" =20 +TEST_GROUP=3D"multihosts" for sender in $ns1 $ns2 $ns3 $ns4;do # ns1<->ns2 is not subject to reordering/tc delays. Use it to test # mptcp syncookie support. @@ -966,4 +998,5 @@ run_tests_disconnect log_if_error "Tests of the full disconnection have failed" =20 display_time +mptcp_lib_result_print_all_tap exit ${final_ret} --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 415D219BC6 for ; Wed, 21 Jun 2023 17:18:41 +0000 (UTC) Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-3f90b8acefeso43195235e9.0 for ; Wed, 21 Jun 2023 10:18:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367919; x=1689959919; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PaKDV637bWzZlSeQkWzUA6xTOGBkY2/gSgiK7N2MK1s=; b=g/0tGw9obqPdD8z2Oeg5hpmKLOXovpL4moPo5uBYqLAh9bkdc4B1/1L+RdXl1IKhg9 YySn4PTTxFIjFMTVlpeiJTFulcejuJcpMvVsJ2JKgop1DzIzJfOTVYxKe8gaT1INGphp Mv7lm0T5NiyI4yBPYQglUVMSgIJpZvpYv7B+mba+obQMFCbVwtZNjH+y2aZ5DJMAeOSG kYwn+zJc0EyEDt0k03EXalWQOX+waLwYXqghey3kK3RdmATzs6i5xe385KRtGPwG3Qu7 Nf81+gikiymGskzuBQZ4cOCHkOb/+m00RXOcPH5uyQHVua1BmVwejQ+MiO/sDrvoVg2O DXow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367919; x=1689959919; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PaKDV637bWzZlSeQkWzUA6xTOGBkY2/gSgiK7N2MK1s=; b=GczojAtNcjFhQ8BAzHn9OtYWJ1eKxuS5oHi2Hvwe+U4852gI4xPtjjEgE/vwd+RBQJ jORvtlghXvLvtH7YV8YXo+I/CrJl67WJcJFxR+0fZg9dBaDCY9mxrdGJ6tCQMO2FUGPu KshC36nJYs6Qj5SbjrvOIplmMjwnhhxMFBvZm+8LFbUdYLuh8MyHQFHct+vSF+iWwLIv ABJ/KDvkBzODIN5Z+frytpKynNBghoQliawhOJz5/6Jha6VxtlH4dVlMrmC+EVT9SFWF ydPFdIUFj9WxfcDt4/bTWIM1k7ZfgyBmhLiDcrI7/UZjzhMUQVS5W95Zq6Rm0QDJI7v7 FJKA== X-Gm-Message-State: AC+VfDzI0R9YW35wYNy+T6+jnFOd3BD6SdDD0Gv1XKsYDLe3ZWdOsTbS aNlXnoXeFC1Dh4IDRTlfFZfKebQVMoeggM471dvVPBaz X-Google-Smtp-Source: ACHHUZ7X6tHhGAkihpC0VfpcERt6+teVGAEOfwvUn26pPh72WMHJ0Gk4GzlW0GvdDSCOk03IQU04hg== X-Received: by 2002:a05:6000:7:b0:310:7341:77fc with SMTP id h7-20020a056000000700b00310734177fcmr11260757wrx.71.1687367919240; Wed, 21 Jun 2023 10:18:39 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:38 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:14 +0200 Subject: [PATCH mptcp-next 13/18] selftests: mptcp: pm_netlink: format subtests results in TAP Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-13-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2199; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=1HhSdQccxk0WXr1pWFoJ9DJKu2bvw4k4+rohrEEu+w4=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjUwR01OmS3gMkMH5/96hOcW7e0UKtGKWEQ MEwOT23vxmJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg c5SFEADWsm8Y9zQoUD94DWeEHvSnim/EcC4O0XunX+UMHKKiGwLcnr7Fn2o5w2zC1aipLSAd1jF 01udph9xhyYkk6p8FBbyT0pPQT166NxQwSJ1QWyd2lXXzS3a5BuZEDEt4tg2KOHajJzjQyi+kzr FtW2KNOW+YoejMI+sEpIQ9fRvLEkACXn1pc2qO1xw1GNr3DqJC/+IBetYlIA3UEBKA7qMOPsE9H itNwKVeVfY8fujtK8idh4ISNhCFD5kmZ8TGApvvqptz0jgp1DBA9KeZ58IRPZoZ16o+o7/BcVEJ BxI38CnTtpTRzvPiv7Sj05X/OhjZQGwGiGqQBv923gfLo38C8r0GKGdOMoYOtxo5KPRdMMFboOv rceH0UUiSYjM5Rf9PQWMh++SpmHDuy/RL9r921BPMMyALfRaykcVg1/Hy5XA+55uSS/G2lvgTsL hPvRHq+qGgKakXQUBKsboQaxARuuOsIoSGFQdD+bcChBJrQxfA/BeTmHii476ZdtBliAly+q0Hn kSe9PGQuC28ZivZfIVf7n5AMTv0FrkuSuz2eoh20VGAHxPw7YYS1rm2CsHT/4SG7OyR9ad2x7bV U0Dw0uCXzHCvjKhNg2/JbLAl11SYZSUCxok7lOjk22aTbbjzz5+7tMzi1nFFwwY7k+vqLVgR/dz eStYQOzMb54kNMw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests. MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest. It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored. This patch formats subtests results in TAP in pm_netlink.sh selftest. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/pm_netlink.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/pm_netlink.sh b/tools/testin= g/selftests/net/mptcp/pm_netlink.sh index d02e0d63a8f9..f32038fe1ee5 100755 --- a/tools/testing/selftests/net/mptcp/pm_netlink.sh +++ b/tools/testing/selftests/net/mptcp/pm_netlink.sh @@ -58,16 +58,19 @@ check() local out=3D`$cmd 2>$err` local cmd_ret=3D$? =20 - printf "%-50s %s" "$msg" + printf "%-50s" "$msg" if [ $cmd_ret -ne 0 ]; then echo "[FAIL] command execution '$cmd' stderr " cat $err + mptcp_lib_result_fail "${msg} # error ${cmd_ret}" ret=3D1 elif [ "$out" =3D "$expected" ]; then echo "[ OK ]" + mptcp_lib_result_pass "${msg}" else echo -n "[FAIL] " echo "expected '$expected' got '$out'" + mptcp_lib_result_fail "${msg} # different output" ret=3D1 fi } @@ -193,4 +196,5 @@ subflow 10.0.1.1" " (nofullmesh)" subflow,backup,fullmesh 10.0.1.1" " (backup,fullmesh)" fi =20 +mptcp_lib_result_print_all_tap exit $ret --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B1A21953D for ; Wed, 21 Jun 2023 17:18:42 +0000 (UTC) Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-311167ba376so6138910f8f.1 for ; Wed, 21 Jun 2023 10:18:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367920; x=1689959920; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yckCihFXiBNEkYpZIKeG/GmSl3WPo0LriqolIYq1Hw0=; b=ftMoWhIsgRHKnl4I6wT2iozaquxPUzUiergfY1GCGvC17nBENj24YBU50O5S99Pol3 zsw0B/C3bNWcK7cyH03PFKFohuVcB+90341uboO3uAa0taDj6oO+Wo5lT4bBp7OkNtFt Oz6kRB0AtaW0MXkbNOKZ+zHqZvwSXcQm9WIZIMf/wzqoGpZoGpnAL6xYUIVGv50wdw8o tCtyzGc6tUYh+Cn3rmNMoNvTdImgjYL0Pcmy24pm97wTGclycmCjOudBMporuELuuzlS 5dtsoI1A/Qbdueo42c1jUlMSAkI4CorqSYVfTJREDZtZvSRjShFhd5bAuLUfKEDXcDHn eZ2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367920; x=1689959920; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yckCihFXiBNEkYpZIKeG/GmSl3WPo0LriqolIYq1Hw0=; b=ChgdgC912U6IUoEfnEmyiPir0U6MDt+l3jrXp8+Lq3hVQjim11713oZhPf3XctMy7C +uI91f7w+n9S6rwn5jAfXuW90i7kIFM1fkm0GVWauykzHxyc4pW2I81rbi+vYXfwBE87 QMHm0VNVwF234WgDTd9pg0M6j3OziDKdRDErRceD7bmASV+fRu/Ph8XrCrjuqfTVWckv K3X3sClRINu4cMLijg58MvgQmcjmHcZx67wqdF+cY0xjbE9Y+P8RNLcSiKkqpVe7dc1q fisFhxggHLZjAG+NbFPUDkQ5HOgYXly/CY9WsShUB16cdAZ0ZO05BCecWuqj7w8Y2APj lDxg== X-Gm-Message-State: AC+VfDxsGwb5/imEiUzjF1OEDkDw0zmUlrWTK19KFRsBJwdjMhxsuSnx mIxYHG93wxI/KEXgKHEVPQHW4e6H/5dVb6b6kHW+Rf20 X-Google-Smtp-Source: ACHHUZ4xZ1DWs3bplTvtE9OExvdc9e89skhStpQbB/HvLYGg4qUGOwso9+M9cHtmuO+POjHtxP/k7Q== X-Received: by 2002:a5d:5541:0:b0:311:abb:e377 with SMTP id g1-20020a5d5541000000b003110abbe377mr12381004wrw.39.1687367919982; Wed, 21 Jun 2023 10:18:39 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:39 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:15 +0200 Subject: [PATCH mptcp-next 14/18] selftests: mptcp: join: format subtests results in TAP Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-14-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3661; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=QAhij1elYa+WaiGBjefKnR3MW4aK/GQSHFrZI2uliG4=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjhUe6m/5bY67up46rxt0Z3NSaZoJah2s7u e+blA7Hgx2JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg c5z6EADZzRUqv2mhr61OLkejKi5bIG/h7m2egukdOb9j/FxYKi5wtDZYOCP6OfT8eE6HqfipvbX a9dmvnAqJ4J/3XEi31QlkRuS9gQkXWujIWgzWMSLQdjhfABcszUaE2n5KhVnlakTfBSVac0Qvtn yh9TFJhE0QEm5ndPYhx1LI88eoZL8E6muLKVY/cG4HuuGL/krMN56v6a4APzJnxuPm/zgDR6DiJ Qu8qrk5ZCt6IBOf2zTGAkziHS39B9LV1/JF+rD4ZsPOS9PfLQCYY48xBhxhjxudsSlSpT9G6cyM ZUUmjFgytFzk5p6pYFtvoOxR/HZX2PNGeXgJ02NuGnc3Tqwskt5nwxAT7ECgpx++DzsYJsSjD56 VFVe4fWKCYus+XuPW8IRtYqHmfKQHQB2rQbZBbbfg5TuFSKqvGbRriEaGXwIPkHszBb8oGTUjoe QcbhEwBKTKB65D7DBeOkmXcRIU1fW+Xu0uYol3D4ysC5urtafKMfLtNowMU/hvz9li/E0v6FzZ6 ditwoeJDutP8FVwh5gwcYWd8PreCOPr/dCh4F59Lp59PZT1ZV9gWyUyX/WpqR2vWB6GBSKwbbLz ZxPnVCZlEmvF7ms4GjkwS6soXqo6LFpP3KlYxIMZVfkwBEo65IiSa03lU4hdw3wm36co9C9n4tS fm0hZwLfxA5IaJw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests. MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest. It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored. This patch formats subtests results in TAP in mptcp_join.sh selftest. In this selftest and before starting each subtest, the 'reset' function is called. We can then check if the previous test has passed, failed or has been skipped from there. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/mptcp_join.sh | 41 ++++++++++++++++++++-= ---- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_join.sh b/tools/testin= g/selftests/net/mptcp/mptcp_join.sh index e6c9d5451c5b..5c5c8b5e068f 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -39,7 +39,9 @@ evts_ns1=3D"" evts_ns2=3D"" evts_ns1_pid=3D0 evts_ns2_pid=3D0 -stats_dumped=3D0 +last_test_failed=3D0 +last_test_skipped=3D0 +last_test_ignored=3D1 =20 declare -A all_tests declare -a only_tests_ids @@ -97,7 +99,6 @@ init_partial() fi done =20 - stats_dumped=3D0 check_invert=3D0 validate_checksum=3D$checksum FAILING_LINKS=3D"" @@ -162,9 +163,7 @@ check_tools() elif ! iptables -V &> /dev/null; then echo "SKIP: Could not run all tests without iptables tool" exit $ksft_skip - fi - - if ! ip6tables -V &> /dev/null; then + elif ! ip6tables -V &> /dev/null; then echo "SKIP: Could not run all tests without ip6tables tool" exit $ksft_skip fi @@ -213,6 +212,8 @@ mark_as_skipped() =20 print_title "[ skip ] ${msg}" printf "\n" + + last_test_skipped=3D1 } =20 # $@: condition @@ -245,14 +246,32 @@ skip_test() return 0 } =20 +append_prev_results() +{ + if [ ${last_test_failed} -eq 1 ]; then + mptcp_lib_result_fail "${TEST_NAME}" + elif [ ${last_test_skipped} -eq 1 ]; then + mptcp_lib_result_skip "${TEST_NAME}" + elif [ ${last_test_ignored} -ne 1 ]; then + mptcp_lib_result_pass "${TEST_NAME}" + fi + + last_test_failed=3D0 + last_test_skipped=3D0 + last_test_ignored=3D0 +} + # $1: test name reset() { + append_prev_results + TEST_NAME=3D"${1}" =20 TEST_COUNT=3D$((TEST_COUNT+1)) =20 if skip_test; then + last_test_ignored=3D1 return 1 fi =20 @@ -439,10 +458,13 @@ reset_with_tcp_filter() fail_test() { ret=3D1 - failed_tests[${TEST_COUNT}]=3D"${TEST_NAME}" =20 - [ "${stats_dumped}" =3D 0 ] && dump_stats - stats_dumped=3D1 + # just in case a test is marked twice as failed + if [ ${last_test_failed} -eq 0 ]; then + failed_tests[${TEST_COUNT}]=3D"${TEST_NAME}" + dump_stats + last_test_failed=3D1 + fi } =20 get_failed_tests_ids() @@ -3568,4 +3590,7 @@ if [ ${ret} -ne 0 ]; then echo fi =20 +append_prev_results +mptcp_lib_result_print_all_tap + exit $ret --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9480119BAF for ; Wed, 21 Jun 2023 17:18:42 +0000 (UTC) Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-3f8fcaa31c7so67645765e9.3 for ; Wed, 21 Jun 2023 10:18:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367920; x=1689959920; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+NbLALgfwHIeMVZ0r+je60GpDXE7rJFPts3WgkryIs0=; b=R7h6ADpNtPGy37Gs3Nj87FM4V6lcS5gOf3RQrKPtv84Wb1/20VC5ZA1E7fI+fvUkZ5 lq+S7vs9bqNFxIYqoVJqxWKpk1iK9G5dbvBI5aBtNA534RRXC2BQKola2L1nhE5Dw92D qXPNv1BEIzjELmQQcXT4uchbgzQQ7VthN8KtsnLpBTluzZYSw2mrpEDY8UGXDg7+dskV a8DxunysUL8R5ZmGpHQ0QCwS21PesvyBaqFGwIy329zFeXUxl6iN53KPyaS74GFRqy3z 1jjsk/VaiZc9f41QqTavG8qsyVUGPotO23WU7BVQxKsXroAWNMKrLOdzaXns3Hyh2DTR jfxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367920; x=1689959920; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+NbLALgfwHIeMVZ0r+je60GpDXE7rJFPts3WgkryIs0=; b=gWfwXxs+oDdKcOezCQu549TdEqvx7h/OsOQekUsPJEBBy2AwEtORHKz8dhMg9SOWGX t7l4FShyZbojj6zR6ElFQnpnKVM6UV0bXVnWOSd/kJIkpn0dEiH8bsM/BCcATRJuIorE 0qp0va+Z5r1hq84036/nOnYg6aoUN7qAIh4ZGG2s1uvYwcX64hwJnxwxKNX/8uDsjNK3 d4g7KFKFgbkja8QlkhRTjWuADpB/z6yuXuoq0jedvxfgMYjD2KhCXPRZX6mFCkN5xOCc gnNlninUlniqsOCWPBM3xt2tBYPDxAiNQVc4fVDywlANj7UsE1QLdSIWjhIelwgmfQ4z OywQ== X-Gm-Message-State: AC+VfDxims6IStVelzlCy3CDCgxMjycrYLwEzGE0qJABNe5MhvCHba+T YcbMJxp0EYm1hNwMXGj9DfRLupOzgOubrgUktGwbKzxL X-Google-Smtp-Source: ACHHUZ6iDHLVCm0uXcr/ZelRoUscXcLp5EVXGfu3+4pxaeJ7TwphpUjZ/saFEpifJxs10+AV200ePA== X-Received: by 2002:a1c:ed0b:0:b0:3f5:fff8:d4f3 with SMTP id l11-20020a1ced0b000000b003f5fff8d4f3mr16658803wmh.7.1687367920636; Wed, 21 Jun 2023 10:18:40 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:40 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:16 +0200 Subject: [PATCH mptcp-next 15/18] selftests: mptcp: diag: format subtests results in TAP Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-15-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2500; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=l7OGId1CGHiu8wr/xvGHQRND1SnvhiGo/dy0dA4Fqco=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjq2nV0FJ1iSz+KYJeQXiFaZB/B1RacuLHu RvsSsKdJBeJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg c4zdD/9wQIkYgTpuVNfCIMZyP9mzJowbRjf4hIiJprclNnU8PtOVDg+oQftH9nLQeXrP6bsoWcq MPgllbM3EwDpSJBPJaEI/GF9frUC2gVFMV8zWP/jhE0Dyg+7+/szaJnrUFXgbdXjJXWfjnGOa4O PHVDy7/TkaK2it0vRuxco2pIMNAyzt5tG3Sy39SFfcR/uydtQ7TobyZLX4TC02DTaS3wWZ765lU I2hXSb3q9sxfr4Zh1L8lfMl/sdF/BfNw5jYA7i8pTQ0uq+zqvgPAaTuRqioCWXvdcfnUuDzxL1j sLNyu8kW9v8xqQq++j2aRg8F5La1yJpo58iOvirFRabiWPDpXXYawn79fIylbaXDmzI0VBOTCMt MEb1yKT+j6Zrz3RAktvkiqswg8w1f9sOKvF7oQGKSBujnow6UEMmvkGzKM+bmmSooB8J+v6NKsC WUX25V4lx/Awe7BOB/yI2TPWf69dKOJkuwMON4cdLlgH3npFGCeFH3bzlfIvoGhJAOe2gGyRJpS i00dCfvz3sBPrODevc0WgaUXFCIi/5g0efXsdzlOTFgpxbHyDMMlEIml6VGatL79Pjon9nRE5zr 4qoL4OIf5uxRe2IyyXGSZGu0Zwhkb11k0Of77D3sXpitDKnZEliFO7U+5a6iK/Kdo36Hs3WXYnk JXOsvwlOw4sJihQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests. MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest. It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored. This patch formats subtests results in TAP in diag.sh selftest. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/diag.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/diag.sh b/tools/testing/self= tests/net/mptcp/diag.sh index fa9e09ad97d9..85a8ee9395b3 100755 --- a/tools/testing/selftests/net/mptcp/diag.sh +++ b/tools/testing/selftests/net/mptcp/diag.sh @@ -65,12 +65,15 @@ __chk_nr() if [ $nr !=3D $expected ]; then if [ $nr =3D "$skip" ] && ! mptcp_lib_expect_all_features; then echo "[ skip ] Feature probably not supported" + mptcp_lib_result_skip "${msg}" else echo "[ fail ] expected $expected found $nr" + mptcp_lib_result_fail "${msg}" ret=3D$test_cnt fi else echo "[ ok ]" + mptcp_lib_result_pass "${msg}" fi test_cnt=3D$((test_cnt+1)) } @@ -111,12 +114,15 @@ wait_msk_nr() printf "%-50s" "$msg" if [ $i -ge $timeout ]; then echo "[ fail ] timeout while expecting $expected max $max last $nr" + mptcp_lib_result_fail "${msg} # timeout" ret=3D$test_cnt elif [ $nr !=3D $expected ]; then echo "[ fail ] expected $expected found $nr" + mptcp_lib_result_fail "${msg} # unexpected result" ret=3D$test_cnt else echo "[ ok ]" + mptcp_lib_result_pass "${msg}" fi test_cnt=3D$((test_cnt+1)) } @@ -276,4 +282,5 @@ flush_pids =20 chk_msk_inuse 0 "....chk 0 msk in use after flush" =20 +mptcp_lib_result_print_all_tap exit $ret --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5DF9919BC6 for ; Wed, 21 Jun 2023 17:18:43 +0000 (UTC) Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-311367a3e12so5272792f8f.2 for ; Wed, 21 Jun 2023 10:18:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367921; x=1689959921; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=vnC9E9znL4xb87FoChND93I1HB6BMnQvNBpDOQn5PiM=; b=ulCD1dy7tYzHBtrrIKLH180z9kWyb3CVmykkqSGZ/J8G17igAWLCaGwaRJnN3m6kOf XsthmwdmA0K5bilTmDUun6rDVgp4qBmwW0COoRUOk4xi9GmYnQWoC0pSuD2PvgReMSfU ewyOwzDf+RMmVMb8AeQJut9ryloQd3ISdzbtL1GvGjgJVT8v8dpIjZrvI7wqcQlh6Fku BY+kXW36XGMKShNkVjfu+HjqJr15EXGKvCO+HAeJ2BiJHwtaEPfA3BuwyyjO5HUnEXjM CP5TRRB72wXU0RWBXWuUHROT7UudEYR7ak8KWXnp2oESxDgU/cqHFLGrRP/AoOkuRGje WrSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367921; x=1689959921; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vnC9E9znL4xb87FoChND93I1HB6BMnQvNBpDOQn5PiM=; b=SjyCE1/ury54swWEG82edgG6Va+nlj078bpkQ8slUnV7Wy17AB7j15AgovYcGTcntV raGuxaR6tzhNWqe4qUottr+Yk0GrYJG2+xoLZ3x2ZnyYdNYaXYXnj9LiTPxaUAA28NQf 1ksDEh4V8eBXQceO5Cfw/D4ZwdaQsdRpA52DSA1zegBx6P0ITIWTTCyEpKO6fjZJ4MHd vljemKPsc6aKUUMrdv7Jz+wCIFuE8E0XL6PHEUCvTwspsHa/Wucws0JVDHajli/1SNcg bASAYhMgqPknMO5sO3926eYSu0IscGqUvyTwZK91EcLu2JRAaoHg2gx5C/q5n/2BjXgs qB0w== X-Gm-Message-State: AC+VfDyj1ZGI0uiY91a4ktNj/NaVI/d8H6fXzV43lMoovNk05K8Zw06q xv4qgv3AR9Xq6kvHQzQYmWNcJWPc5ze9meMjwNtstTI6 X-Google-Smtp-Source: ACHHUZ7G9i0seWjVpTkdBhiz8LDfzkIWNJrQX96BklCPNdgrg1oGY41o1oJ70np/8giex0P3VMYgig== X-Received: by 2002:a5d:4643:0:b0:30e:4a21:808b with SMTP id j3-20020a5d4643000000b0030e4a21808bmr13452686wrs.55.1687367921381; Wed, 21 Jun 2023 10:18:41 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:41 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:17 +0200 Subject: [PATCH mptcp-next 16/18] selftests: mptcp: simult flows: format subtests results in TAP Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-16-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2252; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=FdqKLMK/dFIBrNHYnVz9G9+n1tvdWIxcRpx2SlWMalE=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjL8P0wBV69rgnU09xuYaCNnartbcybu68E Xywf0ae9oKJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg cz4mD/9FE9p2NOxgL826LSNhzfuCAaVSU8gt9FQNryY7qpjDPQ6q/8SknzQgVoKuouTBApAIwDJ U1t7iR3xY5Qw62l4mdw0GbaF9/7jJ4Ysh9sgMWt/dFnOAhjff2GhcRlgP/VEupNPA/2ijR6yZhy 0C9arDKp5UvR7ezEQOBXIRj0TaNFZctgsMOp0DlUWflxEs59nW8JZO0kMhJ5H6j+kkaymGoz03x Njuc5NioNocJHP3Hnckw1l8GjufpdYCSRpvru93TsMTwT2q1VCh0Nkn9rRvrFWSi8IXRO7P7v3p dwfO8oslEU1jrs+tLWc6VrtrpoAC/XyJYT0S1WHBS0iUpxnDKqWvmg27en/vFq2CPy2V2o/Dq6H XM83bU+s/8wEIWGA+2j9qdA2M54PBz8DqZlx5FTjjY9oZW60J5pd3Kj3wvPfyeHlO4pBI7yU9vW 8xL3DNuOmBZmHIRFCqbGknRxk1HVz/Ut7F1+im69Ve3nYZC90xxss0J24ZA4jIu4zT6qLalJI/P naxkqQFeGo06RD+OH4UFCoK9yJGAh2/PFgXBhrRfEHqkm5OlsBBNyZkmHaAlT/SrwZuRRXyNoj3 W+Xc0AfxwARINQXCPOMTXbczo7zQ7kFzb3yWf073ipt0gp2USvd/eQN9br1Mb8cBJUUJdrr6Fen oqpXG1DS4XskN3g== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests. MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest. It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored. This patch formats subtests results in TAP in simult_flows.sh selftest. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/simult_flows.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/simult_flows.sh b/tools/test= ing/selftests/net/mptcp/simult_flows.sh index 36a3c9d92e20..ce9203b817f8 100755 --- a/tools/testing/selftests/net/mptcp/simult_flows.sh +++ b/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -261,6 +261,7 @@ run_test() printf "%-60s" "$msg" do_transfer $small $large $time lret=3D$? + mptcp_lib_result_code "${lret}" "${msg}" if [ $lret -ne 0 ]; then ret=3D$lret [ $bail -eq 0 ] || exit $ret @@ -269,6 +270,7 @@ run_test() printf "%-60s" "$msg - reverse direction" do_transfer $large $small $time lret=3D$? + mptcp_lib_result_code "${lret}" "${msg}" if [ $lret -ne 0 ]; then ret=3D$lret [ $bail -eq 0 ] || exit $ret @@ -305,4 +307,6 @@ run_test 10 10 1 50 "balanced bwidth with unbalanced de= lay" run_test 30 10 0 0 "unbalanced bwidth" run_test 30 10 1 50 "unbalanced bwidth with unbalanced delay" run_test 30 10 50 1 "unbalanced bwidth with opposed, unbalanced delay" + +mptcp_lib_result_print_all_tap exit $ret --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 399CF1953D for ; Wed, 21 Jun 2023 17:18:44 +0000 (UTC) Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-3f900cd3f96so50432075e9.2 for ; Wed, 21 Jun 2023 10:18:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367922; x=1689959922; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Yt+ymUwvo9qqHQ/3jV7UaSynTjxmps7sZ8GoWPOQSGY=; b=c2ozuX9DSj3A5ocjDva4mjW/UjRJv/E+VYtdKLh4RulP5FN8jUDK3mE4Ai4kTcqTMb 1nmhd+Nb+D6yjq2CRwXX50810OQ/XYDKoQfbs0+2AKAj6Co1LgEPeN8DlD/LYne2ziJF kRyvOMBmO3FG8fbhTw+FjfL8KP6YjC24AfXJ2Kp6Dl3NNTR0QnxKOaG808epqdY6Vnmd Ilq0KtHXjBctxG3vYgb/P1XmLjI5MyRP9mQVKVAMVxYDv/AoCMPg4oohIYmnM6AW5/mA C37fJiCMUjEb4uMiQ6mTn28b7huEFeDRT5+O5UyfNamMNxea4W/tUceGU29ZjNAfJFoG uKOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367922; x=1689959922; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Yt+ymUwvo9qqHQ/3jV7UaSynTjxmps7sZ8GoWPOQSGY=; b=Qqrw4Vzj7VShONWCIMLX6iMWv7gzcghk9aicZy3kenIxK4CN/IXYhc3jfics70OYxc duFhIgNBSe0Q/fMEMnqBivveVGnPb7eMEJ2PVhwc0jkCGtxsb8LdwpS1Y179BqFNMa+v TLo55azwtWyZ9i2d+Z5x0DKiTVUciXe+lKl1NrzUz8VGHMdWBxOCSuP4fjLe+uqlH9BV G7jkhF5bVPzvtbjXi3jNs3GkEtcjKVcYlu0otByIDeGTDC3X5d+iK/1PQBlIZMtMaY96 ueNTDibpl1zTZ3L0x5FYJXLeLWg0WmgPVhijrHdntfl3oOU1nSvb64apfmIKnLKIOeF1 XSPA== X-Gm-Message-State: AC+VfDxE9aQTTj+oZVNiRIXjowpy9KHxKlq5p1vbWoTDhm6bg/qeHasN Ifp/rbyG0imM4EkHwICd+fQLlzcD6EL8yIhmY+EB6sH/ X-Google-Smtp-Source: ACHHUZ6PJ8tQhKwq8ciSmB071aqAFqX7TfSJMZBtvBbK1bZwHRw4NQZbHf5InMB8LWakinfhWNKCYQ== X-Received: by 2002:a5d:56cc:0:b0:30f:cda5:427a with SMTP id m12-20020a5d56cc000000b0030fcda5427amr10172662wrw.63.1687367922142; Wed, 21 Jun 2023 10:18:42 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:41 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:18 +0200 Subject: [PATCH mptcp-next 17/18] selftests: mptcp: sockopt: format subtests results in TAP Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-17-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3647; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=eZlGQC3wXqZxnH6JSHatwBmSdSpYWEpajDWzDkjCQX0=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDjABF4C9di+WaF8Niw3ICtosrlo0w6+xI0z KJYwCpC+oGJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg cy77EAC2RmRmXmsbf0F5D7RRKlAGYTrpQNQU56oLtVAiEUBF6fvfq0pRHf0k/NBiOJ+I8kbBLE9 vb5W/hFWFgby0psdgbJ2MOfkB2t7BnxLxJzhzkzqC3tEaQFfG5rhjmo5R5LT7SMAy5E1DBQ2wtg aYficvuQ+Vnzu2AeuBTNRvPqDL4BtqMrpIVtso1mStbNHlyuv4WeNhYtFskVEAIr289gwG03wcY Q7fEnHfYKKXp5tdossGGptUY63siuWG0ZohR/I3UrDP0CRgJptEKzJojjlrLKLX6nZKi9yrpefY kfWAzESJjLKg4teF4gTog9KzC3NlupneV88GM38sAQHfGGjlTMBaa4qAVrYbXHgm+g7fxiu5vjs Zi7kvb9ukYUJoEwuVeJQ6G1j0vNZZFTiJKnBbuZALSGR2AY84WGx90DkTRI1rhwOlETsVWM+olI 2KdChQehvHNpckbrgnevR/FrKTpnYAGrY6Wwt+5KPcQLFTCoWJlomaBLBfi43GUwWtSaaKhsZFR FipovVV+pD1zx5qsx0zHwooS+PgpEbKY1EfByLpN1BRNSyk95Jx8j0PuVpiSClVV/skT+r0p05J VqEDvpV0SdjO+4LgA2P2bVHX9u/SU/Yi6K7CTWHwkbdmyIiccJYqIr238taKDFwjTh5CZOyvyeP G/MVbxOzvgKt8Mg== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests. MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest. It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored. This patch formats subtests results in TAP in mptcp_sockopt.sh selftest. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/mptcp_sockopt.sh | 20 ++++++++++++++++++= -- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/tes= ting/selftests/net/mptcp/mptcp_sockopt.sh index dc8d473fc82c..8c8694f21e7d 100755 --- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -183,11 +183,13 @@ do_transfer() =20 local mptcp_connect=3D"./mptcp_connect -r 20" =20 - local local_addr + local local_addr ip if is_v6 "${connect_addr}"; then local_addr=3D"::" + ip=3Dipv6 else local_addr=3D"0.0.0.0" + ip=3Dipv4 fi =20 cmsg=3D"TIMESTAMPNS" @@ -223,6 +225,8 @@ do_transfer() echo -e "\nnetns ${connector_ns} socket stat for ${port}:" 1>&2 ip netns exec ${connector_ns} ss -Menita 1>&2 -o "dport =3D :$port" =20 + mptcp_lib_result_fail "transfer ${ip}" + ret=3D1 return 1 fi @@ -236,9 +240,11 @@ do_transfer() fi =20 check_transfer $cin $sout "file received by server" - rets=3D$? =20 + mptcp_lib_result_code "${retc}" "mark ${ip}" + mptcp_lib_result_code "${rets}" "transfer ${ip}" + if [ $retc -eq 0 ] && [ $rets -eq 0 ];then return 0 fi @@ -264,6 +270,7 @@ do_mptcp_sockopt_tests() =20 if ! mptcp_lib_kallsyms_has "mptcp_diag_fill_info$"; then echo "INFO: MPTCP sockopt not supported: SKIP" + mptcp_lib_result_skip "sockopt" return fi =20 @@ -272,18 +279,22 @@ do_mptcp_sockopt_tests() =20 if [ $lret -ne 0 ]; then echo "FAIL: SOL_MPTCP getsockopt" 1>&2 + mptcp_lib_result_fail "sockopt v4" ret=3D$lret return fi + mptcp_lib_result_pass "sockopt v4" =20 ip netns exec "$ns_sbox" ./mptcp_sockopt -6 lret=3D$? =20 if [ $lret -ne 0 ]; then echo "FAIL: SOL_MPTCP getsockopt (ipv6)" 1>&2 + mptcp_lib_result_fail "sockopt v6" ret=3D$lret return fi + mptcp_lib_result_pass "sockopt v6" } =20 run_tests() @@ -310,10 +321,12 @@ do_tcpinq_test() if [ $lret -ne 0 ];then ret=3D$lret echo "FAIL: mptcp_inq $@" 1>&2 + mptcp_lib_result_fail "TCP_INQ: $*" return $lret fi =20 echo "PASS: TCP_INQ cmsg/ioctl $@" + mptcp_lib_result_pass "TCP_INQ: $*" return $lret } =20 @@ -323,6 +336,7 @@ do_tcpinq_tests() =20 if ! mptcp_lib_kallsyms_has "mptcp_ioctl$"; then echo "INFO: TCP_INQ not supported: SKIP" + mptcp_lib_result_skip "TCP_INQ" return fi =20 @@ -367,4 +381,6 @@ if [ $ret -eq 0 ];then fi =20 do_tcpinq_tests + +mptcp_lib_result_print_all_tap exit $ret --=20 2.40.1 From nobody Wed May 22 01:26:21 2024 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8BA819BC2 for ; Wed, 21 Jun 2023 17:18:44 +0000 (UTC) Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-3f8fe9dc27aso48161245e9.3 for ; Wed, 21 Jun 2023 10:18:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1687367923; x=1689959923; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=TVblpBeNWGNB7fDwVHNlCBY0uXQgNiMcdlCz7QGtARw=; b=M+8iz8Pz3rqMDFKamANtWQ/kd4QPuPMIkpyqUxvF4FUsp2D6C0SICz13yO+GGapa/H mCe3BgV/ud60eo+IpSLsAdMhLOHlGFL16F0ZHunk+IyWpxdEBeqWc5cvEN9Nw9mVz5GU 5xkewcGtJDQQUo3IeFAQ61vUwl8hps6G22qwq5RlBurvZd+6qM/DaB10RQWAhKESAbD5 pc6USHu7OmyLeBuHkVXc2Rp5X3vr4m42N6pIVDt2q1xR6xH6vVw0wewoqU9kkNxeg0Gk CxkHWVmKT19MsiosGNUjKUvdU7qnFuxTJ46oCsUzBn1O8IsDE2bgQmHXs5rZMwF6+5RB 5ErQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687367923; x=1689959923; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TVblpBeNWGNB7fDwVHNlCBY0uXQgNiMcdlCz7QGtARw=; b=mEOLQUkdigsM+JPHKP0d//GYH71dCplcyY8NUdCjC9u+zayzW4DciHNXnfE2SpY24h iZRDkzQGaj4/me/yfVcHeKFaBpKnHHcM49eHfN6Ffxph154fyYd2CUI5T4+/x4zRwSqI JwOV91van+bZ/EeA4jc6FwucmXoCcriZZ3UIqtw/jsmX/9qGjQrESeEhHCOC0s/5L8LZ HZfUyzdm9ID9S3KC9S8I4FCgECxfS1SnMb8J6KkIjTpmTBdZiIrVJ/1N3ldFwUkIh+8U HnpZFrTXi1gb6C/yh1ds9m3otDCFKIwQuIqco27Aq8QwYeBqecT5rCc4cKjCc4h7lk1A zDWg== X-Gm-Message-State: AC+VfDwoBeKoLGCaBGmzxY2F13nic0FBHJ83C7UVG+38WXcLZaL1yZ27 8W42Ff17/onCGym5JXNRTmLZVQivOyUI9sihTpC4q4Gg X-Google-Smtp-Source: ACHHUZ4YxtmLpJIybkFCNCyv/Ibl/TVr6rxyZAb4sbg9Pf6pYLiuyI0BFgkbZwU/0g5akxU+QSHPKA== X-Received: by 2002:a1c:ed08:0:b0:3f4:27ff:7d48 with SMTP id l8-20020a1ced08000000b003f427ff7d48mr11542501wmh.19.1687367922840; Wed, 21 Jun 2023 10:18:42 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id f1-20020adfdb41000000b0030ae499da59sm4930027wrj.111.2023.06.21.10.18.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Jun 2023 10:18:42 -0700 (PDT) From: Matthieu Baerts Date: Wed, 21 Jun 2023 19:18:19 +0200 Subject: [PATCH mptcp-next 18/18] selftests: mptcp: userspace_pm: format subtests results in TAP Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230621-mptcp-issue-368-selftests-subtests-v1-18-0cae453ae1fa@tessares.net> References: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> In-Reply-To: <20230621-mptcp-issue-368-selftests-subtests-v1-0-0cae453ae1fa@tessares.net> To: mptcp@lists.linux.dev Cc: Matthieu Baerts X-Mailer: b4 0.12.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2615; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=0exLZEpTNm5SOzHjFuvb8uJ9afZ7LL50RdiomlC7Mk4=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBkkzDj7qYLFOzVm1+ShIkJJLYobujxj9/YayrO+ P/jtbMp+U2JAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZJMw4wAKCRD2t4JPQmmg c9hvEADdwpSkCK9U+oytWX74eOcxrQCybOOCtuZW1L+ShGfchIJihklU41qEIZWpg7XaxJU0ca+ apV1J5sxXfoWgv6SsfrWPOyZgsoMMkVY9fOnYCxcr7tIkCL0eKEt+qWjQy52vICdGQkRArXpnYE YwvfCbv2f6vvoDEgyyTqLhPdZXp63q0p1Hf/b2JXe4BlUoQ9/gSJcuGZ7c2id+bLIhqfZmHNbn+ jXwC8lWrL+YFYPI+z3tn0Ikz1Yp6Nn3eEpKy26ekjPHHNWZBFU0fSPUE/dVhfXbhKxqauw1PnH8 Q9K4NScZHMA4AbPGClOoY/3z1KLYKCvWHZX6T4syieb3APczG0SllyBlyaDOeYhCBYHKa9rExmp pRUCZLiUoGd9C6g3lZiweNOI9EiXJLo28Gl7MfiE3HFlktJ+9/eBymE64eEaQWqAbc9BuSGuFZ/ m8hXmFw9+u1B4j05cQCOtGs2f4KQ/HseFtz/FSm/dPm9KA4x5WlAE/XhogaT8h6tBcfhoLdwR0x +7gTAcUTcUKD0EiR9X/4Dznfv9U33L3N3lkTXnKfzmQjvnBN5HXNFlVRZj2Hr4gy3VTTXVXEINL niTrl6S133BudWDSkifJAgYq63i+CnCVhgt6fE1BWIosNGOhU3OOwC8bVNTRkn9dXGxKFb3gQXd 57dp5xGXqAPw03A== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The current selftests infrastructure formats the results in TAP 13. This version doesn't support subtests and only the end result of each selftest is taken into account. It means that a single issue in a subtest of a selftest containing multiple subtests forces the whole selftest to be marked as failed. It also means that subtests results are not tracked by CIs executing selftests. MPTCP selftests run hundreds of various subtests. It is then important to track each of them and not one result per selftest. It is particularly interesting to do that when validating stable kernels with the last version of the test suite: tests might fail because a feature is not supported but the test didn't skip that part. In this case, if subtests are not tracked, the whole selftest will be marked as failed making the other subtests useless because their results are ignored. This patch formats subtests results in TAP in userspace_pm.sh selftest. Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 568ddee1d102..23f8959a8ea8 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -59,6 +59,8 @@ rndh=3D$(printf %x "$sec")-$(mktemp -u XXXXXX) ns1=3D"ns1-$rndh" ns2=3D"ns2-$rndh" ret=3D0 +test_name=3D"" + _printf() { stdbuf -o0 -e0 printf "${@}" } @@ -71,7 +73,9 @@ print_title() # $1: test name print_test() { - _printf "%-63s" "${1}" + test_name=3D"${1}" + + _printf "%-63s" "${test_name}" } =20 print_results() @@ -82,11 +86,13 @@ print_results() test_pass() { print_results " OK " + mptcp_lib_result_pass "${test_name}" } =20 test_skip() { print_results "SKIP" + mptcp_lib_result_skip "${test_name}" } =20 # $1: msg @@ -98,6 +104,8 @@ test_fail() if [ -n "${1}" ]; then _printf "\t%s\n" "${1}" fi + + mptcp_lib_result_fail "${test_name}" } =20 kill_wait() @@ -255,6 +263,7 @@ make_connection() test_pass else test_fail "Expected tokens (c:${client_token} - s:${server_token}) and s= erver (c:${client_serverside} - s:${server_serverside})" + mptcp_lib_result_print_all_tap exit 1 fi =20 @@ -990,4 +999,5 @@ test_subflows_v4_v6_mix test_prio test_listener =20 +mptcp_lib_result_print_all_tap exit ${ret} --=20 2.40.1