[LTP] [PATCH 5/5] Add test for data integrity over NFS

Petr Vorel pvorel@suse.cz
Tue Nov 12 22:23:02 CET 2024


> > Hi!

> > > I'm looking at the nfs_lib.sh, we do have a lot there actually since it
> > > runs for all filesystems and we run the nfs tests for different nfs
> > > versions as well. This does not seem that would integrate well into the
> > > tst_test all_filesystems testing.

> Yes (found that as well when replied to your first email).
> I thought you want to integrate NFS just for a shake of other tests, which use
> .all_filesystems (e.g. some NFS to be added into fs_type_whitelist[], e.g.
> "nfsv4), which would of course require u specific setup.

> That would, of course did not cover all range of NFS versions + also using UDP,
> which is used for current NFS tests (including this one).

> > > I will think a bit how to integrate things better, because having LTP
> > > test inside LTP test will never work well.

> Reviewed-by: Petr Vorel <pvorel@suse.cz>
> Tested-by: Petr Vorel <pvorel@suse.cz>

> Looks usable + later on tests which use netstress.c could be converted to use it
> as well.

@Cyril: gently ping, could you please merge the patch you posted below?
Obviously usable test + example which can be used for network tests.

Kind regards,
Petr

> Kind regards,
> Petr

> > So one posibility is to use the new shell test library that integrates
> > cleanly with C, then we can have a shell nfs test that runs for all
> > filesystems, mounts the nfs and then runs the C fsplough itself.

> > Minimal example how to do that is:

> > From b48184d4fa1918afe6c84d0e691f8d46c986e92c Mon Sep 17 00:00:00 2001
> > From: Cyril Hrubis <chrubis@suse.cz>
> > Date: Mon, 4 Nov 2024 14:29:24 +0100
> > Subject: [PATCH] shell lib: Add example how to run C child

> > Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
> > ---
> >  testcases/lib/run_tests.sh                  |  2 +-
> >  testcases/lib/tests/.gitignore              |  1 +
> >  testcases/lib/tests/shell_c_child.c         | 16 ++++++++++++++
> >  testcases/lib/tests/shell_loader_c_child.sh | 24 +++++++++++++++++++++
> >  4 files changed, 42 insertions(+), 1 deletion(-)
> >  create mode 100644 testcases/lib/tests/shell_c_child.c
> >  create mode 100755 testcases/lib/tests/shell_loader_c_child.sh

> > diff --git a/testcases/lib/run_tests.sh b/testcases/lib/run_tests.sh
> > index 8ea615f96..40d415e6c 100755
> > --- a/testcases/lib/run_tests.sh
> > +++ b/testcases/lib/run_tests.sh
> > @@ -14,7 +14,7 @@ for i in shell_loader.sh shell_loader_all_filesystems.sh shell_loader_no_metadat
> >  	 shell_loader_wrong_metadata.sh shell_loader_invalid_metadata.sh\
> >  	 shell_loader_supported_archs.sh shell_loader_filesystems.sh\
> >  	 shell_loader_tcnt.sh shell_loader_kconfigs.sh shell_loader_tags.sh \
> > -	 shell_loader_invalid_block.sh; do
> > +	 shell_loader_invalid_block.sh shell_loader_c_child.sh; do
> >  	echo
> >  	echo "*** Running $i ***"
> >  	echo
> > diff --git a/testcases/lib/tests/.gitignore b/testcases/lib/tests/.gitignore
> > index da967c4d6..e9e163d13 100644
> > --- a/testcases/lib/tests/.gitignore
> > +++ b/testcases/lib/tests/.gitignore
> > @@ -4,3 +4,4 @@ shell_test03
> >  shell_test04
> >  shell_test05
> >  shell_test06
> > +shell_c_child
> > diff --git a/testcases/lib/tests/shell_c_child.c b/testcases/lib/tests/shell_c_child.c
> > new file mode 100644
> > index 000000000..fda5133a6
> > --- /dev/null
> > +++ b/testcases/lib/tests/shell_c_child.c
> > @@ -0,0 +1,16 @@
> > +// SPDX-License-Identifier: GPL-2.0-or-later
> > +/*
> > + * Shell test C child example.
> > + */
> > +
> > +#define TST_NO_DEFAULT_MAIN
> > +#include "tst_test.h"
> > +
> > +int main(void)
> > +{
> > +	tst_reinit();
> > +
> > +	tst_res(TPASS, "C child works fine!");
> > +
> > +	return 0;
> > +}
> > diff --git a/testcases/lib/tests/shell_loader_c_child.sh b/testcases/lib/tests/shell_loader_c_child.sh
> > new file mode 100755
> > index 000000000..d190be6e2
> > --- /dev/null
> > +++ b/testcases/lib/tests/shell_loader_c_child.sh
> > @@ -0,0 +1,24 @@
> > +#!/bin/sh
> > +#
> > +# ---
> > +# doc
> > +#
> > +# [Description]
> > +#
> > +# This is an example how to run C child from shell.
> > +# ---
> > +#
> > +# ---
> > +# env
> > +# {
> > +# }
> > +# ---
> > +
> > +. tst_loader.sh
> > +
> > +if [ -n "LTP_IPC_PATH" ]; then
> > +	tst_res TPASS "LTP_IPC_PATH=$LTP_IPC_PATH!"
> > +fi
> > +
> > +tst_res TINFO "Running C child"
> > +shell_c_child


More information about the ltp mailing list