ITS#8667 - Add regression test

This commit is contained in:
Quanah Gibson-Mount 2017-06-06 17:04:11 -07:00
parent a58c01317c
commit f136773413
6 changed files with 448 additions and 0 deletions

View File

@ -0,0 +1,63 @@
dn: ou=Accounting,dc=example,dc=com
objectClass: organizationalunit
objectClass: top
ou: Accounting
dn: cn=May Gaul,ou=Accounting,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: May Gaul
sn: Gaul
carLicense: 1BMCX31
departmentNumber: 5148
description: This is May Gaul's description
employeeType: Temp
facsimileTelephoneNumber: +1 804 673-8690
givenName: May
homePhone: +1 415 245-8979
initials: M. G.
l: Sunnyvale
mail: May_Gaul@example.com
manager: cn=Fqa McMannen
mobile: +1 818 141-8493
ou: Accounting
pager: +1 804 480-4264
postalAddress: example # 930
roomNumber: 5933
secretary: cn=Daniel Encomenderos
telephoneNumber: +1 408 696-5756
title: Associate Accounting Developer
uid: May_Gaul
userPassword:: bHVhR3lhTQ==
dn: cn=Ann Tully,ou=Accounting,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: Ann Tully
sn: Tully
carLicense: 3BM6G8F
departmentNumber: 1672
description: This is Ann Tully's description
employeeType: Employee
facsimileTelephoneNumber: +1 213 206-5551
givenName: Ann
homePhone: +1 213 246-2575
initials: A. T.
l: Cambridge
mail: Ann_Tully@example.com
manager: cn=Buddy Wingfield
mobile: +1 213 889-1457
ou: Accounting
pager: +1 71 105-8458
postalAddress: example # 784
roomNumber: 538
secretary: cn=Minny Vahdat
telephoneNumber: +1 415 208-1794
title: Supreme Accounting Admin
uid: Ann_Tully
userPassword:: eWxsdVRubkE=

View File

@ -0,0 +1,63 @@
dn: ou=Administrative,dc=example,dc=com
objectClass: organizationalunit
objectClass: top
ou: Administrative
dn: cn=Tab Danko,ou=Administrative,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: Tab Danko
sn: Danko
carLicense: XB3M2XY
departmentNumber: 1320
description: This is Tab Danko's description
employeeType: Employee
facsimileTelephoneNumber: +1 510 538-4771
givenName: Tab
homePhone: +1 206 386-9666
initials: T. D.
l: Orem
mail: Tab_Danko@example.com
manager: cn=Ingaborg Burruss
mobile: +1 206 296-7053
ou: Administrative
pager: +1 804 647-2654
postalAddress: example # 669
roomNumber: 1597
secretary: cn=Hilde McCaugherty
telephoneNumber: +1 415 622-6699
title: Associate Administrative Yahoo
uid: Tab_Danko
userPassword:: b2tuYURiYVQ=
dn: cn=Clary Mand,ou=Administrative,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: Clary Mand
sn: Mand
carLicense: 2AVIDV3
departmentNumber: 2566
description: This is Clary Mand's description
employeeType: Temp
facsimileTelephoneNumber: +1 408 928-6670
givenName: Clary
homePhone: +1 213 446-5803
initials: C. M.
l: Alameda
mail: Clary_Mand@example.com
manager: cn=Ainslee Hanlan
mobile: +1 71 687-3763
ou: Administrative
pager: +1 206 452-2059
postalAddress: example # 55
roomNumber: 8363
secretary: cn=Mallik MacArthur
telephoneNumber: +1 804 111-7612
title: Senior Administrative Stooge
uid: Clary_Mand
userPassword:: ZG5hTXlyYWxD

View File

