Home | History | Annotate | only in /src/tests/fs/common
History log of /src/tests/fs/common
RevisionDateAuthorComments
 1.17 03-Jun-2023  lukem branches: 1.17.2;
bsd.own.mk: rename GCC_NO_* to CC_WNO_*

Rename compiler-warning-disable variables from
GCC_NO_warning
to
CC_WNO_warning
where warning is the full warning name as used by the compiler.

GCC_NO_IMPLICIT_FALLTHRU is CC_WNO_IMPLICIT_FALLTHROUGH

Using the convention CC_compilerflag, where compilerflag
is based on the full compiler flag name.
 1.16 07-Sep-2020  mrg remove GCC_NO_ADDR_OF_PACKED_MEMBER for several subdir builds
that are now handled by lfs_accessors.h internally.
 1.15 07-Sep-2020  mrg avoid new GCC 9 warnings.
 1.14 01-Jun-2020  christos LIBISPRIVATE=yes
 1.13 13-Oct-2019  mrg introduce some common variables for use in GCC warning disables:

GCC_NO_FORMAT_TRUNCATION -Wno-format-truncation (GCC 7/8)
GCC_NO_STRINGOP_TRUNCATION -Wno-stringop-truncation (GCC 8)
GCC_NO_STRINGOP_OVERFLOW -Wno-stringop-overflow (GCC 8)
GCC_NO_CAST_FUNCTION_TYPE -Wno-cast-function-type (GCC 8)

use these to turn off warnings for most GCC-8 complaints. many
of these are false positives, most of the real bugs are already
commited, or are yet to come.


we plan to introduce versions of (some?) of these that use the
"-Wno-error=" form, which still displays the warnings but does
not make it an error, and all of the above will be re-considered
as either being "fix me" (warning still displayed) or "warning
is wrong."
 1.12 04-Mar-2014  joerg branches: 1.12.26;
Make the abs() use check non-fatal for a bogus use in the LFS cleanerd.
 1.11 26-Jun-2013  reinoud Add UDF as one of the filesytems to test. Might help understand why rump is
misbehaving on it.
 1.10 05-Mar-2013  christos Highly uncool to stash a partial copy of the ti-rpc code here.
 1.9 31-Aug-2012  pooka branches: 1.9.2;
Hook ZFS tests to MKZFS instead of a homegrown variable.
 1.8 20-Aug-2012  pooka Add a vfstest zfs attachment. This is a compile-time option,
default off, due the large numbers of failing tests (some of them
look like quite trivial failures).
 1.7 11-Aug-2011  uch branches: 1.7.2;
add ATF tests for v7fs. patch by njoly@. thank you.
 1.6 11-Nov-2010  pooka Add rumpfs to list of file systems to be autotested.
 1.5 03-Aug-2010  drochner .PARSEDIR doesn't work. at least not for me. Use .CURDIR instead
which makes a build with objdir succeed.
 1.4 29-Jul-2010  pooka Include & use lfs megamaid.
 1.3 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.2 26-Jul-2010  pooka Add NFS to the list of file systems exercised by the "vfs" tests.

How it works:
NFS tests fork and exec the nfs service from fs/nfs/nfsservice.
The child then:
a) creates a FFS file system
b) mounts it
c) starts rpcbind
d) starts mountd
e) starts nfsd
f) handles requests

The client, as expected, does the standard RPC regotiation and
calls mount(MOUNT_NFS). It then proceeds to execute the test.

An individual test which executes everything described above and
does a few file operations on the NFS mount takes 0.16s wall time
on my laptop from start to finish. This means it is feasible to
run hundreds of tests while still getting results in a timely
fashion.

Like in other networked tests, the two processes are connected via
the rump shmif which uses mmapped files as ethernet busses. The
entire test suite can be executed by an unprivileged account.

As a side effect, these tests exercise also the kernel NFS server
in addition to the kernel NFS client.

