Test Scripts
Hints and tips on working with test scripts.
Contents
Environment variables
fulltests/support/simple_TESTCONF.sh
- SNMP_LIMIT_VMEM N ; shell limit on memory used (bytes)
- SNMP_LIMIT_CPU N ; shell limit on cpu used (seconds)
- SNMP_VERBOSE [0|1]
- SNMP_PREFER_NEAR_MIBS [0|1] ; if set, set MIBDIRS=${srcdir}/mibs
- SNMP_TMPDIR dir ; use dir for output/config (default /tmp/snmp-test-$testnum-$$)
- SNMP_TMP_PERSISTENTDIR dir ; use dir for persistent dir
- SNMP_SAVE_TMPDIR [yes|no] ; save SNMP_TMPDIR even for successful tests (no)
- SNMP_TESTDIR dir ; where to look for tests
- SNMP_CONFIG_FILE path/xxx.conf ; config file to use
- SNMPTRAPD_CONFIG_FILE path/xxx.conf ; config file to use
- SNMPAPP_CONFIG_FILE path/xxx.conf ; config file to use
- SNMP_SNMPD_PID_FILE path/xxx ; pid file for app
- SNMP_SNMPD_LOG_FILE path/xxx ; log file for app
- SNMP_SNMPTRAPD_PID_FILE path/xxx ; pid file for app
- SNMP_SNMPTRAPD_LOG_FILE path/xxx ; log file for app
- SNMP_AGENTX_PID_FILE path/xxx ; pid file for app
- SNMP_AGENTX_LOG_FILE path/xxx ; log file for app
- SNMP_FLAGS flags ; use flags for all snmp commands (-d)
- SNMP_SNMPD_PORT N ; use port N (default: probe for available high port)
- SNMP_SNMPTRAPD_PORT N ; use port N (default: probe for available high port)
- SNMP_AGENTX_PORT N ; use port N (default: probe for available high port)
- SNMP_TRANSPORT_SPEC X ; use transport x (udp)
- SNMP_TEST_DEST addr ; use address (127.0.0.1)
fulltests/support/simple_eval_tools.sh
- OK_TO_SAVE_RESULT [0|1] ; save results (1)
Functions
fulltests/support/simple_eval_tools.sh
HEADER "TEXT"
saves text to $SNMP_TMPDIR/invoked
OUTPUT "TEXT"
output test to console
SUCCESS "TEXT"
output "SUCCESS: TEXT"
FAILED
output "FAILED: TEXT"
SKIP "TEXT"
Calls REMOVETESTDATA, output "1..0 # SKIP TEXT" and exits
ISDEFINED X
checks (using grep) net-snmp-config.h, mib_module_config.h and agent_module_config.h for "^#define X"
SKIPIFNOT X
skips test if X is not defined
SKIPIF
skips test if X is defined
VERIFY X [Y] [Z] ...
checks for files X, Y, and Z and exits if any are missing
NEWOUTPUTFILE
bumps count in junkoutputfile
STARTTEST
creates new junkoutputfile or exits if it already exists
STOPTEST
removes junkoutputfile
REMOVETESTDATA
calls "rm -rf $SNMP_TMPDIR"
CAPTURE COMMAND [ARGS]
runs COMMAND (with optional ARGS) and captures output to file. Will output file contents if SNMP_VERBOSE is greater than 1.
DELAY
calls "sleep $SNMP_SLEEP"
SAVE_RESULTS
saves return_value to real_return_value
EXPECTRESULTS X
checks snmp_last_test_result against X and sets return_value to 0 if the match, and 1 otherwise.
CHECKCOUNT X
calls CHECKFILECOUNT $junkoutputfile X
CHECKVALUEIS A B C
call GOOD C or BAD C, depending on whether or not A = B
CHECKVALUEISNT
inverse of CHECKVALUEIS
CHECKFILECOUNT FILE N PAT
check FILE for N instances of PAT. N can also be noerror or atleastone.
CHECK X
calls CHECKCOUNT 1 X
.. many more ... to be continued