title: NPTest parent: FAQ --- # How do the NPTest parameters work? NPTest.pm is a perl module, originally written by Peter Bray, and provides some basic functions for testing the plugins. It has two main helpers: `getTestParameter` and `testCmd`. ## getTestParameter Used to get parameters given in previous test runs. Use the 3 parameter version (the 4 parameter version is deprecated). Saved parameters are put in `/var/tmp/NPTest.cache`. Unfortunately, there is no easy way of altering this - you will have to manually change this file to edit existing parameters. If you are adding new parameters, there are three values for the parameters that you need to be aware of: * default value * the value that you check against in the test script * an empty string, which is returned by getTestParameter when the test is run via automated testing (technically, when no terminal is associated to the test run) You should try and ensure current tests are not affected when a new parameter is added. So it may be better to say `NP_INTERNET_ACCESS`, with information like *default "yes", disable with "no"* and check for `NP_INTERNET_ACCESS == "no"` to skip the tests. ## testCmd This runs a command and returns an NPTest object back. You can combine Test::More routines with the object to get the return code, output or perf data to test against expected values. See `plugins/t/check_disk.t` as an example test script.