xref: /openbsd/regress/usr.sbin/snmpd/Makefile (revision 379777c0)
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