xref: /openbsd/regress/usr.sbin/ldapd/Makefile (revision 09467b48)
1# $OpenBSD: Makefile,v 1.10 2020/01/11 11:40:46 espie Exp $
2
3OUT=${.CURDIR}/out
4DIT=dc=example,dc=com
5DIT2=dc=bar,dc=quux
6NLV=0.65
7CLEANFILES=ldapd.pid 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 #cpan
31
32bootstrap:
33	@[ -z "${SUDO}" ] || ${SUDO} true
34	@${SUDO} install -m 600 -o root ${.CURDIR}/ldapd.conf ${.OBJDIR}/ldapd1.conf
35	@${SUDO} ldapd -n -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf
36	@${SUDO} ldapd -dvv -r ${.OBJDIR} -f ${.OBJDIR}/ldapd1.conf > ${.OBJDIR}/log 2>&1 & \
37		echo $$! > ${.OBJDIR}/ldapd.pid
38	@sleep 1
39
40.if ! (make(clean) || make(cleandir) || make(obj))
41.END:
42	@if [ -f ${.OBJDIR}/ldapd.pid ]; then \
43	    ${SUDO} kill $$(cat ${.OBJDIR}/ldapd.pid) &&\
44	    rm ${.OBJDIR}/ldapd.pid; \
45	fi
46.endif
47
48connect: bootstrap
49	-ldapsearch -x -H ldapi://%2ftmp%2fldapi | diff - ${OUT}/empty.log
50	-ldapsearch -x -p 6639 -h localhost 2>&1 | diff - ${OUT}/empty.log
51	-ldapsearch -x -p 6636 -h localhost 2>&1 | diff - ${OUT}/empty.log
52
53import: bootstrap
54	ldapadd -f ${.CURDIR}/dit-example.ldif -Dcn=admin,${DIT} -x -w secret -h localhost -p 6639 | diff - ${OUT}/adding.log
55	ldapsearch -x -b ${DIT} -h localhost -p 6639 | diff - ${OUT}/example.log
56	ldapsearch -x -D cn=admin,${DIT} -w secret -b ${DIT} -h localhost -p 6639 | diff - ${OUT}/example.log
57
58purge: bootstrap
59	ldapdelete -Dcn=admin,${DIT} -x -w secret -h localhost -p 6639 -r ${DIT}
60	-ldapsearch -x -p 6639 -h localhost 2>&1 | diff - ${OUT}/empty.log
61
62perl: bootstrap
63	@-perl ${.CURDIR}/run-tests.pl
64
65# run tests from Net::LDAP
66# requires all of databases/p5-ldap RUN_DEPENDS
67# tests above 41 fail because ldapd doesnt handle uppercase namespaces
68cpan: bootstrap
69	tar -C ${.OBJDIR} -xzf /usr/ports/distfiles/perl-ldap-${NLV}.tar.gz
70	@${SUDO} install -m 600 -o root ${.CURDIR}/nldapd.conf ${.OBJDIR}/perl-ldap-${NLV}
71	cp common.pl ${.OBJDIR}/perl-ldap-${NLV}/t
72	cd ${.OBJDIR}/perl-ldap-${NLV} && perl Makefile.PL --skipdeps
73	sed -i -e 's/OpenLDAPperson/inetOrgPerson/' ${.OBJDIR}/perl-ldap-${NLV}/data/*.ldif
74	@-${SUDO} ${MAKE} -C ${.OBJDIR}/perl-ldap-${NLV} test
75
76.include <bsd.regress.mk>
77