| #!/bin/sh |
| |
| . ../support/simple_eval_tools.sh |
| |
| HEADER com2secunix directive |
| |
| SKIPIFNOT NETSNMP_TRANSPORT_UNIX_DOMAIN |
| SKIPIF NETSNMP_NO_DEBUGGING |
| SKIPIFNOT SIZEOF_SOCKADDR_UN_SUN_PATH |
| |
| # |
| # Prepare test |
| # |
| if [ `uname -s` = SunOS ] |
| then AWK=nawk |
| else AWK=awk |
| fi |
| |
| sun_path_sized=`$AWK '/^#define SIZEOF_SOCKADDR_UN_SUN_PATH/ { res = "a"; for(n = 2; n < $3; ++n) { res = res substr("1234567890", n % 10 + 1, 1); } print res; }' $SNMP_UPDIR/include/net-snmp/net-snmp-config.h` |
| |
| # |
| # Begin test |
| # |
| |
| # u01a Test missing CONTEXT |
| CONFIGAGENT 'com2secunix -Cn' |
| # u01a Test empty CONTEXT |
| CONFIGAGENT 'com2secunix -Cn ""' |
| # u01c Test overlong CONTEXT (34 chars) |
| CONFIGAGENT 'com2secunix -Cn 1234567890123456789012345678901234' |
| |
| # u02a Test missing secName |
| CONFIGAGENT 'com2secunix' |
| # u02b Test empty secName |
| CONFIGAGENT 'com2secunix ""' |
| # u02c Test overlong secName (34 chars) |
| CONFIGAGENT 'com2secunix 1234567890123456789012345678901234' |
| # u02d Test valid context and missing secName |
| CONFIGAGENT 'com2secunix -Cn 123456789012345678901234567890123' |
| # u02e Test valid context and empty secName |
| CONFIGAGENT 'com2secunix -Cn 123456789012345678901234567890123 ""' |
| |
| # u03a Test missing sockpath |
| CONFIGAGENT 'com2secunix tu03a' |
| # u03b Test empty sockpath |
| CONFIGAGENT 'com2secunix tu03b ""' |
| # u03c Test overlong sockpath (sizeof(sockaddr_un.sun_path) chars) |
| CONFIGAGENT "com2secunix tu03c ${sun_path_sized}x" |
| # u03d Test valid sockpath (sizeof(sockaddr_un.sun_path) - 1 chars) |
| CONFIGAGENT "com2secunix tu03d ${sun_path_sized}" |
| |
| # u04a Test missing community |
| CONFIGAGENT 'com2secunix tu04a default' |
| # u04b Test empty community |
| CONFIGAGENT 'com2secunix tu04b default ""' |
| # u04c Test forbidden value (now why it is forbidden...) |
| CONFIGAGENT 'com2secunix tu04c default COMMUNITY' |
| # u04d Test overlong community (255 chars) |
| CONFIGAGENT 'com2secunix tu04d default 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345' |
| # u04e Test valid community |
| CONFIGAGENT 'com2secunix tu04e default 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234' |
| |
| # u05a Test 'default' configuration |
| CONFIGAGENT 'com2secunix tu05a default cu05a' |
| |
| # u07a Test non existant sockpath |
| CONFIGAGENT 'com2secunix tu07a /dev/null/no/such cu07a' |
| |
| # Default agent setup |
| CONFIGAGENT "[snmp] persistentdir $SNMP_TMP_PERSISTENTDIR" |
| # Dummy config to prevent the basic_setup warning |
| CONFIGAGENT 'rocommunity public 127.0.0.0/8' |
| |
| AGENT_FLAGS='-Dnetsnmp_udp_parse_security,netsnmp_udp6_parse_security,netsnmp_unix_parse_security' |
| |
| STARTAGENT |
| |
| SAVECHECKAGENT() { |
| CHECKAGENT "$@" |
| if [ "x$return_value" != "x0" ] ; then |
| FINISHED |
| fi |
| } |
| |
| # u01 |
| SAVECHECKAGENT 'line 1: Error: missing CONTEXT_NAME parameter' |
| SAVECHECKAGENT 'line 2: Error: missing NAME parameter' |
| SAVECHECKAGENT 'line 3: Error: context name too long' |
| # u02 |
| CHECKAGENTCOUNT atleastone 'line 4: Error: Blank line following com2secunix token.' |
| SAVECHECKAGENT 'line 5: Error: empty NAME parameter' |
| SAVECHECKAGENT 'line 6: Error: security name too long' |
| SAVECHECKAGENT 'line 7: Error: missing NAME parameter' |
| SAVECHECKAGENT 'line 8: Error: empty NAME parameter' |
| # u03 |
| SAVECHECKAGENT 'line 9: Error: missing SOCKPATH parameter' |
| SAVECHECKAGENT 'line 10: Error: empty SOCKPATH parameter' |
| SAVECHECKAGENT 'line 11: Error: sockpath too long' |
| SAVECHECKAGENT 'line 12: Error: missing COMMUNITY parameter' |
| # u04 |
| SAVECHECKAGENT 'line 13: Error: missing COMMUNITY parameter' |
| SAVECHECKAGENT 'line 14: Error: empty COMMUNITY parameter' |
| SAVECHECKAGENT 'line 15: Error: example config COMMUNITY not properly configured' |
| SAVECHECKAGENT 'line 16: Error: community name too long' |
| SAVECHECKAGENT '<"12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234", ""> => "tu04e"' |
| # u05 |
| SAVECHECKAGENT '<"cu05a", ""> => "tu05a"' |
| # u07 |
| SAVECHECKAGENT '<"cu07a", "/dev/null/no/such"> => "tu07a"' |
| |
| FINISHED |