@ -0,0 +1,116 @@
#! /bin/sh
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
## Copyright 1998-2017 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>.
echo "running defines.sh"
. $SRCDIR/scripts/defines.sh
echo ""
echo " This test tracks a case where the -g flag to slapcat fails to work"
echo " correctly, exporting the subordinate dbs as well as the root db."
echo " See http://www.openldap.org/its/index.cgi/?findid=8667 for more information."
echo ""
DBDIR1=$TESTDIR/db.1.a
DBDIR2=$TESTDIR/db.2.a
DBDIR3=$TESTDIR/db.3.a
DBDIR4=$TESTDIR/db.4.a
CFPRO=$TESTDIR/slapd.d
mkdir -p $TESTDIR $DBDIR1 $DBDIR2 $DBDIR3 $DBDIR4 $CFPRO
$SLAPPASSWD -g -n >$CONFIGPWF
ITS=8667
ITSDIR=$DATADIR/regressions/its$ITS
echo "Starting slapd on TCP/IP port $PORT1..."
. $CONFFILTER $BACKEND $MONITORDB < $ITSDIR/slapd.ldif > $CONFLDIF
$SLAPADD -F $CFPRO -n 0 -l $CONFLDIF
echo "Populating root database..."
$SLAPADD -F $CFPRO -b "dc=example,dc=com" -l $ITSDIR/root.ldif >> $TESTOUT 2>&1
RC=$?
if test $RC != 0 ; then
echo "slapadd failed for root database ($RC)!"
exit $RC
fi
echo "Populating accounting database..."
$SLAPADD -F $CFPRO -b "dc=accounting,dc=example,dc=com" -l $ITSDIR/accounting.ldif >> $TESTOUT 2>&1
RC=$?
if test $RC != 0 ; then
echo "slapadd failed for accounting database ($RC)!"
exit $RC
fi
echo "Populating administrative database..."
$SLAPADD -F $CFPRO -b "dc=administrative,dc=example,dc=com" -l $ITSDIR/administrative.ldif >> $TESTOUT 2>&1
RC=$?
if test $RC != 0 ; then
echo "slapadd failed for administrative database ($RC)!"
exit $RC
fi
echo "Populating janitorial database..."
$SLAPADD -F $CFPRO -b "dc=janitorial,dc=example,dc=com" -l $ITSDIR/janitorial.ldif >> $TESTOUT 2>&1
RC=$?
if test $RC != 0 ; then
echo "slapadd failed for janitorial database ($RC)!"
exit $RC
fi
echo "Using slapcat -g to export only the root database..."
$SLAPCAT -F $CFPRO -g -b "dc=example,dc=com" -l $TESTDIR/slapcat.out >> $TESTOUT 2>&1
RC=$?
if test $RC != 0 ; then
echo "slapcat -g failed for root databse ($RC)!"
exit $RC
fi
echo "Verifying Administrative subordinate is not found..."
grep "dn: ou=Administrative,dc=example,dc=com" $TESTDIR/slapcat.out >> $TESTOUT 2>&1
RC=$?
if test $RC = 0 ; then
echo "test failed - Administrative subordinate found."
echo "This is a regression of ITS8667"
exit 1
fi
echo "Verifying Accounting subordinate is not found..."
grep "dn: ou=Accounting,dc=example,dc=com" $TESTDIR/slapcat.out >> $TESTOUT 2>&1
RC=$?
if test $RC = 0 ; then
echo "test failed - Accounting subordinate found."
echo "This is a regression of ITS8667"
exit 1
fi
echo "Verifying Janitorial subordinate is not found..."
grep "dn: ou=Janitorial,dc=example,dc=com" $TESTDIR/slapcat.out >> $TESTOUT 2>&1
RC=$?
if test $RC = 0 ; then
echo "test failed - Janitorial subordinate found."
echo "This is a regression of ITS8667"
exit 1
fi
echo
echo ">>>>> Test succeeded"
exit 0

View File

@ -0,0 +1,63 @@
dn: ou=Janitorial,dc=example,dc=com
objectClass: organizationalunit
objectClass: top
ou: Janitorial
dn: cn=Clark Soto,ou=Janitorial,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: Clark Soto
sn: Soto
carLicense: PPTYC3Z
departmentNumber: 7897
description: This is Clark Soto's description
employeeType: Employee
facsimileTelephoneNumber: +1 510 450-7054
givenName: Clark
homePhone: +1 804 304-2863
initials: C. S.
l: San Francisco
mail: Clark_Soto@example.com
manager: cn=Gerianne Skrebels
mobile: +1 206 393-4632
ou: Janitorial
pager: +1 510 651-1646
postalAddress: example # 395
roomNumber: 5847
secretary: cn=Vrouwerff Komenda
telephoneNumber: +1 415 574-1770
title: Junior Janitorial Sales Rep
uid: Clark_Soto
userPassword:: b3RvU2tyYWxD
dn: cn=Edmx Beaty,ou=Janitorial,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: Edmx Beaty
sn: Beaty
carLicense: 4XOW1HI
departmentNumber: 1279
description: This is Edmx Beaty's description
employeeType: Contract
facsimileTelephoneNumber: +1 408 460-7625
givenName: Edmx
homePhone: +1 206 683-8029
initials: E. B.
l: San Mateo
mail: Edmx_Beaty@example.com
manager: cn=Jilleen Funston
mobile: +1 303 400-9306
ou: Janitorial
pager: +1 408 324-7874
postalAddress: example # 331
roomNumber: 389
secretary: cn=Chick Bulifant
telephoneNumber: +1 303 427-6104
title: Chief Janitorial Vice President
uid: Edmx_Beaty
userPassword:: eXRhZUJ4bWRF

View File

