Pynfs is a project mainly written in ..., it's free.
A fork of pynfs (v4)
To use directly from the package root directory, you must first create the auto-generated files and compile any shared libraries inplace via './setup.py build_ext --inplace'.
Then you can run the tests via: ./testserver.py SERVER:/PATH [options] [flags] [testcode]
Useful options are: all : run all standard tests (defaults to running none) --rundeps : run dependencies even if not specifically requested on command line --maketree : will (re)create the test tree. Ie it will create and populate the directories /PATH/tmp and /PATH/tree -o, --outfile : will save results into given file. results can then be examined using ./showresults.py FILE --showflags : will show a list of available flags -v : show test status as they are being run, instead of summary at end
Usage: Each test has a unique code. It will also belong to one or more groups which are indicated by flags. Codes and flags can be put on the command line as is, or preceded by 'no'. After options and the SERVER:/PATH argument are removed, each test is compared to the remaining args left to right. Its status starts as DONTRUN, then is modified in turn by each argument code or flag that it matches
example1: ./testserver.py tiffin:/pynfstest --maketree link noblock getattr BLOCK1
This will (re)create the test tree, then run:
example2: ./testserver.py tiffin:/pynfstest --rundep link getattr noblock
This will use the previously created test tree, and run:
example3: ./testserver.py tiffin:/pynfstest --force all noblock getattr
This will use the previously created test tree, and run:
The test suite will first check that the tmp directory is empty, and if not, try to clean it up. This can be skipped by using --noinit.
Then 2 null calls are sent.
Then each test is run, each separated by a null call.
Finally, 2 null calls are sent, and the it tries to clean tmp. This step can be skipped using --nocleanup.
Problems:
Get a warning message along the lines of: RuntimeWarning: Python C API version mismatch for module gssapi: This Python has API version 1012, module gssapi has version 1011.
This imples the file lib/rpc/rpcsec/gssapi.so was compiled with header files from a different version of python than is curently being run. Delete gssapi.so and try `python2.3 setup.py build_ext --inplace' (or whatever version (>=2.3) that you use).
If this gives an error similar to: error: invalid Python installation: unable to open /usr/lib/python2.3/config/Makefile (No such file or directory) and you installed from python-.rpm, you need to also install python-devel-.rpm.