From f136773413b0d1817f749d9f3ae65ec0660e7d78 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Tue, 6 Jun 2017 17:04:11 -0700 Subject: [PATCH] ITS#8667 - Add regression test --- .../data/regressions/its8667/accounting.ldif | 63 ++++++++++ .../regressions/its8667/administrative.ldif | 63 ++++++++++ tests/data/regressions/its8667/its8667 | 116 ++++++++++++++++++ .../data/regressions/its8667/janitorial.ldif | 63 ++++++++++ tests/data/regressions/its8667/root.ldif | 46 +++++++ tests/data/regressions/its8667/slapd.ldif | 97 +++++++++++++++ 6 files changed, 448 insertions(+) create mode 100644 tests/data/regressions/its8667/accounting.ldif create mode 100644 tests/data/regressions/its8667/administrative.ldif create mode 100755 tests/data/regressions/its8667/its8667 create mode 100644 tests/data/regressions/its8667/janitorial.ldif create mode 100644 tests/data/regressions/its8667/root.ldif create mode 100644 tests/data/regressions/its8667/slapd.ldif diff --git a/tests/data/regressions/its8667/accounting.ldif b/tests/data/regressions/its8667/accounting.ldif new file mode 100644 index 0000000000..b4e3e6f76e --- /dev/null +++ b/tests/data/regressions/its8667/accounting.ldif @@ -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= + diff --git a/tests/data/regressions/its8667/administrative.ldif b/tests/data/regressions/its8667/administrative.ldif new file mode 100644 index 0000000000..943e19282a --- /dev/null +++ b/tests/data/regressions/its8667/administrative.ldif @@ -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 + diff --git a/tests/data/regressions/its8667/its8667 b/tests/data/regressions/its8667/its8667 new file mode 100755 index 0000000000..864d091e71 --- /dev/null +++ b/tests/data/regressions/its8667/its8667 @@ -0,0 +1,116 @@ +#! /bin/sh +# $OpenLDAP$ +## This work is part of OpenLDAP Software . +## +## 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 +## . + +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 diff --git a/tests/data/regressions/its8667/janitorial.ldif b/tests/data/regressions/its8667/janitorial.ldif new file mode 100644 index 0000000000..2b3c6ecb0d --- /dev/null +++ b/tests/data/regressions/its8667/janitorial.ldif @@ -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 + diff --git a/tests/data/regressions/its8667/root.ldif b/tests/data/regressions/its8667/root.ldif new file mode 100644 index 0000000000..3220c3e16f --- /dev/null +++ b/tests/data/regressions/its8667/root.ldif @@ -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 + diff --git a/tests/data/regressions/its8667/slapd.ldif b/tests/data/regressions/its8667/slapd.ldif new file mode 100644 index 0000000000..2d30ff927f --- /dev/null +++ b/tests/data/regressions/its8667/slapd.ldif @@ -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 -- 2.39.5