nfstest_posix - Man Page

POSIX file system level access tests

Synopsis

nfstest_posix --server <server> [options]

Description

Verify POSIX file system level access over the specified path using positive and negative testing.

Valid for any version of NFS.

Options

--version

show program's version number and exit

-h, ā€‰--help

show this help message and exit

-f FILE, --file=FILE

File where options are specified besides the system wide file /etc/nfstest, user wide file $HOME/.nfstest or in the current directory .nfstest file

NFS specific options

-s SERVER, --server=SERVER

Server name or IP address

-e EXPORT, --export=EXPORT

Exported file system to mount [default: '/']

--nfsversion=NFSVERSION

NFS version, e.g., 3, 4, 4.1, etc. [default: 4.1]

-m MTPOINT, --mtpoint=MTPOINT

Mount point [default: '/mnt/t']

-p PORT, --port=PORT

NFS server port [default: 2049]

--proto=PROTO

NFS protocol name [default: 'tcp']

--sec=SEC

Security flavor [default: 'sys']

--nconnect=NCONNECT

Multiple TCP connections option [default: '1']

-o MTOPTS, --mtopts=MTOPTS

Mount options [default: 'hard,rsize=4096,wsize=4096']

--datadir=DATADIR

Data directory where files are created, directory is created on the mount point [default: '']

Logging options

-v VERBOSE, --verbose=VERBOSE

Verbose level for debug messages [default: 'opts|info|dbg1|dbg2|dbg3']

--tverbose=TVERBOSE

Verbose level for test messages [default: '1']

--createlog

Create log file

--rexeclog

Create rexec log files

--warnings

Display warnings

--tag=TAG

Informational tag, it is displayed as an INFO message [default: '']

--notty

Do not use terminal colors on output

--isatty

Use terminal colors on output -- useful when running with nohup

Packet trace options

--createtraces

Create a packet trace for each test

--tbsize=TBSIZE

Capture buffer size for tcpdump [default: 192k]

--trcdelay=TRCDELAY

Seconds to delay before stopping packet trace [default: 2.0]

--keeptraces

Do not remove any trace files [default: remove trace files if no errors]

--rmtraces

Remove trace files [default: remove trace files if no errors]

-i INTERFACE, --interface=INTERFACE

Device interface [default: automatically selected]

File options

--nfiles=NFILES

Number of files to create [default: 2]

--filesize=FILESIZE

File size to use for test files [default: 64k]

--rsize=RSIZE

Read size to use when reading files [default: 4k]

--wsize=WSIZE

Write size to use when writing files [default: 4k]

--iodelay=IODELAY

Seconds to delay I/O operations [default: 0.1]

--offset-delta=OFFSET_DELTA

Read/Write offset delta [default: 4k]

Path options

--sudo=SUDO

Full path of binary for sudo [default: '/usr/bin/sudo']

--kill=KILL

Full path of binary for kill [default: '/usr/bin/kill']

--nfsstat=NFSSTAT

Full path of binary for nfsstat [default: '/usr/sbin/nfsstat']

--tcpdump=TCPDUMP

Full path of binary for tcpdump [default: '/usr/sbin/tcpdump']

--iptables=IPTABLES

Full path of binary for iptables [default: '/usr/sbin/iptables']

--messages=MESSAGES

Full path of log messages file [default: '/var/log/messages']

--trcevents=TRCEVENTS

Full path of tracing events directory [default: '/sys/kernel/debug/tracing/events']

--trcpipe=TRCPIPE

Full path of trace pipe file [default: '/sys/kernel/debug/tracing/trace_pipe']

--tmpdir=TMPDIR

Temporary directory [default: '/tmp']

Debug options

--nocleanup

Do not cleanup created files

--notimestamps

Do not display timestamps in debug messages

--bugmsgs=BUGMSGS

File containing test messages to mark as bugs if they failed

--nomount

Do not mount server and run the tests on local disk space

--basename=BASENAME

Base name for all files and logs [default: automatically generated]

--nfsdebug=NFSDEBUG

Set NFS kernel debug flags and save log messages [default: '']

--rpcdebug=RPCDEBUG

Set RPC kernel debug flags and save log messages [default: '']

--tracepoints=TRACEPOINTS

List of trace points modules to enable [default: '']

--nfsstats

Get NFS stats [default: 'False']

--pktdisp

Display main packets related to the given test

--nfserrors

Fail every NFS error found in the packet trace

--client-ipaddr=CLIENT_IPADDR

IP address of localhost

Reporting options

--xunit-report

Generate xUnit compatible test report

--xunit-report-file=XUNIT_REPORT_FILE

Path to xout report file

Test options

--runtest=RUNTEST

Comma separated list of tests to run, if list starts with a '^' then all tests are run except the ones listed [default: 'all']

Tests

access

Verify POSIX API access() on files with different modes.

chdir

Verify POSIX API chdir() by changing to a newly created directory
and then by changing back to the original directory.

close

Verify POSIX API close() works and that writing to a closed file
descriptor returns an error.

closedir

Verify POSIX API closedir() works

creat

Verify POSIX API creat(path, mode) is equivalent to
open(path, O_WRONLY|O_CREAT|O_TRUNC, mode). First test with a path
that does not exist to verify the file was created and then test
with a path that does exist to verify that the file is truncated.

fcntl

