Provided by: nfstest_3.2-2_all bug

NAME

       nfstest_posix - 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().

   link
       Verify POSIX API link(src, dst) creates a link and updates
       st_ctime field for the file. Verify that link updates the
       st_ctime and st_mtime for the directory. Verify st_link count
       incremented by 1 for the file.

   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.

   readlink
       Verify Test POSIX API readlink() by reading a symbolic link.

   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.

   symlink
       Verify POSIX API symlink() by creating a symbolic link and verify
       that the file type is slnk.

   sync
       Verify POSIX API sync().

   telldir
       Verify POSIX API telldir() on a directory.

   unlink
       Verify POSIX API unlink() by unlinking a file and verify that it
       was removed. Verify that the st_ctime and st_mtime fields of the
       parent directory were updated. Then unlink a symbolic link and
       verify that the symbolic link was removed but not the referenced
       file. Then remove an opened file and verify that I/O still occurs
       to the file after the unlink and that the file gets removed when
       the file is closed. Create a file and then hard link to it so the
       link count is greater than 1. Unlink the hard file and verify that
       st_ctime field is updated.

   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)