@ -0,0 +1,46 @@
dn: dc=example,dc=com
objectClass: dcObject
objectClass: organization
objectClass: top
dc: example
o: example
dn: ou=NonSub00,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: NonSub00
dn: ou=NonSub01,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: NonSub01
dn: ou=NonSub02,dc=example,dc=com
objectClass: top
objectClass: organizationalUnit
ou: NonSub02
dn: cn=NonSubTestPerson00,ou=NonSub00,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: NonSubTestPerson00
sn: TP00
dn: cn=NonSubTestPerson01,ou=NonSub01,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: NonSubTestPerson01
sn: TP01
dn: cn=NonSubTestPerson02,ou=NonSub02,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: NonSubTestPerson02
sn: TP02

View File

@ -0,0 +1,97 @@
dn: cn=config
objectClass: olcGlobal
cn: config
olcLogLevel: Sync
olcLogLevel: Stats
olcPidFile: @TESTDIR@/slapd.1.pid
olcArgsFile: @TESTDIR@/slapd.1.args
dn: cn=schema,cn=config
objectClass: olcSchemaConfig
cn: schema
include: file://@TESTWD@/@SCHEMADIR@/core.ldif
include: file://@TESTWD@/@SCHEMADIR@/cosine.ldif
include: file://@TESTWD@/@SCHEMADIR@/inetorgperson.ldif
#mod#dn: cn=module{0},cn=config
#mod#objectClass: olcModuleList
#mod#cn: module{0}
#mod#olcModulePath: @TESTWD@/../servers/slapd/back-@BACKEND@/
#mod#olcModuleLoad: {0}back_@BACKEND@.la
#monitormod#dn: cn=module{1},cn=config
#monitormod#objectClass: olcModuleList
#monitormod#cn: module{1}
#monitormod#olcModulePath: @TESTWD@/../servers/slapd/back-monitor/
#monitormod#olcModuleLoad: {0}back_monitor.la
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
olcAccess: {0}to dn="" by * read
olcAccess: {1}to * by self write by users read by anonymous auth
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcRootPW:< file://@TESTDIR@/configpw
olcAccess: {0}to * by * none
dn: olcDatabase={1}@BACKEND@,cn=config
objectClass: olcDatabaseConfig
objectClass: olc@BACKEND@Config
olcDatabase: {1}@BACKEND@
olcSuffix: ou=Accounting,dc=example,dc=com
olcSubordinate: advertise
olcRootDN: cn=Manager,dc=example,dc=com
#~null~#olcDbDirectory: @TESTDIR@/db.1.a
#indexdb#olcDbIndex: default eq
#indexdb#olcDbIndex: objectClass
#indexdb#olcDbIndex: cn
#mdb#olcDbMaxSize: 33554432
dn: olcDatabase={2}@BACKEND@,cn=config
objectClass: olcDatabaseConfig
objectClass: olc@BACKEND@Config
olcDatabase: {2}@BACKEND@
olcSuffix: ou=Administrative,dc=example,dc=com
olcSubordinate: advertise
olcRootDN: cn=Manager,dc=example,dc=com
#~null~#olcDbDirectory: @TESTDIR@/db.2.a
#indexdb#olcDbIndex: default eq
#indexdb#olcDbIndex: objectClass
#indexdb#olcDbIndex: cn
#mdb#olcDbMaxSize: 33554432
dn: olcDatabase={3}@BACKEND@,cn=config
objectClass: olcDatabaseConfig
objectClass: olc@BACKEND@Config
olcDatabase: {3}@BACKEND@
olcSuffix: ou=Janitorial,dc=example,dc=com
olcSubordinate: advertise
olcRootDN: cn=Manager,dc=example,dc=com
#~null~#olcDbDirectory: @TESTDIR@/db.3.a
#indexdb#olcDbIndex: default eq
#indexdb#olcDbIndex: objectClass
#indexdb#olcDbIndex: cn
#mdb#olcDbMaxSize: 33554432
dn: olcDatabase={4}@BACKEND@,cn=config
objectClass: olcDatabaseConfig
objectClass: olc@BACKEND@Config
olcDatabase: {4}@BACKEND@
olcSuffix: dc=example,dc=com
olcRootDN: cn=Manager,dc=example,dc=com
olcRootPW: secret
#~null~#olcDbDirectory: @TESTDIR@/db.4.a
#indexdb#olcDbIndex: default eq
#indexdb#olcDbIndex: objectClass
#indexdb#olcDbIndex: cn
#mdb#olcDbMaxSize: 33554432
dn: olcOverlay={0}glue,olcDatabase={4}@BACKEND@,cn=config
objectClass: olcOverlayConfig
objectClass: olcConfig
olcOverlay: {0}glue