While everything is currently targetted at executing the vfs tests,
there is no reason this could not be extended to exercise features
specific to NFS. For example, the server can run through all
exportable file system types, permissions can be tested, etc.
 1.1 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.7.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.2.1 30-Oct-2012  yamt sync with head
 1.9.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.2.1 23-Jun-2013  tls resync from head
 1.12.26.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.17.2.1 12-Aug-2024  perseant Add exFAT conditions to vfs tests
 1.6 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.4 13-Jul-2010  njoly Add testcase data argument to all fstest helper functions.
Needed by pooka for puffs fstest support.
 1.3 12-Jul-2010  njoly Update filesystem helper functions namespace (from XXX_mount to
XXX_fstest_mount) to avoid conflicts with existing functions such as
puffs_mount.
 1.2 05-Jul-2010  njoly Fix more copyrights, where i forgot to add my name.
 1.1 30-Jun-2010  njoly Add helper code and macros to ease writing filesystem tests with rump.
Support currently limited to ext2fs, ffs, msdos, sysvbfs and tmpfs.
 1.6 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.4 13-Jul-2010  njoly Add testcase data argument to all fstest helper functions.
Needed by pooka for puffs fstest support.
 1.3 12-Jul-2010  njoly Update filesystem helper functions namespace (from XXX_mount to
XXX_fstest_mount) to avoid conflicts with existing functions such as
puffs_mount.
 1.2 05-Jul-2010  njoly Fix more copyrights, where i forgot to add my name.
 1.1 30-Jun-2010  njoly Add helper code and macros to ease writing filesystem tests with rump.
Support currently limited to ext2fs, ffs, msdos, sysvbfs and tmpfs.
 1.1 13-Aug-2024  perseant branches: 1.1.2;
file fstest_exfatfs.c was initially added on branch perseant-exfatfs.
 1.1.2.3 08-Sep-2024  perseant Test with a non-zero dirmask, so the fs/vfs/t_unpriv tests don't fail
prematurely with EACCES. (They should error out with EPERM instead.)
 1.1.2.2 14-Aug-2024  perseant Use the correct name for newfs_exfatfs
 1.1.2.1 13-Aug-2024  perseant Add exFAT-specific filesystem shims for vfs tests.
 1.3 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.2 30-Jul-2010  pooka Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.1 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.7 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.6 05-Aug-2012  riastradh Fix ffs_fstest_delfs's error branch for rump_pub_etfs_remove.

rump_pub_etfs_remove returns an error code, rather than setting errno
and returning -1.
 1.5 26-Jun-2011  christos branches: 1.5.2;
ggr, how many of those I will need to fix. Fallout from the bogus inclusion
of <signal.h> in rump_syscallargs.h.
 1.4 13-Jan-2011  pooka wrap system() in SIG_DFL so that child-bearing fs tests (puffs,
nfs) don't go cuckoo when the process executed by system() takes a
backstage left.
 1.3 07-Jan-2011  pooka add another fstype for ffs -o log
 1.2 30-Jul-2010  pooka Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.1 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5.2.1 30-Oct-2012  yamt sync with head
 1.8 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.7 30-Aug-2019  brad The cleaner is compiled into the ATF test harness for the LFS
filesystem tests. Use the new -J option to pass the raw device into
the cleaner. This avoids the not rump safe getdiskrawname call and
makes sure we use an internal rump device name for cleaning. This
should fix bin/54488.
 1.6 20-Jan-2019  gson branches: 1.6.2;
Call rump_pub_lwproc_newlwp() in the lfs cleaner thread to make its
rump system calls all use the same lwp. Hopefully this will fix
PR kern/53884. Also call rump_pub_lwproc_releaselwp() at the end.
 1.5 30-Aug-2015  dholland branches: 1.5.14; 1.5.16;