Verify the POSIX API fcntl() commands F_DUPFD, F_GETFD, F_SETFD,
F_GETFL, F_SETFL, and FD_CLOEXEC. The F_DUPFD command is tested
by performing operations on the original and dupped file descriptor
to ensure they behave correctly. The F_GETFD and F_SETFD commands
are tested by setting the FD_CLOEXEC flag and making sure it gets set.
The F_GETFL and F_SETFL commands are tested by setting the O_APPEND
flag and making sure it gets set.
Run the test for both 'read' and 'write'.

fdatasync

Verify POSIX API fdatasync().

fstat

Verify POSIX API fstat() by checking the mode on a file and that
it returns the expected structure members. Create a symlink and
verify that fstat returns information about the link.

fstatvfs

Verify POSIX API fstatvfs() by making sure all the members of the
structure are returned.

fsync

Verify POSIX API fsync().

lseek

Verify POSIX API lseek() with different offsets and whence
values including seeking past the end of the file.

lstat

Verify POSIX API lstat() by checking the mode on a file and that
it returns the expected structure members. Create a symlink and
verify that lstat returns information about the link.

mkdir

Verify POSIX API mkdir(). Verify that mkdir with a path of a symbolic
link fails. Verify that the st_ctime and st_mtime fields of the
parent directory are updated.

mmap

Verify POSIX API mmap() by mapping a file and verifying I/O
operations. Verify mmap followed by memory read of existing
file works. Verify mmap followed by memory write to file works.

munmap

Verify POSIX API munmap() by mapping a file and then unmapping
the file.

opendir

Verify POSIX API opendir() on a directory.

read

Verify POSIX API read() by reading data from a file. Verify that
the st_atime of the file is updated after the read. Verify a read
of 0 bytes returns 0.

readdir

Verify POSIX API readdir() on a directory.

rename

Verify POSIX API rename() by renaming a file, directory, and a
symbolic link. Verify that a rename from a file to a symbolic
link will cause the symbolic link to be removed.

rewinddir

Verify POSIX API rewinddir() on a directory.

rmdir

Verify POSIX API rmdir() by removing a directory. Verify that the
parent's st_ctime and st_mtime are updated.

seekdir

Verify POSIX API seekdir() on a directory.

stat

Verify POSIX API stat() by checking the mode on a file and that
it returns the expected structure members. Create a symlink and
verify that stat returns information about the file.

statvfs

Verify POSIX API statvfs() by making sure all the members of the
structure are returned.

sync

Verify POSIX API sync().

telldir

Verify POSIX API telldir() on a directory.

write

Verify POSIX API write() by writing 0 bytes and verifying 0
is returned. Write a pattern the file, seek +N, write another
pattern, and close the file. Open the file and read in both
written patterns and verify that it is the correct pattern.
Read in the data from the hole in the file and verify that it is 0.

open

Verify POSIX API open() on a file. Verify file creation using
the O_CREAT flag and verifying the file mode is set to the
specified value. Verify the st_ctime and st_mtime are updated
on the parent directory after the file was created. Verify open
on existing file fails with the O_EXCL flag set. Verify write
succeeds and read fails if file was open with O_WRONLY. Verify
read succeeds and write fails if file was open with O_RDONLY.
Verify that all writes with O_APPEND set are to the end of the file.
Use O_DSYNC, O_RSYNC, and O_SYNC flags in open calls.
Verify file open with O_CREAT and O_TRUNC set will truncate an
existing file. Verify that it updates the file st_ctime and st_mtime.

chmod

Verify POSIX API chmod() on a file and directory by trying all valid
combinations of modes. Verify that the st_ctime files is updated
for both the file and directory.

all

Run all tests: access, chdir, close, closedir, creat, fcntl, fdatasync,
fstat, fstatvfs, fsync, link, lseek, lstat, mkdir, mmap, munmap,
opendir, read, readdir, readlink, rename, rewinddir, rmdir, seekdir,
stat, statvfs, symlink, sync, telldir, unlink, write, open, chmod

Examples

The only required option is --server
$ nfstest_posix --server 192.168.0.11

Notes

The user id in the local host must have access to run commands as root using the 'sudo' command without the need for a password.

See Also

nfstest.test_util(3), nfstest_alloc(1), nfstest_cache(1), nfstest_delegation(1), nfstest_dio(1), nfstest_fcmp(1), nfstest_file(1), nfstest_interop(1), nfstest_io(1), nfstest_lock(1), nfstest_pkt(1), nfstest_pnfs(1), nfstest_rdma(1), nfstest_sparse(1), nfstest_ssc(1), nfstest_xattr(1), nfstest_xid(1), packet.nfs.nfs3_const(3), packet.nfs.nfs4_const(3)

Bugs

No known bugs.

Author

Jorge Mora (mora@netapp.com)

Referenced By

nfstest(1), nfstest_alloc(1), nfstest_cache(1), nfstest_delegation(1), nfstest_dio(1), nfstest_fcmp(1), nfstest_file(1), nfstest_interop(1), nfstest_io(1), nfstest_lock(1), nfstest_pkt(1), nfstest_pnfs(1), nfstest_rdma(1), nfstest_sparse(1), nfstest_ssc(1), nfstest_xattr(1), nfstest_xid(1).

21 March 2023 NFStest 3.2 nfstest_posix 1.2