From: Geliang Tang <geliang@kernel.org>
To: Matthieu Baerts <matttbe@kernel.org>
Cc: mptcp@lists.linux.dev
Subject: Re: [PATCH mptcp-net] selftests: mptcp: don't exit when a symbol not found
Date: Mon, 26 Feb 2024 09:55:37 +0800 [thread overview]
Message-ID: <Zdvvme+jNATvNMkF@t480> (raw)
In-Reply-To: <2f6096ac-568f-46a6-9938-3d57ad02536b@kernel.org>
Hi Matt,
On Thu, Feb 22, 2024 at 11:49:18AM +0100, Matthieu Baerts wrote:
> Hi Geliang,
>
> On 22/02/2024 11:31 am, Geliang Tang wrote:
> > On Thu, Feb 22, 2024 at 09:58:39AM +0100, Matthieu Baerts wrote:
> >> Hi Geliang,
> >>
> >> On 22/02/2024 8:56 am, Geliang Tang wrote:
> >>> From: Geliang Tang <tanggeliang@kylinos.cn>
> >>>
> >>> mptcp_lib_kallsyms_has() will always exit when a symbol has not found, it
> >>> breaks the test itself. Unexpected errors occur:
> >>>
> >>> 007 userspace pm add & remove address
> >>> syn [ OK ]
> >>> synack [ OK ]
> >>> ack [ OK ]
> >>> add [ OK ]
> >>> echo [ OK ]
> >>> mptcp_info subflows=2:2 [ OK ]
> >>> mptcp_info subflows_total=3:3 [ OK ]
> >>> mptcp_info add_addr_signal=2:2 [ OK ]
> >>> mptcp_info last_data_sent=191:18 [ OK ]
> >>> mptcp_info last_data_recv=40:68 [ OK ]
> >>> mptcp_info last_ack_recv=93:74 [ OK ]
> >>> dump addrs signal ERROR: missing feature: \
> >>> mptcp_userspace_pm_dump_addr$ symbol not found
> >>> Cannot open network namespace "ns1-65d6fb5a-5FviVK": \
> >>> No such file or directory
> >>> Cannot open network namespace "ns2-65d6fb5a-5FviVK": \
> >>> No such file or directory
> >>> cmp: /tmp/tmp.a7osJs7Nj0: No such file or directory
> >>> cmp: /tmp/tmp.f02z6brCQu: No such file or directory
> >>> cat: /tmp/tmp.27TzxD2efV: No such file or directory
> >>> not ok 1 test: selftest_mptcp_join # FAIL
> >>>
> >>> To fix this, this patch adds a new argument 'continue' for the helper
> >>> mptcp_lib_fail_if_expected_feature() to control whether exit or not.
> >>>
> >>> Always set this argument to 1 in mptcp_lib_kallsyms_has().
> >>>
> >>> Fixes: 83013bdf90a ("selftests: mptcp: connect: skip if MPTCP is not supported")
> >>
> >> I'm not sure to understand why you sent this :)
> >
> > Say in the test "signal addresses race test":
> >
> > if ! mptcp_lib_kallsyms_has "mptcp_pm_subflow_check_next$"; then
> > chk_join_nr 3 3 2
> > chk_add_nr 4 4
> > else
> > chk_join_nr 3 3 3
> > # the server will not signal the address terminating
> > # the MPC subflow
> > chk_add_nr 3 3
> > fi
> >
> > This code will never run to this block:
> >
> > chk_join_nr 3 3 2
> > chk_add_nr 4 4
> >
> > Since if no symbal of mptcp_pm_subflow_check_next, mptcp_lib_kallsyms_has exit.
>
> This block will never be executed in our CI, because our CI always run
> the selftests linked to the same version of the kernel. In this case,
> that would not be normal to execute this block in our CI, it has to
> complain because we expect to have this symbol in the latest version.
>
> Other CIs, like LKFT, which are validating stable kernels (e.g. 5.15.x)
> using the selftests from the last stable kernel (e.g. 6.7.x) will not
> have SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES env var being set to 1 as
> we did in our CI. Then it is fine, tests and checks will be skipped if
> some features are missing:
>
> https://tuxapi.tuxsuite.com/v1/groups/linaro/projects/lkft/tests/2cJxC6Sua3VVzRZmpQYKK2jzzNN/logs?format=html
>
> > You can trigger this by renaming "mptcp_pm_subflow_check_next$" to
> > "no_mptcp_pm_subflow_check_next$", an non-exist function name, for test.
>
> I confirm that if you use 'mptcp-upstream-virtme-docker', this env var
> will be set to 1 by default:
>
> SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES=1
>
> You can unset it on your side, but it only makes sense to do that if you
> work on stable kernels (and you use selftests from a more recent
> version, not the ones attached to the kernel you are validating).
>
> So yes, in this environment (where we force setting the env var to 1,
> not the "default" behaviour), picking a non-existing function name will
> cause the test to fail: but that's what we want → we want to be notified
> if we picked a non-existing function, like it happened recently:
>
> https://github.com/multipath-tcp/mptcp_net-next/actions/runs/7988706773
Thanks for your explanation, it took me some time to understand it. Yes, we
can use SELFTESTS_MPTCP_LIB_EXPECT_ALL_FEATURES to control whether exit or
not. Let's drop this patch.
-Geliang
>
> Cheers,
> Matt
> --
> Sponsored by the NGI0 Core fund.
prev parent reply other threads:[~2024-02-26 1:55 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-22 7:56 [PATCH mptcp-net] selftests: mptcp: don't exit when a symbol not found Geliang Tang
2024-02-22 8:51 ` selftests: mptcp: don't exit when a symbol not found: Tests Results MPTCP CI
2024-02-22 8:58 ` [PATCH mptcp-net] selftests: mptcp: don't exit when a symbol not found Matthieu Baerts
2024-02-22 10:31 ` Geliang Tang
2024-02-22 10:49 ` Matthieu Baerts
2024-02-26 1:55 ` Geliang Tang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zdvvme+jNATvNMkF@t480 \
--to=geliang@kernel.org \
--cc=matttbe@kernel.org \
--cc=mptcp@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.