Remove rubbish.
 1.4 30-Jul-2010  pooka Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.3 29-Jul-2010  pooka whitespace
 1.2 29-Jul-2010  pooka Include & use lfs megamaid.
 1.1 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5.16.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.5.16.1 10-Jun-2019  christos Sync with HEAD
 1.5.14.1 26-Jan-2019  pgoyette Sync with HEAD
 1.6.2.1 02-Sep-2019  martin Pull up following revision(s) (requested by brad in ticket #110):

libexec/lfs_cleanerd/lfs_cleanerd.c: revision 1.59
libexec/lfs_cleanerd/lfs_cleanerd.8: revision 1.19
sbin/resize_lfs/resize_lfs.c: revision 1.15
usr.sbin/puffs/rump_lfs/rump_lfs.c: revision 1.19
libexec/lfs_cleanerd/lfs_cleanerd.c: revision 1.60
lib/libutil/getdiskrawname.c: revision 1.6
tests/fs/common/fstest_lfs.c: revision 1.7

Use getdiskrawname to find the device name.
Reviewed by Christos

-

Teach getdiskrawname and getdiskcookedname about zvols.
Reviewed by Christos

-

Add support for passing the raw device name separate from the
filesystem. This is useful in the case where the cleaner is compiled
into code, such as rump_lfs and the ATF tests. This helps to fix
bin/54488

-

The cleaner is compiled into rump_lfs and executed as a thread. Pass
in the raw device using the new -J option. This avoids the use of
getdiskrawname which is not particularly rump safe in this context and
insures that the rump container device is used for cleaning, not the
outer device.
 1.4 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.3 26-Mar-2012  njoly Initialise permissions mask to a sensible value (0755).
While here convert leading spaces to tabs.
 1.2 30-Jul-2010  pooka branches: 1.2.6;
Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.1 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.2.6.1 17-Apr-2012  yamt sync with head
 1.13 08-Sep-2024  rillig fix a/an grammar in obvious cases
 1.12 17-Jun-2020  kamil branches: 1.12.8;
Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.11 05-Oct-2019  mrg sprintf->snprintf
 1.10 01-Feb-2019  mrg don't check the return value of execvp() for failure to call err().
assume if it returns at all something has failed.
 1.9 28-Feb-2011  pooka branches: 1.9.44;
g/c use of unused variable too
 1.8 28-Feb-2011  pooka g/c unused variable
 1.7 28-Feb-2011  pooka bump nfdsargv[]�size belatedly (and add a few extra for needs of future bugs)
 1.6 10-Feb-2011  njoly Do initialise allocated file system args structures for puffs and nfs
(fix some puffs tests failures with MALLOC_OPTIONS=J).
While here, detect and report args allocation failure.

ok from pooka.
 1.5 31-Dec-2010  pooka branches: 1.5.2;
Configure two network addresses for the nfs server. One exports
/myexport r/w to the client in the same subnet and the other one
exports /myexport r/o to the client in the same subnet.
 1.4 26-Aug-2010  pooka Put the workaround for PR kern/43799 into the common nfs unmount routine.
 1.3 30-Jul-2010  pooka Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.2 30-Jul-2010  pooka Wait for child (rumpnfsd) to die before declaring unmount successful.
(yes, should be in delfs, but delfs doesn't work due to the cleanup hassle)
 1.1 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5.2.2 05-Mar-2011  bouyer Sync with HEAD
 1.5.2.1 17-Feb-2011  bouyer Sync with HEAD
 1.9.44.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.9.44.1 10-Jun-2019  christos Sync with HEAD
 1.12.8.1 02-Aug-2025  perseant Sync with HEAD
 1.14 03-Aug-2023  andvar fix typos in comments and one definition, mainly s/sucket/socket/.
 1.13 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.12 01-Feb-2019  mrg don't check the return value of execvp() for failure to call err().
assume if it returns at all something has failed.
 1.11 09-Sep-2013  pooka branches: 1.11.26;
Remove what looks like an outdated assert (there was something very sneaky
about this code, but my memory is fading ...)
 1.10 10-Feb-2011  njoly branches: 1.10.4; 1.10.10;
Do initialise allocated file system args structures for puffs and nfs
(fix some puffs tests failures with MALLOC_OPTIONS=J).
While here, detect and report args allocation failure.

ok from pooka.
 1.9 07-Jan-2011  pooka branches: 1.9.2;
Don't panic if "unnecessary" dir already exists.
(helpful when running the test without atf-run)
 1.8 07-Jan-2011  pooka Add a puffs-p2k-ffs file system type to automated tests. Inspired
by the file handle problem in p2k.
 1.7 29-Dec-2010  yamt don't assume atomic read/write on socketpair. puffs_kargs at least is
too large to assume atomic read/write. this makes some tests including
fs/puffs/t_basic pass on my environment.
 1.6 01-Nov-2010  pooka Make the shovel threads resilient to file server exit.
 1.5 31-Oct-2010  pgoyette Fix format strings so it builds on amd64
 1.4 31-Oct-2010  pooka Since rump implicit threads now bind to proc1 instead of proc0, we
need our shovel threads bound to proc1 instead of proc0 in order
to have access to the same set of descriptors as the implicit thread
which opens the fd in the rump kernel.

Also, sprinkle some printfs and make failure more dramatic.

fixes the puffs tests. pointed out by pgoyette.
 1.3 01-Sep-2010  pooka update to new rump lwp/proc interfaces
 1.2 30-Jul-2010  pooka Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.1 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.9.2.1 17-Feb-2011  bouyer Sync with HEAD
 1.10.10.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.10.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11.26.1 10-Jun-2019  christos Sync with HEAD
 1.3 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.2 16-Mar-2014  njoly Retrict rumpfs to the provided size, like other filesystems.
 1.1 11-Nov-2010  pooka branches: 1.1.6; 1.1.12;
Add rumpfs to list of file systems to be autotested.
 1.1.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.2 30-Jul-2010  pooka Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.1 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.3 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.2 30-Jul-2010  pooka Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.1 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.4 02-Jul-2013  reinoud branches: 1.4.6; 1.4.10;
Use the new extension to newfs_udf to generate a decent image for rump to work
on instead of an FFS(!) version.
 1.3 30-Jun-2013  martin Initialize mount args version info.
Add comment about a bogusly used "newfs" where "newfs_udf" is meant.
 1.2 30-Jun-2013  martin Fix copy & pasto, notice by Nicolas Joly, one step closer to solving
PR kern/47974.
 1.1 26-Jun-2013  reinoud Add UDF as one of the filesytems to test. Might help understand why rump is
misbehaving on it.
 1.4.10.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.10.1 02-Jul-2013  tls file fstest_udf.c was added on branch tls-maxphys on 2014-08-20 00:04:47 +0000
 1.4.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.6.1 02-Jul-2013  yamt file fstest_udf.c was added on branch yamt-pagecache on 2014-05-22 11:42:18 +0000
 1.2 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.1 11-Aug-2011  uch add ATF tests for v7fs. patch by njoly@. thank you.
 1.3 17-Jun-2020  kamil Include explicitly <rump/rump_syscallshotgun.h> for previous indirect users
via <rump/rump.h>.
 1.2 16-Dec-2018  hannken Have to hijack sysctl() and modctl() for zfs commands.

Should fix PR kern/53422
 1.1 20-Aug-2012  pooka branches: 1.1.4; 1.1.32; 1.1.34;
Add a vfstest zfs attachment. This is a compile-time option,
default off, due the large numbers of failing tests (some of them
look like quite trivial failures).
 1.1.34.1 10-Jun-2019  christos Sync with HEAD
 1.1.32.1 26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.1.4.2 30-Oct-2012  yamt sync with head
 1.1.4.1 20-Aug-2012  yamt file fstest_zfs.c was added on branch yamt-pagecache on 2012-10-30 18:59:52 +0000
 1.45 15-Aug-2025  perseant Rework the optional building of ZFS tests to make it easier to add other
optional filesystems in future. Verified to produce identical binaries.
 1.44 15-Mar-2020  martin branches: 1.44.8;
Skip tests when we know there is not enough space available
 1.43 15-Mar-2020  martin Hardcode a check for ZFS and too little free space in workdir to skip
ZFS tests if the atf working directory is size restricted (ZFS has a
hardcoded minimal size of 64MB for a storage pool and 128 MB disk size).
 1.42 19-Jun-2018  gson branches: 1.42.2;
No semicolon after macro do ... while (0) wrapper.
 1.41 13-Jan-2017  christos branches: 1.41.12;
Don't play with "../.." in includes for h_macros.h; deal with it centrally.
Minor fixes.
 1.40 29-Aug-2015  dholland branches: 1.40.2;
Fix glaringly wrong indent.
 1.39 24-Mar-2015  riastradh zfs tests don't actually need privileges.
 1.38 26-Jun-2013  reinoud Add UDF as one of the filesytems to test. Might help understand why rump is
misbehaving on it.
 1.37 16-Mar-2013  jmmv Mark the zfs tests as requiring root.

This is wrong. The zfs tests already use rump so they should not require
root. However, I've already spent much more time than I wanted trying to
figure out why that's the case without much luck. If you can find why,
just remove this hack.
 1.36 20-Aug-2012  pooka branches: 1.36.2;
Add a vfstest zfs attachment. This is a compile-time option,
default off, due the large numbers of failing tests (some of them
look like quite trivial failures).
 1.35 11-Aug-2011  uch branches: 1.35.2;
add ATF tests for v7fs. patch by njoly@. thank you.
 1.34 22-Mar-2011  jmmv Remove unnecessary (and broken) cleanup routines.

The cleanup routines were being used to kill the rump process and to delete
the temporary image file. These are things automatically done by atf-run,
but it looks like this code was added here to workaround a previous bug in
the atf-run code.

Note that, in the existing form, the cleanup routines segfault (haven't
spent the time to track down why). atf-run does not care about this
(although it should), buy Kyua does.

As a side effect, this has a teeny-tiny performance speedup in the execution
of the tests including this file.

OKed by njoly@.
 1.33 05-Mar-2011  pooka Put p2k_ffs back there -- i can't repeat any problems in my qemu/anita
runs.
 1.32 07-Jan-2011  pooka Apparently the atf in the qemu runs doesn't like p2k_ffs and hangs
completely. Remove it for until I have a chance to debug what's
going on.
 1.31 07-Jan-2011  pooka Adjust atf_check_type() to make it work again.
Do we need tests for the tests? ;)
 1.30 07-Jan-2011  pooka Set an extra xvar indicating MOUNT_FOO
 1.29 07-Jan-2011  pooka antipasto
 1.28 07-Jan-2011  pooka add another fstype for ffs -o log
 1.27 07-Jan-2011  pooka adjust another place where X-fs.type is set
 1.26 07-Jan-2011  pooka Use our internal name instead of MOUNT_FOO to identify file system
since otherwise we now run into dupes (e.g. nfs and nfsro, puffs
and p2k_ffs).
 1.25 07-Jan-2011  pooka Add a puffs-p2k-ffs file system type to automated tests. Inspired
by the file handle problem in p2k.
 1.24 31-Dec-2010  pooka Introduce r/o tests. They do two mounts: the first one is r/w and
runs a generator which primes the fs. The second one is r/o and
does the actual testing. Also, introduce a nfsro fstype which does
a clientside r/w mount for a r/o server export.

requested by yamt

(one nfsro test currently fails with EROFS vs. EACCES. Hopefully
someone else can debate the correct errno)
 1.23 31-Dec-2010  pooka Sprinkle some KNF. No functional change.
 1.22 11-Nov-2010  pooka Add rumpfs to list of file systems to be autotested.
 1.21 07-Nov-2010  jmmv Adjusts tests after import of atf-0.12:

- The use.fs property is gone.
- Mark the tests/fs/t_create:attrs test as broken when using the default
unprivileged-user:_atf setting. This probably deserves a fix somehow
but I'm not sure at this point.
 1.20 26-Aug-2010  pooka include some necessary headers to fix build
 1.19 25-Aug-2010  pooka * fail with errnos
* in case unmount fails, call rump_pub_vfs_mount_print() to print
mountpoint status and dump active vnodes.
 1.18 09-Aug-2010  pooka allow overriding of defaults
 1.17 30-Jul-2010  pooka Fold the puffs private and vfs tests mount/unmount routines together.
To achieve this, add a file system private parameter to the newfs
method (which will obviously not be used by vfs tests).

njoly ok
 1.16 28-Jul-2010  pooka Move nfstestargs to header "because I need them". A more sweeping
action would be good here.
 1.15 28-Jul-2010  pooka Add FSTEST_CONSTRUCTOR/FSTEST_DESTRUCTOR which create/mount the
file system with default params. Make ATF_FS_APPLY use the
constructor (can't use the destructor due to the (useless) cleanup).
 1.14 26-Jul-2010  pooka Add NFS to the list of file systems exercised by the "vfs" tests.

How it works:
NFS tests fork and exec the nfs service from fs/nfs/nfsservice.
The child then:
a) creates a FFS file system
b) mounts it
c) starts rpcbind
d) starts mountd
e) starts nfsd
f) handles requests

