1# $OpenBSD: Makefile,v 1.5 2023/10/24 14:34:40 martijn Exp $ 2# Regress tests for snmpd 3 4PROG = snmpd_regress 5SRCS = snmpd_regress.c agentx.c backend.c snmp.c 6 7LDADD= -lutil 8DPADD= ${LIBUTIL} 9 10SNMPD ?= /usr/sbin/snmpd 11SNMPD_START = ${SUDO} ${SNMPD} -Nvvdf ${.CURDIR}/snmpd.conf >> snmpd.log 2>&1 & 12 13REGRESS_CLEANUP = cleanup 14REGRESS_SETUP_ONCE = setup 15CLEANFILES = snmpd.log 16 17setup: 18 -${SUDO} /etc/rc.d/snmpd stop 19 > snmpd.log 20 21cleanup: 22 -${SUDO} pkill -f ${SNMPD} 23 @sleep 1 24 -${SUDO} rcctl restart snmpd 25 26REGRESS_TARGETS += run-snmpd 27run-snmpd: 28 -${SUDO} pkill -f ${SNMPD} 29 @sleep 1 30 ${SUDO} env OBJDIR=${.OBJDIR} sh ${.CURDIR}/snmpd.sh 31 32# AgentX administrative commands: application_agentx.c 33AGENTX_TARGETS = agentx_open_nnbo 34AGENTX_TARGETS+= agentx_open_nbo 35AGENTX_TARGETS+= agentx_open_invalidversion 36AGENTX_TARGETS+= agentx_open_ignore_sessionid 37AGENTX_TARGETS+= agentx_open_invalid_oid 38AGENTX_TARGETS+= agentx_open_descr_too_long 39AGENTX_TARGETS+= agentx_open_descr_invalid 40AGENTX_TARGETS+= agentx_open_context 41AGENTX_TARGETS+= agentx_open_instance_registration 42AGENTX_TARGETS+= agentx_open_new_index 43AGENTX_TARGETS+= agentx_open_any_index 44AGENTX_TARGETS+= agentx_ping_notopen 45AGENTX_TARGETS+= agentx_ping_invalid_sessionid 46AGENTX_TARGETS+= agentx_ping_default 47AGENTX_TARGETS+= agentx_ping_context 48AGENTX_TARGETS+= agentx_ping_invalid_version 49AGENTX_TARGETS+= agentx_ping_instance_registration 50AGENTX_TARGETS+= agentx_ping_new_index 51AGENTX_TARGETS+= agentx_ping_any_index 52AGENTX_TARGETS+= agentx_ping_nbo_nnbo 53AGENTX_TARGETS+= agentx_ping_nnbo_nbo 54AGENTX_TARGETS+= agentx_close_notopen 55AGENTX_TARGETS+= agentx_close_reasonother 56AGENTX_TARGETS+= agentx_close_reasonparseerror 57AGENTX_TARGETS+= agentx_close_reasonprotocolerror 58AGENTX_TARGETS+= agentx_close_reasontimouts 59AGENTX_TARGETS+= agentx_close_reasonshutdown 60AGENTX_TARGETS+= agentx_close_reasonbymanager 61AGENTX_TARGETS+= agentx_close_reasoninvalid 62AGENTX_TARGETS+= agentx_close_single 63AGENTX_TARGETS+= agentx_close_notowned 64AGENTX_TARGETS+= agentx_close_invalid_sessionid 65AGENTX_TARGETS+= agentx_close_context 66AGENTX_TARGETS+= agentx_close_invalid_version 67AGENTX_TARGETS+= agentx_close_instance_registration 68AGENTX_TARGETS+= agentx_close_new_index 69AGENTX_TARGETS+= agentx_close_any_index 70AGENTX_TARGETS+= agentx_close_nnbo_nbo 71AGENTX_TARGETS+= agentx_register_notopen 72AGENTX_TARGETS+= agentx_register_invalid_sessionid 73AGENTX_TARGETS+= agentx_register_default 74AGENTX_TARGETS+= agentx_register_context 75AGENTX_TARGETS+= agentx_register_invalid_version 76AGENTX_TARGETS+= agentx_register_instance_registration 77AGENTX_TARGETS+= agentx_register_new_index 78AGENTX_TARGETS+= agentx_register_duplicate_self 79AGENTX_TARGETS+= agentx_register_duplicate_twocon 80AGENTX_TARGETS+= agentx_register_duplicate_priority 81AGENTX_TARGETS+= agentx_register_range 82AGENTX_TARGETS+= agentx_register_range_invalidupperbound 83AGENTX_TARGETS+= agentx_register_range_single 84AGENTX_TARGETS+= agentx_register_range_overlap_single 85AGENTX_TARGETS+= agentx_register_single_overlap_range 86AGENTX_TARGETS+= agentx_register_range_overlap_range 87AGENTX_TARGETS+= agentx_register_below 88AGENTX_TARGETS+= agentx_register_above 89AGENTX_TARGETS+= agentx_register_restricted 90AGENTX_TARGETS+= agentx_unregister_notopen 91AGENTX_TARGETS+= agentx_unregister_invalid_sessionid 92AGENTX_TARGETS+= agentx_unregister_notregistered 93AGENTX_TARGETS+= agentx_unregister_notregistered 94AGENTX_TARGETS+= agentx_unregister_single 95AGENTX_TARGETS+= agentx_unregister_single_notowned 96AGENTX_TARGETS+= agentx_unregister_range 97AGENTX_TARGETS+= agentx_unregister_range_single 98# Final choice on if this is the desired behaviour pending on tech@ 99REGRESS_EXPECTED_FAILURES+= agentx_unregister_range_subset 100AGENTX_TARGETS+= agentx_unregister_range_subset 101AGENTX_TARGETS+= agentx_unregister_range_extra 102AGENTX_TARGETS+= agentx_unregister_range_priority 103AGENTX_TARGETS+= agentx_unregister_range_notowned 104 105REGRESS_TARGETS+= ${AGENTX_TARGETS} 106agentx: ${AGENTX_TARGETS} 107 108# SNMP application core logic: application.c 109BACKEND_TARGETS+= backend_get_integer 110BACKEND_TARGETS+= backend_get_octetstring 111BACKEND_TARGETS+= backend_get_objectidentifier 112BACKEND_TARGETS+= backend_get_ipaddress 113BACKEND_TARGETS+= backend_get_counter32 114BACKEND_TARGETS+= backend_get_gauge32 115BACKEND_TARGETS+= backend_get_timeticks 116BACKEND_TARGETS+= backend_get_opaque 117BACKEND_TARGETS+= backend_get_counter64 118BACKEND_TARGETS+= backend_get_nosuchobject 119BACKEND_TARGETS+= backend_get_nosuchinstance 120BACKEND_TARGETS+= backend_get_endofmibview 121BACKEND_TARGETS+= backend_get_two_single_backend 122BACKEND_TARGETS+= backend_get_two_double_backend 123BACKEND_TARGETS+= backend_get_wrongorder 124BACKEND_TARGETS+= backend_get_toofew 125BACKEND_TARGETS+= backend_get_toomany 126BACKEND_TARGETS+= backend_get_instance 127BACKEND_TARGETS+= backend_get_instance_below 128BACKEND_TARGETS+= backend_get_timeout_default 129REGRESS_SLOW_TARGETS+= backend_get_timeout_default 130BACKEND_TARGETS+= backend_get_timeout_session_lower 131REGRESS_SLOW_TARGETS+= backend_get_timeout_session_lower 132BACKEND_TARGETS+= backend_get_timeout_session_higher 133REGRESS_SLOW_TARGETS+= backend_get_timeout_session_higher 134BACKEND_TARGETS+= backend_get_timeout_region_lower 135REGRESS_SLOW_TARGETS+= backend_get_timeout_region_lower 136BACKEND_TARGETS+= backend_get_timeout_region_higher 137REGRESS_SLOW_TARGETS+= backend_get_timeout_region_higher 138BACKEND_TARGETS+= backend_get_priority_lower 139BACKEND_TARGETS+= backend_get_priority_higher 140BACKEND_TARGETS+= backend_get_priority_below_lower 141BACKEND_TARGETS+= backend_get_priority_below_higher 142BACKEND_TARGETS+= backend_get_close 143BACKEND_TARGETS+= backend_get_close_overlap 144BACKEND_TARGETS+= backend_get_disappear 145BACKEND_TARGETS+= backend_get_disappear_overlap 146BACKEND_TARGETS+= backend_get_disappear_doublesession 147BACKEND_TARGETS+= backend_getnext_selfbound 148BACKEND_TARGETS+= backend_getnext_lowerbound 149BACKEND_TARGETS+= backend_getnext_lowerbound_self 150BACKEND_TARGETS+= backend_getnext_lowerbound_highprio 151BACKEND_TARGETS+= backend_getnext_lowerbound_lowprio 152BACKEND_TARGETS+= backend_getnext_sibling 153BACKEND_TARGETS+= backend_getnext_child_gap 154BACKEND_TARGETS+= backend_getnext_nosuchobject 155BACKEND_TARGETS+= backend_getnext_nosuchinstance 156BACKEND_TARGETS+= backend_getnext_endofmibview 157BACKEND_TARGETS+= backend_getnext_inclusive 158BACKEND_TARGETS+= backend_getnext_jumpnext 159BACKEND_TARGETS+= backend_getnext_jumpnext_endofmibview 160BACKEND_TARGETS+= backend_getnext_jump_up 161BACKEND_TARGETS+= backend_getnext_two_single_backend 162BACKEND_TARGETS+= backend_getnext_two_double_backend 163BACKEND_TARGETS+= backend_getnext_instance_below 164BACKEND_TARGETS+= backend_getnext_instance 165BACKEND_TARGETS+= backend_getnext_instance_exact 166BACKEND_TARGETS+= backend_getnext_instance_ignore 167BACKEND_TARGETS+= backend_getnext_backwards 168BACKEND_TARGETS+= backend_getnext_stale 169BACKEND_TARGETS+= backend_getnext_inclusive_backwards 170BACKEND_TARGETS+= backend_getnext_toofew 171BACKEND_TARGETS+= backend_getnext_toomany 172BACKEND_TARGETS+= backend_getbulk_nonrep_zero_maxrep_one 173BACKEND_TARGETS+= backend_getbulk_nonrep_zero_maxrep_two 174BACKEND_TARGETS+= backend_getbulk_nonrep_one_maxrep_one 175BACKEND_TARGETS+= backend_getbulk_nonrep_one_maxrep_two 176BACKEND_TARGETS+= backend_getbulk_nonrep_two_maxrep_two 177BACKEND_TARGETS+= backend_getbulk_nonrep_negative 178BACKEND_TARGETS+= backend_error_get_toobig 179BACKEND_TARGETS+= backend_error_get_nosuchname 180BACKEND_TARGETS+= backend_error_get_badvalue 181BACKEND_TARGETS+= backend_error_get_readonly 182BACKEND_TARGETS+= backend_error_get_generr 183BACKEND_TARGETS+= backend_error_get_wrongtype 184BACKEND_TARGETS+= backend_error_get_wronglength 185BACKEND_TARGETS+= backend_error_get_wrongvalue 186BACKEND_TARGETS+= backend_error_get_nocreation 187BACKEND_TARGETS+= backend_error_get_inconsistentvalue 188BACKEND_TARGETS+= backend_error_get_commitfailed 189BACKEND_TARGETS+= backend_error_get_undofailed 190BACKEND_TARGETS+= backend_error_get_authorizationerror 191BACKEND_TARGETS+= backend_error_get_notwritable 192BACKEND_TARGETS+= backend_error_get_inconsistentname 193BACKEND_TARGETS+= backend_error_get_openfailed 194BACKEND_TARGETS+= backend_error_get_notopen 195BACKEND_TARGETS+= backend_error_get_indexwrongtype 196BACKEND_TARGETS+= backend_error_get_indexalreadyallocated 197BACKEND_TARGETS+= backend_error_get_indexnonavailable 198BACKEND_TARGETS+= backend_error_get_indexnotallocated 199BACKEND_TARGETS+= backend_error_get_duplicateregistration 200BACKEND_TARGETS+= backend_error_get_requestdenied 201BACKEND_TARGETS+= backend_error_get_processingerror 202BACKEND_TARGETS+= backend_error_get_nonstandard 203BACKEND_TARGETS+= backend_error_getnext_toobig 204BACKEND_TARGETS+= backend_error_getnext_nosuchname 205BACKEND_TARGETS+= backend_error_getnext_badvalue 206BACKEND_TARGETS+= backend_error_getnext_readonly 207BACKEND_TARGETS+= backend_error_getnext_generr 208BACKEND_TARGETS+= backend_error_getnext_noaccess 209BACKEND_TARGETS+= backend_error_getnext_wrongtype 210BACKEND_TARGETS+= backend_error_getnext_wronglength 211BACKEND_TARGETS+= backend_error_getnext_wrongencoding 212BACKEND_TARGETS+= backend_error_getnext_wrongvalue 213BACKEND_TARGETS+= backend_error_getnext_nocreation 214BACKEND_TARGETS+= backend_error_getnext_inconsistentvalue 215BACKEND_TARGETS+= backend_error_getnext_resourceunavailable 216BACKEND_TARGETS+= backend_error_getnext_commitfailed 217BACKEND_TARGETS+= backend_error_getnext_undofailed 218BACKEND_TARGETS+= backend_error_getnext_notwritable 219BACKEND_TARGETS+= backend_error_getnext_inconsistentname 220BACKEND_TARGETS+= backend_error_getnext_openfailed 221BACKEND_TARGETS+= backend_error_getnext_notopen 222BACKEND_TARGETS+= backend_error_getnext_indexwrongtype 223BACKEND_TARGETS+= backend_error_getnext_indexalreadyallocated 224BACKEND_TARGETS+= backend_error_getnext_indexnonavailable 225BACKEND_TARGETS+= backend_error_getnext_indexnotallocated 226BACKEND_TARGETS+= backend_error_getnext_unsupportedcontext 227BACKEND_TARGETS+= backend_error_getnext_duplicateregistration 228BACKEND_TARGETS+= backend_error_getnext_unknownregistration 229BACKEND_TARGETS+= backend_error_getnext_parseerror 230BACKEND_TARGETS+= backend_error_getnext_requestdenied 231BACKEND_TARGETS+= backend_error_getnext_processingerror 232BACKEND_TARGETS+= backend_error_getnext_nonstandard 233 234REGRESS_TARGETS+= ${BACKEND_TARGETS} 235backend: ${BACKEND_TARGETS} 236 237.PHONY: agentx backend 238 239${REGRESS_TARGETS}: snmpd_regress 240# Always start snmpd if it's not running 241 @pgrep -q snmpd || \ 242 (printf "%s\n" "${SNMPD_START}"; ${SNMPD_START} sleep 0.5) 243 ./snmpd_regress ${SNMPD_REGRESS_FLAGS} $@ 244# Make sure that snmpd hasn't crashed in the meantime. 245 @sleep 0.01 246 @pgrep -q snmpd 247 248.include <bsd.regress.mk> 249