2007-01-25 15:39:13 +03:00
#!/bin/sh
2007-07-12 10:15:47 +04:00
if [ $# -lt 2 ] ; then
cat <<EOF
Usage: test_ldb.sh PROTOCOL SERVER [ OPTIONS]
EOF
exit 1;
fi
2007-01-25 15:39:13 +03:00
p = $1
2007-03-05 16:51:05 +03:00
SERVER = $2
2007-07-12 10:15:47 +04:00
PREFIX = $3
2007-03-05 16:51:05 +03:00
shift 2
2007-01-25 15:39:13 +03:00
options = " $* "
2008-04-16 16:52:29 +04:00
. ` dirname $0 ` /subunit.sh
2007-01-25 15:39:13 +03:00
check( ) {
name = " $1 "
shift
cmdline = " $* "
echo " test: $name "
$cmdline
status = $?
if [ x$status = x0 ] ; then
echo " success: $name "
else
echo " failure: $name "
failed = ` expr $failed + 1`
fi
return $status
}
check "RootDSE" bin/ldbsearch $CONFIGURATION $options --basedn= '' -H $p ://$SERVER -s base DUMMY = x dnsHostName highestCommittedUSN || failed = ` expr $failed + 1`
echo "Getting defaultNamingContext"
BASEDN = ` bin/ldbsearch $CONFIGURATION $options --basedn= '' -H $p ://$SERVER -s base DUMMY = x defaultNamingContext | grep defaultNamingContext | awk '{print $2}' `
echo " BASEDN is $BASEDN "
check "Listing Users" bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER '(objectclass=user)' sAMAccountName || failed = ` expr $failed + 1`
2007-07-12 10:15:47 +04:00
check "Listing Users (sorted)" bin/ldbsearch -S $options $CONFIGURATION -H $p ://$SERVER '(objectclass=user)' sAMAccountName || failed = ` expr $failed + 1`
2007-01-25 15:39:13 +03:00
check "Listing Groups" bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER '(objectclass=group)' sAMAccountName || failed = ` expr $failed + 1`
nentries = ` bin/ldbsearch $options -H $p ://$SERVER $CONFIGURATION '(|(|(&(!(groupType:1.2.840.113556.1.4.803:=1))(groupType:1.2.840.113556.1.4.803:=2147483648)(groupType:1.2.840.113556.1.4.804:=10))(samAccountType=805306368))(samAccountType=805306369))' sAMAccountName | grep sAMAccountName | wc -l`
echo " Found $nentries entries "
if [ $nentries -lt 10 ] ; then
echo "Should have found at least 10 entries"
failed = ` expr $failed + 1`
fi
echo "Check rootDSE for Controls"
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER -s base -b "" '(objectclass=*)' | grep -i supportedControl | wc -l`
if [ $nentries -lt 4 ] ; then
echo "Should have found at least 4 entries"
failed = ` expr $failed + 1`
fi
echo "Test Paged Results Control"
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= paged_results:1:5 '(objectclass=user)' | grep sAMAccountName | wc -l`
if [ $nentries -lt 1 ] ; then
echo "Paged Results Control test returned 0 items"
failed = ` expr $failed + 1`
fi
echo "Test Server Sort Control"
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= server_sort:1:0:sAMAccountName '(objectclass=user)' | grep sAMAccountName | wc -l`
if [ $nentries -lt 1 ] ; then
echo "Server Sort Control test returned 0 items"
failed = ` expr $failed + 1`
fi
echo "Test Extended DN Control"
2007-11-29 10:00:04 +03:00
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= extended_dn:1 '(objectclass=user)' | grep sAMAccountName | wc -l`
if [ $nentries -lt 1 ] ; then
echo "Extended DN Control test returned 0 items"
failed = ` expr $failed + 1`
fi
2007-01-25 15:39:13 +03:00
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= extended_dn:1:0 '(objectclass=user)' | grep sAMAccountName | wc -l`
if [ $nentries -lt 1 ] ; then
2007-11-29 10:00:04 +03:00
echo "Extended DN Control test returned 0 items"
failed = ` expr $failed + 1`
fi
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= extended_dn:1:1 '(objectclass=user)' | grep sAMAccountName | wc -l`
if [ $nentries -lt 1 ] ; then
2007-01-25 15:39:13 +03:00
echo "Extended DN Control test returned 0 items"
failed = ` expr $failed + 1`
fi
2007-08-15 17:14:38 +04:00
echo "Test Domain scope Control"
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= domain_scope:1 '(objectclass=user)' | grep sAMAccountName | wc -l`
if [ $nentries -lt 1 ] ; then
echo "Extended Domain scope Control test returned 0 items"
failed = ` expr $failed + 1`
fi
2007-01-25 15:39:13 +03:00
echo "Test Attribute Scope Query Control"
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= asq:1:member -s base -b " CN=Administrators,CN=Builtin, $BASEDN " | grep sAMAccountName | wc -l`
if [ $nentries -lt 1 ] ; then
echo "Attribute Scope Query test returned 0 items"
failed = ` expr $failed + 1`
fi
2007-08-27 05:46:09 +04:00
echo "Test Search Options Control"
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= search_options:1:2 '(objectclass=crossRef)' | grep crossRef | wc -l`
if [ $nentries -lt 1 ] ; then
echo "Search Options Control Query test returned 0 items"
failed = ` expr $failed + 1`
fi
2008-01-16 00:58:07 +03:00
echo "Test Search Options Control with Domain Scope Control"
nentries = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER --controls= search_options:1:2,domain_scope:1 '(objectclass=crossRef)' | grep crossRef | wc -l`
if [ $nentries -lt 1 ] ; then
echo "Search Options Control Query test returned 0 items"
failed = ` expr $failed + 1`
fi
2008-10-02 20:49:11 +04:00
function wellkown_object_test( ) {
local guid = $1
local object = $2
local basedns
local dn
local r
local c
local n
local failed = 0
basedns = " <WKGUID= ${ guid } , ${ BASEDN } > <wkGuId= ${ guid } , ${ BASEDN } > "
for dn in ${ basedns } ; do
echo " Test ${ dn } => ${ object } "
r = ` bin/ldbsearch $options $CONFIGURATION -H $p ://$SERVER '(objectClass=*)' -b " ${ dn } " | grep 'dn: ' `
n = ` echo " ${ r } " | grep 'dn: ' | wc -l`
c = ` echo " ${ r } " | grep " ${ object } " | wc -l`
if [ $n -lt 1 ] ; then
echo "Object not found by WKGUID"
failed = ` expr $failed + 1`
continue
fi
if [ $c -lt 1 ] ; then
echo " Wrong object found by WKGUID: [ ${ r } ] "
failed = ` expr $failed + 1`
continue
fi
done
return $failed
}
wellkown_object_test 22B70C67D56E4EFB91E9300FCA3DC1AA ForeignSecurityPrincipals
st = $?
if [ x" $st " != x"0" ] ; then
failed = ` expr $failed + $st `
fi
wellkown_object_test 2FBAC1870ADE11D297C400C04FD8D5CD Infrastructure
st = $?
if [ x" $st " != x"0" ] ; then
failed = ` expr $failed + $st `
fi
wellkown_object_test AB1D30F3768811D1ADED00C04FD8D5CD System
st = $?
if [ x" $st " != x"0" ] ; then
failed = ` expr $failed + $st `
fi
wellkown_object_test A361B2FFFFD211D1AA4B00C04FD7D83A Domain Controllers
st = $?
if [ x" $st " != x"0" ] ; then
failed = ` expr $failed + $st `
fi
wellkown_object_test AA312825768811D1ADED00C04FD8D5CD Computers
st = $?
if [ x" $st " != x"0" ] ; then
failed = ` expr $failed + $st `
fi
wellkown_object_test A9D1CA15768811D1ADED00C04FD8D5CD Users
st = $?
if [ x" $st " != x"0" ] ; then
failed = ` expr $failed + $st `
fi
2007-08-27 05:46:09 +04:00
2007-01-25 15:39:13 +03:00
exit $failed