The client, as expected, does the standard RPC regotiation and
calls mount(MOUNT_NFS). It then proceeds to execute the test.

An individual test which executes everything described above and
does a few file operations on the NFS mount takes 0.16s wall time
on my laptop from start to finish. This means it is feasible to
run hundreds of tests while still getting results in a timely
fashion.

Like in other networked tests, the two processes are connected via
the rump shmif which uses mmapped files as ethernet busses. The
entire test suite can be executed by an unprivileged account.

As a side effect, these tests exercise also the kernel NFS server
in addition to the kernel NFS client.

While everything is currently targetted at executing the vfs tests,
there is no reason this could not be extended to exercise features
specific to NFS. For example, the server can run through all
exportable file system types, permissions can be tested, etc.
 1.13 20-Jul-2010  njoly Update ATF_TC_FSADD macro use ATF cleanup function. And call
xx_fstest_delfs() from here instead of test body.
 1.12 19-Jul-2010  pooka * namespace some macros under FSTEST
* inline atf_check_tc() since this is a header
 1.11 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.10 13-Jul-2010  pooka Run puffs/dtfs as part of the vfs tests.
 1.9 13-Jul-2010  njoly Add testcase data argument to all fstest helper functions.
Needed by pooka for puffs fstest support.
 1.8 13-Jul-2010  pooka Make the FSTYPE macros take tc instead of derivative type "type".

