From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Thomas Haller <thaller@redhat.com>
Cc: NetFilter <netfilter-devel@vger.kernel.org>
Subject: Re: [nft PATCH 1/3] tests/shell: mount all of "/var/run" in "test-wrapper.sh"
Date: Fri, 6 Oct 2023 13:51:49 +0200 [thread overview]
Message-ID: <ZR/01bpbTAQY5QPc@calendula> (raw)
In-Reply-To: <20231006094226.711628-1-thaller@redhat.com>
Hi Thomas,
Series LGTM, one question below
On Fri, Oct 06, 2023 at 11:42:18AM +0200, Thomas Haller wrote:
> After reboot, "/var/run/netns" does not exist before we run the first
> `ip netns add` command. Previously, "test-wrapper.sh" would mount a
> tmpfs on that directory, but that fails, if the directory doesn't exist.
> You will notice this, by deleting /var/run/netns (which only root can
> delete or create, and which is wiped on reboot).
>
> Instead, mount all of "/var/run". Then we can also create /var/run/netns
> directory.
Maybe create a specify mount point for this? This will be created
once, then it will remain there for those that run tests?
> This means, any other content from /var/run is hidden too. That's
> probably desirable, because it means we don't depend on stuff that
> happens to be there. If we would require other content in /var/run, then
> the test runner needs to be aware of the requirement and ensure it's
> present. But best is just to not require anything. It's only iproute2
> which insists on /var/run/netns.
>
> Signed-off-by: Thomas Haller <thaller@redhat.com>
> ---
> tests/shell/helpers/test-wrapper.sh | 26 +++++++++++++++-----------
> 1 file changed, 15 insertions(+), 11 deletions(-)
>
> diff --git a/tests/shell/helpers/test-wrapper.sh b/tests/shell/helpers/test-wrapper.sh
> index e10360c9b266..13b918f8b8e1 100755
> --- a/tests/shell/helpers/test-wrapper.sh
> +++ b/tests/shell/helpers/test-wrapper.sh
> @@ -23,11 +23,11 @@ START_TIME="$(cut -d ' ' -f1 /proc/uptime)"
>
> export TMPDIR="$NFT_TEST_TESTTMPDIR"
>
> -CLEANUP_UMOUNT_RUN_NETNS=n
> +CLEANUP_UMOUNT_VAR_RUN=n
>
> cleanup() {
> - if [ "$CLEANUP_UMOUNT_RUN_NETNS" = y ] ; then
> - umount "/var/run/netns" || :
> + if [ "$CLEANUP_UMOUNT_VAR_RUN" = y ] ; then
> + umount "/var/run" &>/dev/null || :
> fi
> }
>
> @@ -38,16 +38,20 @@ printf '%s\n' "$TEST" > "$NFT_TEST_TESTTMPDIR/name"
> read tainted_before < /proc/sys/kernel/tainted
>
> if [ "$NFT_TEST_HAS_UNSHARED_MOUNT" = y ] ; then
> - # We have a private mount namespace. We will mount /run/netns as a tmpfs,
> - # this is useful because `ip netns add` wants to add files there.
> + # We have a private mount namespace. We will mount /var/run/ as a tmpfs.
> #
> - # When running as rootless, this is necessary to get such tests to
> - # pass. When running rootful, it's still useful to not touch the
> - # "real" /var/run/netns of the system.
> - mkdir -p /var/run/netns
> - if mount -t tmpfs --make-private "/var/run/netns" ; then
> - CLEANUP_UMOUNT_RUN_NETNS=y
> + # The main purpose is so that we can create /var/run/netns, which is
> + # required for `ip netns add` to work. When running as rootless, this
> + # is necessary to get such tests to pass. When running rootful, it's
> + # still useful to not touch the "real" /var/run/netns of the system.
> + #
> + # Note that this also hides everything that might reside in /var/run.
> + # That is desirable, as tests should not depend on content there (or if
> + # they do, we need to explicitly handle it as appropriate).
> + if mount -t tmpfs --make-private "/var/run" ; then
> + CLEANUP_UMOUNT_VAR_RUN=y
> fi
> + mkdir -p /var/run/netns
> fi
>
> TEST_TAGS_PARSED=0
> --
> 2.41.0
>
next prev parent reply other threads:[~2023-10-06 11:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-06 9:42 [nft PATCH 1/3] tests/shell: mount all of "/var/run" in "test-wrapper.sh" Thomas Haller
2023-10-06 9:42 ` [nft PATCH 2/3] tests/shell: preserve result directory with NFT_TEST_FAIL_ON_SKIP Thomas Haller
2023-10-06 9:42 ` [nft PATCH 3/3] tests/shell: add "-S|--setup-host" option to set sysctl for rootless tests Thomas Haller
2023-10-06 11:51 ` Pablo Neira Ayuso [this message]
2023-10-06 14:26 ` [nft PATCH 1/3] tests/shell: mount all of "/var/run" in "test-wrapper.sh" Thomas Haller
2023-10-11 8:24 ` Pablo Neira Ayuso
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=ZR/01bpbTAQY5QPc@calendula \
--to=pablo@netfilter.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=thaller@redhat.com \
/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.