diff options
Diffstat (limited to '')
-rwxr-xr-x | contrib/slapd-modules/variant/tests/scripts/test012-crossdb | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/contrib/slapd-modules/variant/tests/scripts/test012-crossdb b/contrib/slapd-modules/variant/tests/scripts/test012-crossdb new file mode 100755 index 0000000..8854a1b --- /dev/null +++ b/contrib/slapd-modules/variant/tests/scripts/test012-crossdb @@ -0,0 +1,90 @@ +#! /bin/sh +## $OpenLDAP$ +## This work is part of OpenLDAP Software <http://www.openldap.org/>. +## +## Copyright 2016-2022 The OpenLDAP Foundation. +## All rights reserved. +## +## Redistribution and use in source and binary forms, with or without +## modification, are permitted only as authorized by the OpenLDAP +## Public License. +## +## A copy of this license is available in the file LICENSE in the +## top-level directory of the distribution or, alternatively, at +## <http://www.OpenLDAP.org/license.html>. +## +## ACKNOWLEDGEMENTS: +## This module was written in 2016 by Ondřej Kuzník for Symas Corp. + +echo "running defines.sh" +. $SRCDIR/scripts/defines.sh + +. ${SCRIPTDIR}/common.sh + +echo "Setting up another database and variant using an alternate there..." +mkdir $DBDIR2 +$LDAPMODIFY -v -D cn=config -H $URI1 -y $CONFIGPWF \ + <<EOMOD >> $TESTOUT 2>&1 +dn: olcDatabase=ldif,cn=config +changetype: add +objectclass: olcLdifConfig +olcSuffix: dc=demonstration,dc=com +olcDbDirectory: $DBDIR2 +olcRootDn: $MANAGERDN + +dn: olcVariantVariantAttribute={1}seealso,name={0}variant,olcOverlay={0}variant,olcDatabase={1}$BACKEND,cn=config +changetype: modify +replace: olcVariantAlternativeEntry +olcVariantAlternativeEntry: ou=Societies,dc=demonstration,dc=com +EOMOD +RC=$? +if test $RC != 0 ; then + echo "ldapmodify failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Adding alternate entry..." +$LDAPMODIFY -D $MANAGERDN -H $URI1 -w $PASSWD \ + -f data/test012-data.ldif >> $TESTOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapmodify failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +echo "Checking the variant gets resolved correctly..." +echo "# Testing a search against a variant using another DB..." >> $SEARCHOUT +#$LDAPSEARCH -b "$BASEDN" -H $URI1 \ +# "seealso=dc=example,dc=com" \ +$LDAPSEARCH -b "ou=People,$BASEDN" -s base -H $URI1 \ + >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + +test $KILLSERVERS != no && kill -HUP $KILLPIDS + +LDIF=data/test012-out.ldif + +echo "Filtering ldapsearch results..." +$LDIFFILTER < $SEARCHOUT > $SEARCHFLT +echo "Filtering expected entries..." +$LDIFFILTER < $LDIF > $LDIFFLT +echo "Comparing filter output..." +$CMP $SEARCHFLT $LDIFFLT > $CMPOUT + +if test $? != 0 ; then + echo "Comparison failed" + exit 1 +fi + +echo ">>>>> Test succeeded" + +test $KILLSERVERS != no && wait + +exit 0 |