xref: /openbsd-src/regress/usr.sbin/ldapd/Makefile (revision b71855020eb655d317851b92c23888c01366caaa)
1# $OpenBSD: Makefile,v 1.12 2022/05/20 09:46:47 bluhm Exp $
2
3OUT=${.CURDIR}/out
4DIT=dc=example,dc=com
5DIT2=dc=bar,dc=quux
6NLV=0.65
7CLEANFILES=ldapd.log ldapd1.conf ${DIT}_indx.db ${DIT}_data.db ${DIT2}_indx.db ${DIT2}_data.db
8
9# Needs p5-ldap and openldap (client)
10
11PERL_REQUIRE !=	perl -Mstrict -Mwarnings -e ' \
12    eval { require Net::LDAP } or print $@; \
13'
14.if ! empty (PERL_REQUIRE)
15regress:
16	@echo "${PERL_REQUIRE}"
17	@echo install package p5-ldap
18	@echo SKIPPED
19.endif
20
21.if ! (make(clean) || make(cleandir) || make(obj))
22LDAP_DEP != ldapsearch -VV 2>/dev/null ; echo $?
23.endif
24.if ("${LDAP_DEP}" != 0)
25regress:
26	@echo openldap-client must be installed
27	@echo SKIPPED
28.endif
29
30REGRESS_TARGETS = connect import perl purge
31REGRESS_ROOT_TARGETS = ${REGRESS_TARGETS}
32REGRESS_SETUP_ONCE = bootstrap
33REGRESS_CLEANUP = kill
34
35bootstrap: kill
36	[ -z "${SUDO}" ] || ${SUDO} true
37	rm -f ldapd1.conf ldapd.log
38	${SUDO} install -m 600 -o root ${.CURDIR}/ldapd.conf ldapd1.conf
39	${SUDO} ldapd -n -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf
40	${SUDO} ldapd -dvv -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf >ldapd.log 2>&1 &
41	# wait up to 10 seconds for startup
42	for i in `jot 100`; do \
43	    if grep -q 'ldape: entering event loop' ldapd.log; then break; fi; \
44	    sleep .1; \
45	done
46	grep 'ldape: entering event loop' ldapd.log
47
48kill:
49	-${SUDO} pkill ldapd
50
51connect:
52	ldapsearch -x -H ldapi://%2ftmp%2fldapi | diff - ${OUT}/empty.log
53	ldapsearch -x -H ldap://localhost:6639 2>&1 | diff - ${OUT}/empty.log
54	ldapsearch -x -H ldap://localhost:6636 2>&1 | diff - ${OUT}/empty.log
55
56import:
57	ldapadd -f ${.CURDIR}/dit-example.ldif -Dcn=admin,${DIT} -x -w secret -H ldap://localhost:6639 | diff - ${OUT}/adding.log
58	ldapsearch -x -b ${DIT} -H ldap://localhost:6639 | diff - ${OUT}/example.log
59	ldapsearch -x -D cn=admin,${DIT} -w secret -b ${DIT} -H ldap://localhost:6639 | diff - ${OUT}/example.log
60
61purge:
62	ldapdelete -Dcn=admin,${DIT} -x -w secret -H ldap://localhost:6639 -r ${DIT}
63	ldapsearch -x -H ldap://localhost:6639  2>&1 | diff - ${OUT}/empty.log
64
65perl:
66	perl ${.CURDIR}/run-tests.pl
67
68.include <bsd.regress.mk>
69