ok njoly
 1.7 12-Jul-2010  njoly Update filesystem helper functions namespace (from XXX_mount to
XXX_fstest_mount) to avoid conflicts with existing functions such as
puffs_mount.
 1.6 12-Jul-2010  njoly Pass down the test case data to the test function, to be able to use
meta-data informations such as srcdir. Requested by pooka.

While here remove fstype argument, and define it as a custom meta-data
(X-fs.type) instead.
 1.5 09-Jul-2010  njoly Get rid of home made filesystem type strings and use MOUNT_xxx ones
instead. While here provide some macros which do test for a specific
type.
 1.4 09-Jul-2010  njoly Pass down the filesystem type to the test funtion to allow fs-specific
callpoints.

Adjust t_rmdirrace by moving LFS test specific code from common/lfs.c,
and do skip sysvbfs which does not support rmdir(2).

from pooka.
 1.3 08-Jul-2010  pooka Add LFS to vfs test list. TODO: start cleanerd too.

It fails in a number of different ways. Some of them seem to appear
as a function of the file system size (i'm not sure if it's because
the lack of the cleaner or not. i'm guessing ``no'', though).

ok njoly
 1.2 05-Jul-2010  njoly Fix more copyrights, where i forgot to add my name.
 1.1 30-Jun-2010  njoly Add helper code and macros to ease writing filesystem tests with rump.
Support currently limited to ext2fs, ffs, msdos, sysvbfs and tmpfs.
 1.35.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.35.2.1 30-Oct-2012  yamt sync with head
 1.36.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.36.2.1 23-Jun-2013  tls resync from head
 1.40.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.41.12.1 25-Jun-2018  pgoyette Sync with HEAD
 1.42.2.1 08-Apr-2020  martin Merge changes from current as of 20200406
 1.44.8.2 15-Aug-2025  perseant Update to match the change just committed to HEAD.
 1.44.8.1 12-Aug-2024  perseant Rewrite ZFS test macros into a more scalable form; add a parallel set of
macros for exFATfs.
 1.8 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.7 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.6 13-Jul-2010  njoly Add testcase data argument to all fstest helper functions.
Needed by pooka for puffs fstest support.
 1.5 12-Jul-2010  njoly Update filesystem helper functions namespace (from XXX_mount to
XXX_fstest_mount) to avoid conflicts with existing functions such as
puffs_mount.
 1.4 11-Jul-2010  pooka Remove the lfs race condition hack now that it's properly in the
test instead of the fs-specific part.
 1.3 09-Jul-2010  njoly Pass down the filesystem type to the test funtion to allow fs-specific
callpoints.

Adjust t_rmdirrace by moving LFS test specific code from common/lfs.c,
and do skip sysvbfs which does not support rmdir(2).

from pooka.
 1.2 08-Jul-2010  pooka fill in PR number now that we have one
 1.1 08-Jul-2010  pooka Add LFS to vfs test list. TODO: start cleanerd too.

It fails in a number of different ways. Some of them seem to appear
as a function of the file system size (i'm not sure if it's because
the lack of the cleaner or not. i'm guessing ``no'', though).

ok njoly
 1.6 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.4 13-Jul-2010  njoly Add testcase data argument to all fstest helper functions.
Needed by pooka for puffs fstest support.
 1.3 12-Jul-2010  njoly Update filesystem helper functions namespace (from XXX_mount to
XXX_fstest_mount) to avoid conflicts with existing functions such as
puffs_mount.
 1.2 05-Jul-2010  njoly Fix more copyrights, where i forgot to add my name.
 1.1 30-Jun-2010  njoly Add helper code and macros to ease writing filesystem tests with rump.
Support currently limited to ext2fs, ffs, msdos, sysvbfs and tmpfs.
 1.3 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.2 28-Jul-2010  pooka Move nfstestargs to header "because I need them". A more sweeping
action would be good here.
 1.1 26-Jul-2010  pooka Add NFS to the list of file systems exercised by the "vfs" tests.

How it works:
NFS tests fork and exec the nfs service from fs/nfs/nfsservice.
The child then:
a) creates a FFS file system
b) mounts it
c) starts rpcbind
d) starts mountd
e) starts nfsd
f) handles requests

