Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Joe Martin
OpenLDAP
Commits
7fb8912b
Commit
7fb8912b
authored
Jun 30, 2020
by
Quanah Gibson-Mount
Browse files
ITS#9282 regression test
parent
feaeecea
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
tests/data/regressions/its9282/config.ldif
0 → 100644
View file @
7fb8912b
dn: cn=config
objectClass: olcGlobal
cn: config
olcLogLevel: Sync
olcLogLevel: Stats
olcPidFile: @TESTDIR@/slapd.@SID@.pid
olcArgsFile: @TESTDIR@/slapd.@SID@.args
olcServerID: @SID@
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
#syncprovmod#dn: cn=module{1},cn=config
#syncprovmod#objectClass: olcModuleList
#syncprovmod#cn: module{1}
#syncprovmod#olcModulePath: @TESTWD@/../servers/slapd/overlays/
#syncprovmod#olcModuleLoad: {0}syncprov.la
dn: olcDatabase={-1}frontend,cn=config
objectClass: olcDatabaseConfig
objectClass: olcFrontendConfig
olcDatabase: {-1}frontend
olcAddContentAcl: FALSE
olcLastMod: TRUE
olcMaxDerefDepth: 0
olcReadOnly: FALSE
olcSchemaDN: cn=Subschema
olcSyncUseSubentry: FALSE
olcMonitoring: FALSE
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcRootPW:< file://@TESTDIR@/configpw
dn: olcDatabase={1}@BACKEND@,cn=config
objectClass: olc@BACKEND@Config
olcDatabase: {1}@BACKEND@
#~null~#olcDbDirectory: @TESTDIR@/srv@SID@/db.@SID@
olcSuffix: dc=example,dc=com
olcRootDN: cn=manager,dc=example,dc=com
olcRootPW: secret
#indexdb#olcDbIndex: default eq
#indexdb#olcDbIndex: objectClass
#indexdb#olcDbIndex: entryUUID
#indexdb#olcDbIndex: entryCSN
#mdb#olcDbMaxSize: 33554432
olcAccess: {0}to * by dn.base="cn=manager,dc=example,dc=com" read by * break
olcSyncrepl: {0}rid=001 provider=@URI@ type=refreshAndPersist retry="10 +"
searchbase="dc=example,dc=com" scope=sub attrs="*,+" bindmethod=simple bind
dn="cn=manager,dc=example,dc=com" credentials=secret timeout=1
olcMirrorMode: TRUE
dn: olcOverlay={0}syncprov,olcDatabase={1}mdb,cn=config
objectClass: olcSyncProvConfig
olcOverlay: {0}syncprov
olcSpCheckpoint: 100 10
tests/data/regressions/its9282/exampledb.ldif
0 → 100644
View file @
7fb8912b
This diff is collapsed.
Click to expand it.
tests/data/regressions/its9282/its9282
0 → 100755
View file @
7fb8912b
#! /bin/sh
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
## Copyright 1998-2020 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
if
test
$SYNCPROV
=
syncprovno
;
then
echo
"Syncrepl provider overlay not available, test skipped"
exit
0
fi
if
test
$BACKEND
=
ldif
;
then
# Onelevel search does not return entries in order of creation or CSN.
echo
"
$BACKEND
backend unsuitable for syncprov, test skipped"
exit
0
fi
echo
"This test tracks a case where a deleted entry gets resurrected."
echo
"See https://bugs.openldap.org/show_bug.cgi?id=9282 for more information."
MMR
=
2
XDIR
=
$TESTDIR
/srv
mkdir
-p
$TESTDIR
USERDN
=
"cn=Damon Leeson, ou=Product Development, dc=example,dc=com"
$SLAPPASSWD
-g
-n
>
$CONFIGPWF
ITS
=
9282
ITSDIR
=
$DATADIR
/regressions/its
$ITS
n
=
1
while
[
$n
-le
$MMR
]
;
do
echo
"Initializing server configuration for MMR
$n
..."
DBDIR
=
${
XDIR
}
$n
/db
CFDIR
=
${
XDIR
}
$n
/slapd.d
mkdir
-p
${
XDIR
}
$n
$DBDIR
.1
$DBDIR
.2
$CFDIR
.
$CONFFILTER
$BACKEND
$MONITORDB
<
$ITSDIR
/config.ldif
>
$TESTDIR
/config
${
n
}
.ldif
if
[
$n
=
1
]
;
then
MYURI
=
`
eval echo
'$URI2'
`
else
MYURI
=
`
eval echo
'$URI1'
`
fi
sed
-e
"s/@SID@/
$n
/g"
-e
"s|@URI@|
$MYURI
|g"
$TESTDIR
/config
${
n
}
.ldif
>
$CONFLDIF
$SLAPADD
-F
$CFDIR
-n
0
-l
$CONFLDIF
n
=
`
expr
$n
+ 1
`
done
KILLPIDS
=
n
=
1
while
[
$n
-le
$MMR
]
;
do
MYURI
=
`
eval echo
'$URI'
$n
`
MYLOG
=
`
eval echo
'$LOG'
$n
`
CFDIR
=
${
XDIR
}
$n
/slapd.d
echo
"Starting provider slapd on TCP/IP URI
$MYURI
"
$SLAPD
-F
$CFDIR
-h
$MYURI
-d
$LVL
$TIMING
>
$MYLOG
2>&1 &
PID
=
$!
if
test
$WAIT
!=
0
;
then
echo
PID
$PID
read
foo
fi
KILLPIDS
=
"
$PID
$KILLPIDS
"
if
[
$n
=
1
]
;
then
MPID
=
"
$PID
"
fi
sleep
1
echo
"Using ldapsearch to check that provider slapd is running..."
for
i
in
0 1 2 3 4 5
;
do
$LDAPSEARCH
-s
base
-b
""
-H
$MYURI
\
'objectclass=*'
>
/dev/null 2>&1
RC
=
$?
if
test
$RC
=
0
;
then
break
fi
echo
"Waiting 5 seconds for slapd to start..."
sleep
5
done
if
test
$RC
!=
0
;
then
echo
"ldapsearch failed (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
n
=
`
expr
$n
+ 1
`
done
echo
"Sleeping 15 seconds to allow stabilization..."
sleep
15
echo
"Populating database on provider..."
$LDAPADD
-D
$MANAGERDN
-H
$URI1
-w
$PASSWD
-f
$ITSDIR
/exampledb.ldif
>>
$TESTOUT
2>&1
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapadd failed (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
echo
"Waiting on databases to sync..."
loop
=
0
while
[
$loop
-ne
1
]
;
do
$LDAPSEARCH
-D
$MANAGERDN
-w
$PASSWD
-s
base
-b
"
$BASEDN
"
-H
$URI1
\
contextCSN |
grep
contextCSN:
>
$TESTDIR
/server1.csn 2>&1
$LDAPSEARCH
-D
$MANAGERDN
-w
$PASSWD
-s
base
-b
"
$BASEDN
"
-H
$URI2
\
contextCSN |
grep
contextCSN:
>
$TESTDIR
/server2.csn 2>&1
$CMP
$TESTDIR
/server1.csn
$TESTDIR
/server2.csn
>
$CMPOUT
if
test
$?
!=
0
;
then
echo
"Still syncing..."
sleep
30
else
loop
=
1
fi
done
echo
"Comparing entry on providers..."
$LDAPSEARCH
-D
$MANAGERDN
-w
$PASSWD
-b
"
$BASEDN
"
-H
$URI2
\
'(cn=Damon Leeson)'
'1.1'
>
$TESTDIR
/server2.flt 2>&1
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapsearch on
$URI2
failed with error
$RC
."
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
$LDAPSEARCH
-D
$MANAGERDN
-w
$PASSWD
-b
"
$BASEDN
"
-H
$URI1
\
'(cn=Damon Leeson)'
'1.1'
>
$TESTDIR
/server1.flt 2>&1
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapsearch on
$URI1
failed with error
$RC
."
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
$CMP
$TESTDIR
/server1.flt
$TESTDIR
/server2.flt
>
$CMPOUT
if
test
$?
!=
0
;
then
echo
"test failed - provider 1 and provider 2 databases differ"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
1
fi
echo
-n
"Stopping MMR1 slapd..."
kill
-HUP
$MPID
wait
$MPID
KILLPIDS
=
`
echo
"
$KILLPIDS
"
|
sed
-e
"s/
$MPID
/ /"
`
;
sleep
$SLEEP2
echo
"done"
echo
"Deleting entry from provider 2..."
$LDAPDELETE
-D
"
$MANAGERDN
"
-H
$URI2
-w
$PASSWD
"
$USERDN
"
>>
$TESTOUT
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapdelete on
$URI2
failed with error
$RC
."
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
$LDAPSEARCH
-D
$MANAGERDN
-w
$PASSWD
-b
"
$BASEDN
"
-H
$URI2
\
'(cn=Damon Leeson)'
'1.1'
>
$TESTDIR
/server2dc.flt 2>&1
echo
"Starting provider1 slapd on TCP/IP URI
$URI1
"
CFDIR
=
"
$TESTDIR
/srv1/slapd.d"
$SLAPD
-F
$CFDIR
-h
$URI1
-d
$LVL
$TIMING
>>
$LOG1
2>&1 &
PID
=
$!
if
test
$WAIT
!=
0
;
then
echo
PID
$PID
read
foo
fi
KILLPIDS
=
"
$PID
$KILLPIDS
"
sleep
1
echo
"Using ldapsearch to check that provider slapd is running..."
for
i
in
0 1 2 3 4 5
;
do
$LDAPSEARCH
-s
base
-b
""
-H
$URI1
\
'objectclass=*'
>
/dev/null 2>&1
RC
=
$?
if
test
$RC
=
0
;
then
break
fi
echo
"Waiting 5 seconds for slapd to start..."
sleep
5
done
if
test
$RC
!=
0
;
then
echo
"ldapsearch failed (
$RC
)!"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
echo
"done"
echo
"Sleeping 30 seconds to allow databases to sync..."
sleep
30
echo
"Comparing entry on providers post delete..."
$LDAPSEARCH
-D
$MANAGERDN
-w
$PASSWD
-b
"
$BASEDN
"
-H
$URI2
\
'(cn=Damon Leeson)'
'1.1'
>
$TESTDIR
/server2d.flt 2>&1
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapsearch on
$URI2
failed with error
$RC
."
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
$LDAPSEARCH
-D
$MANAGERDN
-w
$PASSWD
-b
"
$BASEDN
"
-H
$URI1
\
'(cn=Damon Leeson)'
'1.1'
>
$TESTDIR
/server1d.flt 2>&1
RC
=
$?
if
test
$RC
!=
0
;
then
echo
"ldapsearch on
$URI1
failed with error
$RC
."
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
$RC
fi
$CMP
$ITSDIR
/noentry.flt
$TESTDIR
/server2d.flt
>
$CMPOUT
if
test
$?
!=
0
;
then
echo
"test failed - entry exists on provider 2"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
1
fi
$CMP
$ITSDIR
/noentry.flt
$TESTDIR
/server1d.flt
>
$CMPOUT
if
test
$?
!=
0
;
then
echo
"test failed - entry exists on provider 1"
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
exit
1
fi
test
$KILLSERVERS
!=
no
&&
kill
-HUP
$KILLPIDS
echo
">>>>> Test succeeded"
test
$KILLSERVERS
!=
no
&&
wait
exit
0
tests/data/regressions/its9282/noentry.flt
0 → 100644
View file @
7fb8912b
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment