NFSTEST_POSIX(1) nfstest_posix 1.0.2 NFSTEST_POSIX(1)
nfstest_posix - POSIX file system level access tests
nfstest_posix --server <server> [options]
Verify POSIX file system level access over the specified path using positive and negative
Valid for any version of NFS.
show program's version number and exit
show this help message and exit
-f FILE, --file=FILE
-s SERVER, --server=SERVER
Server name or IP address
-p PORT, --port=PORT
NFS server port [default: 2049]
NFS version [default: 4]
Minor version [default: 1]
-e EXPORT, --export=EXPORT
Exported file system to mount [default: '/']
-m MTPOINT, --mtpoint=MTPOINT
Mount point [default: '/mnt/t']
Data directory where files are created [default: '']
-o MTOPTS, --mtopts=MTOPTS
Mount options [default: 'hard,rsize=4096,wsize=4096']
-i INTERFACE, --interface=INTERFACE
Device interface [default: 'eth0']
-v VERBOSE, --verbose=VERBOSE
Verbose level [default: 'none']
Do not cleanup
Remove trace files [default: remove trace files if no errors]
Do not remove any trace files [default: remove trace files if no errors]
Create log file
File containing test messages to mark as bugs if they failed
Ignore all bugs given by bugmsgs
Do not mount server
Base name for all files and logs [default: automatically generated]
Verbose level for test messages [default: '1']
File size to use for test files [default: 65536]
Number of files to create [default: 2]
Read size to use when reading files [default: 4096]
Write size to use when writing files [default: 4096]
Seconds to delay I/O operations [default: 0.1]
Read/Write offset delta [default: 4096]
Set NFS kernel debug flags and save log messages [default: '']
Set RPC kernel debug flags and save log messages [default: '']
Full path of binary for sudo [default: '/usr/bin/sudo']
Full path of binary for tcpdump [default: '/usr/sbin/tcpdump']
Full path of binary for iptables [default: '/sbin/iptables']
Full path of log messages file [default: '/var/log/messages']
Temporary directory [default: '/tmp']
Comma separated list of tests to run [default: 'all']
Verify POSIX API access() on files with different modes.
Verify POSIX API chdir() by changing to a newly created directory and then by changing
back to the original directory.
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.
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'.
Verify POSIX API fdatasync().
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
Verify POSIX API fstatvfs() by making sure all the members of the structure are returned.
Verify POSIX API fsync().
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.
Verify POSIX API lseek() with different offsets and whence values including seeking past
the end of the file.
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
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.
Verify POSIX API opendir() on a directory.
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.
Verify POSIX API readdir() on a directory.
Verify Test POSIX API readlink() by reading a symbolic link.
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.
Verify POSIX API rewinddir() on a directory.
Verify POSIX API rmdir() by removing a directory. Verify that the parent's st_ctime and
st_mtime are updated.
Verify POSIX API seekdir() on a directory.
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
Verify POSIX API statvfs() by making sure all the members of the structure are returned.
Verify POSIX API symlink() by creating a symbolic link and verify that the file type is
Verify POSIX API sync().
Verify POSIX API telldir() on a directory.
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 sym-
bolic link and verify that the symbolic link was removed but not the referenced file. Then
remove an open 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
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.
Verify POSIX API open() on a file. Verify file creation using the O_CREAT flag and verify-
ing 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.
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.
Verify POSIX API closedir() works and that reading to a closed file descriptor returns an
Verify POSIX API close() works and that writing to a closed file descriptor returns an
The only required option is --server
$ nfstest_posix --server 192.168.0.11
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.
nfstest.test_util(1), nfstest_cache(1), nfstest_delegation(1), nfstest_dio(1),
No known bugs.
Jorge Mora (email@example.com)
NFStest 1.0.2 10 April 2013 NFSTEST_POSIX(1)