The client, as expected, does the standard RPC regotiation and
calls mount(MOUNT_NFS). It then proceeds to execute the test.

An individual test which executes everything described above and
does a few file operations on the NFS mount takes 0.16s wall time
on my laptop from start to finish. This means it is feasible to
run hundreds of tests while still getting results in a timely
fashion.

Like in other networked tests, the two processes are connected via
the rump shmif which uses mmapped files as ethernet busses. The
entire test suite can be executed by an unprivileged account.

As a side effect, these tests exercise also the kernel NFS server
in addition to the kernel NFS client.

While everything is currently targetted at executing the vfs tests,
there is no reason this could not be extended to exercise features
specific to NFS. For example, the server can run through all
exportable file system types, permissions can be tested, etc.
 1.5 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.4 26-Jul-2010  pooka catch "child died"
 1.3 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.2 13-Jul-2010  pooka off_t -> uint64_t to hopefully avoid some lp64 signedness whines.
 1.1 13-Jul-2010  pooka Run puffs/dtfs as part of the vfs tests.
 1.8 09-Jul-2019  maya return return atf_no_error() instead of 0 for consistency.

suggested by moritzbuhl in https://github.com/NetBSD/src/pull/11/
 1.7 06-Feb-2013  hannken branches: 1.7.30;
Test taking a snapshot from a stressed file system.
Checks snapshot meta data only with fsck.

OK: Antti Kantee <pooka@netbsd.org>
 1.6 12-Feb-2011  bouyer branches: 1.6.4; 1.6.10;
Test the right fd after rump_sys_open().
 1.5 07-Nov-2010  jmmv branches: 1.5.2;
Adjusts tests after import of atf-0.12:

- The use.fs property is gone.
- Mark the tests/fs/t_create:attrs test as broken when using the default
unprivileged-user:_atf setting. This probably deserves a fix somehow
but I'm not sure at this point.
 1.4 04-Jun-2010  jmmv atf-0.9 introduces an use.fs test-case property to allow tests to write to
their work directory. The purpose is to be able to know which tests intend
to touch the file system and to allow a minor optimization in atf-run.

Define use.fs=true for all those tests requiring it. (This highlights that
some tests currently require modifying the file system but conceptually
they shouldn't be... which leaves room for further improvements/cleanups
later :-)
 1.3 31-May-2010  pooka Now that atf gdb/coredump conflicts have been solved (thanks jmmv!),
remove USE_ATF ifdefs.
 1.2 16-Apr-2010  pooka Add the typical #ifdef USE_ATF stuff so I can debug the test if it
goes wrong.
 1.1 13-Apr-2010  pooka Split snapshot test into fs-independent backend and fs-specific frontend.

