s4:torture: add a test-suite for VSS
[bbaumbach/samba-autobuild/.git] / examples / ad-bench / time_ldap.sh
1 #!/bin/bash
2
3 ITERATIONS=100
4
5 source `dirname $0`/utils.sh
6
7 PRINCIPAL=$(get_principal $1)
8 PASSWORD=$(get_password $1)
9 REALM=$(get_realm $1)
10 NT_DOM=$(get_nt_dom $1)
11 SERVER=$2
12
13 search_users () {
14         ${NET} ads search '(objectCategory=user)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
15         RET=$?
16         if [ $RET -ne 0 ]; then
17                 echo "${NET} returned error: $RET"
18                 exit 1
19         fi
20 }
21
22 search_groups () {
23         ${NET} ads search '(objectCategory=group)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
24         if [ $RET -ne 0 ]; then
25                 echo "${NET} returned error: $RET"
26                 exit 1
27         fi
28 }
29
30 search_computers () {
31         ${NET} ads search '(objectCategory=computer)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
32         if [ $RET -ne 0 ]; then
33                 echo "${NET} returned error: $RET"
34                 exit 1
35         fi
36 }
37
38 search_wildcard () {
39         ${NET} ads search '(objectCategory=*)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
40         if [ $RET -ne 0 ]; then
41                 echo "${NET} returned error: $RET"
42                 exit 1
43         fi
44 }
45
46 search_unindexed () {
47         ${NET} ads search '(description=Built-in account for adminstering the computer/domain)' sAMAccountName -k -s $CONFIG_FILE -S ${SERVER} > /dev/null
48         if [ $RET -ne 0 ]; then
49                 echo "${NET} returned error: $RET"
50                 exit 1
51         fi
52 }
53
54 set_up () {
55         set_krb_env
56         setup_kinit
57         call_kinit "${PRINCIPAL}" "${PASSWORD}"
58         write_configfile "${REALM}" "${NT_DOM}"
59 }
60
61 tear_down () {
62         ${KDESTROY}
63         restore_krb_env
64 }
65
66 set_up
67
68 echo -e "\tSEARCH INDEXED $2"
69
70 START_TIME=$(start_timer)
71
72 echo -en "\t"
73 for i in $( ${SEQ} 1 $ITERATIONS ); do
74         search_users
75         search_groups
76         search_computers
77         echo -n "."
78 done
79 echo "done"
80
81 STOP_TIME=$(stop_timer)
82
83 TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
84
85 echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
86
87 LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
88
89 echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
90
91 ########################
92
93 echo -e "\tSEARCH WILDCARD $2"
94
95 START_TIME=$(start_timer)
96
97 echo -en "\t"
98 for i in $( ${SEQ} 1 $ITERATIONS ); do
99         search_wildcard
100         echo -n "."
101 done
102 echo "done"
103
104 STOP_TIME=$(stop_timer)
105
106 TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
107
108 echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
109
110 LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
111
112 echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
113
114 ########################
115
116 echo -e "\tSEARCH UNINDEXED $2"
117
118 START_TIME=$(start_timer)
119
120 echo -en "\t"
121 for i in $( ${SEQ} 1 $ITERATIONS ); do
122         search_unindexed
123         echo -n "."
124 done
125 echo "done"
126
127 STOP_TIME=$(stop_timer)
128
129 TOTAL_TIME=$( total_time $START_TIME $STOP_TIME )
130
131 echo -e "\t\ttotal time:\t\t${TOTAL_TIME}s"
132
133 LOGINS_PER_MINUTE=$(iterations_per_minute $START_TIME $STOP_TIME $ITERATIONS)
134
135 echo -e "\t\titerations/min:\t\t$LOGINS_PER_MINUTE"
136
137 tear_down