Difference between revisions of "Test Scripts"

From Net-SNMP Wiki
Jump to: navigation, search
(start documenting test script variables)
 
(fulltests/support/simple_TESTCONF.sh)
 
Line 2: Line 2:
  
 
== Environment variables ==
 
== Environment variables ==
== fulltests/support/simple_TESTCONF.sh ==
+
=== fulltests/support/simple_TESTCONF.sh ===
 
* SNMP_LIMIT_VMEM N ; shell limit on memory used (bytes)
 
* SNMP_LIMIT_VMEM N ; shell limit on memory used (bytes)
 
* SNMP_LIMIT_CPU N ; shell limit on cpu used (seconds)
 
* SNMP_LIMIT_CPU N ; shell limit on cpu used (seconds)
Line 26: Line 26:
 
* SNMP_TRANSPORT_SPEC X ; use transport x (udp)
 
* SNMP_TRANSPORT_SPEC X ; use transport x (udp)
 
* SNMP_TEST_DEST addr ; use address (127.0.0.1)
 
* 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

Latest revision as of 04:31, 16 August 2010

Hints and tips on working with test scripts.

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