I really wish all our fs tests were like this (in principle, that
is. I'm not talking about this hacky implementation). I've been
wishing this for quite a few years now. Seems like my wishes don't
come true.
 1.5.2.1 17-Feb-2011  bouyer Sync with HEAD
 1.6.10.1 25-Feb-2013  tls resync with head
 1.6.4.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.30.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.6 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.4 13-Jul-2010  njoly Add testcase data argument to all fstest helper functions.
Needed by pooka for puffs fstest support.
 1.3 12-Jul-2010  njoly Update filesystem helper functions namespace (from XXX_mount to
XXX_fstest_mount) to avoid conflicts with existing functions such as
puffs_mount.
 1.2 05-Jul-2010  njoly Fix more copyrights, where i forgot to add my name.
 1.1 30-Jun-2010  njoly Add helper code and macros to ease writing filesystem tests with rump.
Support currently limited to ext2fs, ffs, msdos, sysvbfs and tmpfs.
 1.6 29-Jul-2010  pooka Rename xfs.c to fstest_xfs.c to avoid collisions with other
source files with the name xfs.c

ok njoly
 1.5 19-Jul-2010  pooka Convert the file system test common routines into a library to
facilitate more complex user-side stuff (like the lfs cleaner and
nfs rpc code), which are non-trivial to do by #include.
 1.4 13-Jul-2010  njoly Add testcase data argument to all fstest helper functions.
Needed by pooka for puffs fstest support.
 1.3 12-Jul-2010  njoly Update filesystem helper functions namespace (from XXX_mount to
XXX_fstest_mount) to avoid conflicts with existing functions such as
puffs_mount.
 1.2 05-Jul-2010  njoly Fix more copyrights, where i forgot to add my name.
 1.1 30-Jun-2010  njoly Add helper code and macros to ease writing filesystem tests with rump.
Support currently limited to ext2fs, ffs, msdos, sysvbfs and tmpfs.

RSS XML Feed