nfstest.test_util (3) - Linux Manuals
nfstest.test_util: Test utilities module
NAME
nfstest.test_util - Test utilities moduleDESCRIPTION
Provides a set of tools for testing either the NFS client or the NFS server, most of the functionality is focused mainly on testing the client. These tools include the following:
In order to use some of the functionality available, the user id in all the
client hosts must have access to run commands as root using the 'sudo' command
without the need for a password, this includes the host where the test is being
executed. This is used to run commands like 'mount' and 'umount'. Furthermore,
the user id must be able to ssh to remote hosts without the need for a password
if test requires the use of multiple clients.
Network partition is simulated by the use of 'iptables', please be advised
that after every test run the iptables is flushed and reset so any rules
previously setup will be lost. Currently, there is no mechanism to restore
the iptables rules to their original state.
CLASSES
class TestUtil(nfstest.nfs_util.NFSUtil)
TestUtil object
TestUtil() -> New server object
Usage:
x = TestUtil()
# Process command line options
x.scan_options()
# Start packet trace using tcpdump
x.trace_start()
# Mount volume
x.mount()
# Create file
x.create_file()
# Unmount volume
x.umount()
# Stop packet trace
x.trace_stop()
# Exit script
x.exit()
Methods defined here:
---------------------
__del__(self)
Destructor
Gracefully stop the packet trace, cleanup files, unmount volume,
and reset network.
__init__(self, **kwargs)
Constructor
Initialize object's private data.
abspath(self, filename, dir=None)
Return the absolute path for the given file name.
cleanup(self)
Clean up test environment.
Remove any files created: test files, trace files.
close_files(self)
Close all files opened by open_files().
config(self, msg)
Display config message and terminate test with an exit value of 2.
create_dir(self, dir=None, mode=493)
Create a directory under the given directory with the given mode.
create_file(self, offset=0, size=None, dir=None, mode=None, **kwds)
Create a file starting to write at given offset with total size
of written data given by the size option.
data_pattern(self, offset, size, pattern=None)
Return data pattern.
delay_io(self, delay=None)
Delay I/O by value given or the value given in --iodelay option.
exit(self)
Terminate script with an exit value of 0 when all tests passed
and a value of 1 when there is at least one test failure.
get_dirname(self, dir=None)
Return a unique directory name under the given directory.
get_filename(self, dir=None)
Return a unique file name under the given directory.
get_logname(self)
Get next log file name.
get_name(self)
Get unique name for this instance.
lock_files(self, lock_type=None, offset=0, length=0)
Lock all files opened by open_files().
open_files(self, mode, create=True)
Open files according to given mode, the file descriptors are saved
internally to be used with write_files(), read_files() and
close_files(). The number of files to open is controlled by
the command line option '--nfiles'.
The mode could be either 'r' or 'w' for opening files for reading
or writing respectively. The open flags for mode 'r' is O_RDONLY
while for mode 'w' is O_WRONLY|O_CREAT|O_SYNC. The O_SYNC is used
to avoid the client buffering the written data.
read_files(self)
Read a block of data (size given by --rsize) from all files opened
by open_files() for reading.
run_tests(self, **kwargs)
Run all test specified by the --runtest option.
scan_options(self)
Process command line options.
Process all the options in the file given by '--file', then the
ones in the command line. This allows for command line options
to over write options given in the file.
Format of options file:
# For options expecting a value
<option_name> = <value>
# For boolean (flag) options
<option_name>
Process options files and make sure not to process the same file
twice, this is used for the case where HOMECFG and CWDCFG are the
same, more specifically when environment variable HOME is not
defined. Also, the precedence order is defined as follows:
1. options given in command line
2. options given in file specified by the -f|--file option
3. options given in file specified by ./.nfstest
4. options given in file specified by $HOME/.nfstest
5. options given in file specified by /etc/nfstest
NOTE:
Must use the long name of the option (--<option_name>) in the file.
setup(self, nfiles=None)
Set up test environment.
Create nfiles number of files [default: --nfiles option]
test(self, expr, msg, subtest=None, failmsg=None, terminate=False)
Test expr and display message as PASS/FAIL, terminate execution
if terminate option is True.
test_group(self, msg)
Display heading message and start a test group.
If tverbose=group or level 0:
Group message is displayed as a PASS/FAIL message including the
number of tests that passed and failed within this test group.
If tverbose=normal|verbose or level 1|2:
Group message is displayed as a heading messages for the tests
belonging to this test group.
test_info(self, msg)
Display info message.
test_options(self, name=None)
Get options for the given test name. If the test name is not given
it is determined by inspecting the stack to find which method is
calling this method.
testid_count(self, tid)
Return the number of instances the testid has occurred.
warning(self, msg)
Display warning message.
write_data(self, fd, offset=0, size=None, pattern=None)
Write data to the file given by the file descriptor
write_files(self)
Write a block of data (size given by --wsize) to all files opened
by open_files() for writing.
Static methods defined here:
----------------------------
get_list(value, hash, type=<type 'str'>)
Return a list of elements from the comma separated string.
Validate and translate these elements using the input dictionary
'hash' where every element in the string is the key of 'hash'
and its value is appended to the returned list.
str_list(value, type=<type 'str'>, sep=',')
Return a list of <type> elements from the comma separated string.
BUGS
No known bugs.
AUTHOR
Jorge Mora (mora [at] netapp.com)