split operations in inner/outer loops

This commit is contained in:
Pierangelo Masarati 2006-03-03 16:02:34 +00:00
parent 9c1ca54d1a
commit cfa9178822
7 changed files with 144 additions and 36 deletions

View file

@ -56,6 +56,7 @@ usage( char *name )
"-w <passwd> " "-w <passwd> "
"-f <addfile> " "-f <addfile> "
"[-l <loops>] " "[-l <loops>] "
"[-L <outerloops>] "
"[-r <maxretries>] " "[-r <maxretries>] "
"[-t <delay>] " "[-t <delay>] "
"[-F]\n", "[-F]\n",
@ -75,6 +76,7 @@ main( int argc, char **argv )
char *filename = NULL; char *filename = NULL;
char *entry = NULL; char *entry = NULL;
int loops = LOOPS; int loops = LOOPS;
int outerloops = 1;
int retries = RETRIES; int retries = RETRIES;
int delay = 0; int delay = 0;
int friendly = 0; int friendly = 0;
@ -82,7 +84,7 @@ main( int argc, char **argv )
tester_init( "slapd-modify" ); tester_init( "slapd-modify" );
while ( (i = getopt( argc, argv, "FH:h:p:D:w:f:l:r:t:" )) != EOF ) { while ( (i = getopt( argc, argv, "FH:h:p:D:w:f:l:L:r:t:" )) != EOF ) {
switch( i ) { switch( i ) {
case 'F': case 'F':
friendly++; friendly++;
@ -121,6 +123,12 @@ main( int argc, char **argv )
} }
break; break;
case 'L': /* the number of outerloops */
if ( lutil_atoi( &outerloops, optarg ) != 0 ) {
usage( argv[0] );
}
break;
case 'r': /* number of retries */ case 'r': /* number of retries */
if ( lutil_atoi( &retries, optarg ) != 0 ) { if ( lutil_atoi( &retries, optarg ) != 0 ) {
usage( argv[0] ); usage( argv[0] );
@ -162,8 +170,10 @@ main( int argc, char **argv )
uri = tester_uri( uri, host, port ); uri = tester_uri( uri, host, port );
do_addel( uri, manager, &passwd, entry, attrs, for ( i = 0; i < outerloops; i++ ) {
loops, retries, delay, friendly ); do_addel( uri, manager, &passwd, entry, attrs,
loops, retries, delay, friendly );
}
exit( EXIT_SUCCESS ); exit( EXIT_SUCCESS );
} }

View file

@ -55,8 +55,17 @@ do_base( char *uri, struct berval *base, struct berval *pass, int maxloop, int f
static void static void
usage( char *name ) usage( char *name )
{ {
fprintf( stderr, "usage: %s [-h <host>] -p port (-D <dn>|-b <baseDN> [-f <searchfilter>]) -w <passwd> [-l <loops>] [-F] [-I] [-t delay]\n", fprintf( stderr, "usage: %s "
name ); "[-h <host>] "
"-p port "
"(-D <dn>|-b <baseDN> [-f <searchfilter>]) "
"-w <passwd> "
"[-l <loops>] "
"[-L <outerloops>] "
"[-F] "
"[-I] "
"[-t delay]\n",
name );
exit( EXIT_FAILURE ); exit( EXIT_FAILURE );
} }
@ -73,13 +82,14 @@ main( int argc, char **argv )
struct berval pass = { 0, NULL }; struct berval pass = { 0, NULL };
int port = -1; int port = -1;
int loops = LOOPS; int loops = LOOPS;
int outerloops = 1;
int force = 0; int force = 0;
int noinit = 0; int noinit = 0;
int delay = 0; int delay = 0;
tester_init( "slapd-bind" ); tester_init( "slapd-bind" );
while ( (i = getopt( argc, argv, "b:H:h:p:D:w:l:f:FIt:" )) != EOF ) { while ( (i = getopt( argc, argv, "b:H:h:p:D:w:l:L:f:FIt:" )) != EOF ) {
switch( i ) { switch( i ) {
case 'b': /* base DN of a tree of user DNs */ case 'b': /* base DN of a tree of user DNs */
ber_str2bv( optarg, 0, 0, &base ); ber_str2bv( optarg, 0, 0, &base );
@ -114,6 +124,12 @@ main( int argc, char **argv )
} }
break; break;
case 'L': /* the number of outerloops */
if ( lutil_atoi( &outerloops, optarg ) != 0 ) {
usage( argv[0] );
}
break;
case 'f': case 'f':
filter = optarg; filter = optarg;
break; break;
@ -146,11 +162,14 @@ main( int argc, char **argv )
uri = tester_uri( uri, host, port ); uri = tester_uri( uri, host, port );
if ( base.bv_val != NULL ) { for ( i = 0; i < outerloops; i++ ) {
do_base( uri, &base, &pass, ( 20 * loops ), force, noinit, delay ); if ( base.bv_val != NULL ) {
} else { do_base( uri, &base, &pass, loops, force, noinit, delay );
do_bind( uri, dn, &pass, ( 20 * loops ), force, noinit, NULL ); } else {
do_bind( uri, dn, &pass, loops, force, noinit, NULL );
}
} }
exit( EXIT_SUCCESS ); exit( EXIT_SUCCESS );
} }

View file

@ -50,6 +50,7 @@ usage( char *name )
"-w <passwd> " "-w <passwd> "
"-e <entry> " "-e <entry> "
"[-l <loops>] " "[-l <loops>] "
"[-L <outerloops>] "
"[-r <maxretries>] " "[-r <maxretries>] "
"[-t <delay>] " "[-t <delay>] "
"[-F]\n", "[-F]\n",
@ -70,13 +71,14 @@ main( int argc, char **argv )
char *ava = NULL; char *ava = NULL;
char *value = NULL; char *value = NULL;
int loops = LOOPS; int loops = LOOPS;
int outerloops = 1;
int retries = RETRIES; int retries = RETRIES;
int delay = 0; int delay = 0;
int friendly = 0; int friendly = 0;
tester_init( "slapd-modify" ); tester_init( "slapd-modify" );
while ( (i = getopt( argc, argv, "FH:h:p:D:w:e:a:l:r:t:" )) != EOF ) { while ( (i = getopt( argc, argv, "FH:h:p:D:w:e:a:l:L:r:t:" )) != EOF ) {
switch( i ) { switch( i ) {
case 'F': case 'F':
friendly++; friendly++;
@ -119,6 +121,12 @@ main( int argc, char **argv )
} }
break; break;
case 'L': /* the number of outerloops */
if ( lutil_atoi( &outerloops, optarg ) != 0 ) {
usage( argv[0] );
}
break;
case 'r': /* number of retries */ case 'r': /* number of retries */
if ( lutil_atoi( &retries, optarg ) != 0 ) { if ( lutil_atoi( &retries, optarg ) != 0 ) {
usage( argv[0] ); usage( argv[0] );
@ -164,8 +172,11 @@ main( int argc, char **argv )
uri = tester_uri( uri, host, port ); uri = tester_uri( uri, host, port );
do_modify( uri, manager, &passwd, entry, ava, value, for ( i = 0; i < outerloops; i++ ) {
loops, retries, delay, friendly ); do_modify( uri, manager, &passwd, entry, ava, value,
loops, retries, delay, friendly );
}
exit( EXIT_SUCCESS ); exit( EXIT_SUCCESS );
} }

View file

@ -53,6 +53,7 @@ usage( char *name )
"-w <passwd> " "-w <passwd> "
"-e <entry> " "-e <entry> "
"[-l <loops>] " "[-l <loops>] "
"[-L <outerloops>] "
"[-r <maxretries>] " "[-r <maxretries>] "
"[-t <delay>] " "[-t <delay>] "
"[-F]\n", "[-F]\n",
@ -71,13 +72,14 @@ main( int argc, char **argv )
struct berval passwd = { 0, NULL }; struct berval passwd = { 0, NULL };
char *entry = NULL; char *entry = NULL;
int loops = LOOPS; int loops = LOOPS;
int outerloops = 1;
int retries = RETRIES; int retries = RETRIES;
int delay = 0; int delay = 0;
int friendly = 0; int friendly = 0;
tester_init( "slapd-modrdn" ); tester_init( "slapd-modrdn" );
while ( (i = getopt( argc, argv, "FH:h:p:D:w:e:l:r:t:" )) != EOF ) { while ( (i = getopt( argc, argv, "FH:h:p:D:w:e:l:L:r:t:" )) != EOF ) {
switch( i ) { switch( i ) {
case 'F': case 'F':
friendly++; friendly++;
@ -116,6 +118,12 @@ main( int argc, char **argv )
} }
break; break;
case 'L': /* the number of outerloops */
if ( lutil_atoi( &outerloops, optarg ) != 0 ) {
usage( argv[0] );
}
break;
case 'r': /* the number of retries */ case 'r': /* the number of retries */
if ( lutil_atoi( &retries, optarg ) != 0 ) { if ( lutil_atoi( &retries, optarg ) != 0 ) {
usage( argv[0] ); usage( argv[0] );
@ -147,8 +155,11 @@ main( int argc, char **argv )
uri = tester_uri( uri, host, port ); uri = tester_uri( uri, host, port );
do_modrdn( uri, manager, &passwd, entry, for ( i = 0; i < outerloops; i++ ) {
loops, retries, delay, friendly ); do_modrdn( uri, manager, &passwd, entry,
loops, retries, delay, friendly );
}
exit( EXIT_SUCCESS ); exit( EXIT_SUCCESS );
} }

View file

@ -50,9 +50,10 @@ usage( char *name )
"-H <uri> | ([-h <host>] -p <port>) " "-H <uri> | ([-h <host>] -p <port>) "
"-e <entry> " "-e <entry> "
"[-l <loops>] " "[-l <loops>] "
"[-L <outerloops>] "
"[-r <maxretries>] " "[-r <maxretries>] "
"[-t <delay>]\n", "[-t <delay>]\n",
name ); name );
exit( EXIT_FAILURE ); exit( EXIT_FAILURE );
} }
@ -65,12 +66,13 @@ main( int argc, char **argv )
int port = -1; int port = -1;
char *entry = NULL; char *entry = NULL;
int loops = LOOPS; int loops = LOOPS;
int outerloops = 1;
int retries = RETRIES; int retries = RETRIES;
int delay = 0; int delay = 0;
tester_init( "slapd-read" ); tester_init( "slapd-read" );
while ( (i = getopt( argc, argv, "H:h:p:e:l:r:t:" )) != EOF ) { while ( (i = getopt( argc, argv, "H:h:p:e:l:L:r:t:" )) != EOF ) {
switch( i ) { switch( i ) {
case 'H': /* the server uri */ case 'H': /* the server uri */
uri = strdup( optarg ); uri = strdup( optarg );
@ -96,6 +98,12 @@ main( int argc, char **argv )
} }
break; break;
case 'L': /* the number of outerloops */
if ( lutil_atoi( &outerloops, optarg ) != 0 ) {
usage( argv[0] );
}
break;
case 'r': /* the number of retries */ case 'r': /* the number of retries */
if ( lutil_atoi( &retries, optarg ) != 0 ) { if ( lutil_atoi( &retries, optarg ) != 0 ) {
usage( argv[0] ); usage( argv[0] );
@ -125,7 +133,10 @@ main( int argc, char **argv )
uri = tester_uri( uri, host, port ); uri = tester_uri( uri, host, port );
do_read( uri, entry, ( 20 * loops ), retries, delay ); for ( i = 0; i < outerloops; i++ ) {
do_read( uri, entry, loops, retries, delay );
}
exit( EXIT_SUCCESS ); exit( EXIT_SUCCESS );
} }

View file

@ -40,7 +40,8 @@
static void static void
do_search( char *uri, char *manager, struct berval *passwd, do_search( char *uri, char *manager, struct berval *passwd,
char *sbase, char *filter, int maxloop, int maxretries, int delay ); char *sbase, char *filter, int innerloop,
int maxretries, int delay );
static void static void
usage( char *name ) usage( char *name )
@ -53,6 +54,7 @@ usage( char *name )
"-b <searchbase> " "-b <searchbase> "
"-f <searchfilter> " "-f <searchfilter> "
"[-l <loops>] " "[-l <loops>] "
"[-L <outerloops>] "
"[-r <maxretries>] " "[-r <maxretries>] "
"[-t <delay>]\n", "[-t <delay>]\n",
name ); name );
@ -71,12 +73,13 @@ main( int argc, char **argv )
char *sbase = NULL; char *sbase = NULL;
char *filter = NULL; char *filter = NULL;
int loops = LOOPS; int loops = LOOPS;
int outerloops = 1;
int retries = RETRIES; int retries = RETRIES;
int delay = 0; int delay = 0;
tester_init( "slapd-search" ); tester_init( "slapd-search" );
while ( (i = getopt( argc, argv, "b:D:f:H:h:l:p:w:r:t:" )) != EOF ) { while ( (i = getopt( argc, argv, "b:D:f:H:h:l:L:p:w:r:t:" )) != EOF ) {
switch( i ) { switch( i ) {
case 'H': /* the server uri */ case 'H': /* the server uri */
uri = strdup( optarg ); uri = strdup( optarg );
@ -115,6 +118,12 @@ main( int argc, char **argv )
} }
break; break;
case 'L': /* number of loops */
if ( lutil_atoi( &outerloops, optarg ) != 0 ) {
usage( argv[0] );
}
break;
case 'r': /* number of retries */ case 'r': /* number of retries */
if ( lutil_atoi( &retries, optarg ) != 0 ) { if ( lutil_atoi( &retries, optarg ) != 0 ) {
usage( argv[0] ); usage( argv[0] );
@ -146,15 +155,18 @@ main( int argc, char **argv )
uri = tester_uri( uri, host, port ); uri = tester_uri( uri, host, port );
do_search( uri, manager, &passwd, sbase, filter, for ( i = 0; i < outerloops; i++ ) {
( 10 * loops ), retries, delay ); do_search( uri, manager, &passwd, sbase, filter,
loops, retries, delay );
}
exit( EXIT_SUCCESS ); exit( EXIT_SUCCESS );
} }
static void static void
do_search( char *uri, char *manager, struct berval *passwd, do_search( char *uri, char *manager, struct berval *passwd,
char *sbase, char *filter, int maxloop, int maxretries, int delay ) char *sbase, char *filter, int innerloop, int maxretries, int delay )
{ {
LDAP *ld = NULL; LDAP *ld = NULL;
int i = 0, do_retry = maxretries; int i = 0, do_retry = maxretries;
@ -174,7 +186,7 @@ retry:;
if ( do_retry == maxretries ) { if ( do_retry == maxretries ) {
fprintf( stderr, "PID=%ld - Search(%d): base=\"%s\", filter=\"%s\".\n", fprintf( stderr, "PID=%ld - Search(%d): base=\"%s\", filter=\"%s\".\n",
(long) pid, maxloop, sbase, filter ); (long) pid, innerloop, sbase, filter );
} }
rc = ldap_sasl_bind_s( ld, manager, LDAP_SASL_SIMPLE, passwd, NULL, NULL, NULL ); rc = ldap_sasl_bind_s( ld, manager, LDAP_SASL_SIMPLE, passwd, NULL, NULL, NULL );
@ -198,7 +210,7 @@ retry:;
exit( EXIT_FAILURE ); exit( EXIT_FAILURE );
} }
for ( ; i < maxloop; i++ ) { for ( ; i < innerloop; i++ ) {
LDAPMessage *res; LDAPMessage *res;
rc = ldap_search_ext_s( ld, sbase, LDAP_SCOPE_SUBTREE, rc = ldap_search_ext_s( ld, sbase, LDAP_SCOPE_SUBTREE,

View file

@ -46,7 +46,8 @@
#define BINDCMD "slapd-bind" #define BINDCMD "slapd-bind"
#define MAXARGS 100 #define MAXARGS 100
#define MAXREQS 5000 #define MAXREQS 5000
#define LOOPS "100" #define LOOPS 100
#define OUTERLOOPS "1"
#define RETRIES "0" #define RETRIES "0"
#define TSEARCHFILE "do_search.0" #define TSEARCHFILE "do_search.0"
@ -84,6 +85,7 @@ usage( char *name )
"-d <datadir> " "-d <datadir> "
"[-j <maxchild>] " "[-j <maxchild>] "
"[-l <loops>] " "[-l <loops>] "
"[-L <outerloops>] "
"-P <progdir> " "-P <progdir> "
"[-r <maxretries>] " "[-r <maxretries>] "
"[-t <delay>] " "[-t <delay>] "
@ -103,7 +105,8 @@ main( int argc, char **argv )
char *passwd = NULL; char *passwd = NULL;
char *dirname = NULL; char *dirname = NULL;
char *progdir = NULL; char *progdir = NULL;
char *loops = LOOPS; int loops = LOOPS;
char *outerloops = OUTERLOOPS;
char *retries = RETRIES; char *retries = RETRIES;
char *delay = "0"; char *delay = "0";
DIR *datadir; DIR *datadir;
@ -117,6 +120,7 @@ main( int argc, char **argv )
char *sargs[MAXARGS]; char *sargs[MAXARGS];
int sanum; int sanum;
char scmd[MAXPATHLEN]; char scmd[MAXPATHLEN];
char sloops[] = "18446744073709551615UL";
/* read */ /* read */
char *rfile = NULL; char *rfile = NULL;
char *rreqs[MAXREQS]; char *rreqs[MAXREQS];
@ -124,12 +128,14 @@ main( int argc, char **argv )
char *rargs[MAXARGS]; char *rargs[MAXARGS];
int ranum; int ranum;
char rcmd[MAXPATHLEN]; char rcmd[MAXPATHLEN];
char rloops[] = "18446744073709551615UL";
/* addel */ /* addel */
char *afiles[MAXREQS]; char *afiles[MAXREQS];
int anum = 0; int anum = 0;
char *aargs[MAXARGS]; char *aargs[MAXARGS];
int aanum; int aanum;
char acmd[MAXPATHLEN]; char acmd[MAXPATHLEN];
char aloops[] = "18446744073709551615UL";
/* modrdn */ /* modrdn */
char *mfile = NULL; char *mfile = NULL;
char *mreqs[MAXREQS]; char *mreqs[MAXREQS];
@ -137,6 +143,7 @@ main( int argc, char **argv )
char *margs[MAXARGS]; char *margs[MAXARGS];
int manum; int manum;
char mcmd[MAXPATHLEN]; char mcmd[MAXPATHLEN];
char mloops[] = "18446744073709551615UL";
/* modify */ /* modify */
char *modfile = NULL; char *modfile = NULL;
char *modreqs[MAXREQS]; char *modreqs[MAXREQS];
@ -145,6 +152,7 @@ main( int argc, char **argv )
char *modargs[MAXARGS]; char *modargs[MAXARGS];
int modanum; int modanum;
char modcmd[MAXPATHLEN]; char modcmd[MAXPATHLEN];
char modloops[] = "18446744073709551615UL";
/* bind */ /* bind */
char *bfile = NULL; char *bfile = NULL;
char *breqs[MAXREQS]; char *breqs[MAXREQS];
@ -153,12 +161,13 @@ main( int argc, char **argv )
char *bargs[MAXARGS]; char *bargs[MAXARGS];
int banum; int banum;
char bcmd[MAXPATHLEN]; char bcmd[MAXPATHLEN];
char bloops[] = "18446744073709551615UL";
char *friendlyOpt = NULL; char *friendlyOpt = NULL;
tester_init( "slapd-tester" ); tester_init( "slapd-tester" );
while ( (i = getopt( argc, argv, "D:d:FH:h:j:l:P:p:r:t:w:" )) != EOF ) { while ( (i = getopt( argc, argv, "D:d:FH:h:j:l:L:P:p:r:t:w:" )) != EOF ) {
switch( i ) { switch( i ) {
case 'D': /* slapd manager */ case 'D': /* slapd manager */
manager = ArgDup( optarg ); manager = ArgDup( optarg );
@ -187,7 +196,13 @@ main( int argc, char **argv )
break; break;
case 'l': /* the number of loops per client */ case 'l': /* the number of loops per client */
loops = strdup( optarg ); if ( lutil_atoi( &loops, optarg ) != 0 ) {
usage( argv[0] );
}
break;
case 'L': /* the number of outerloops per client */
outerloops = strdup( optarg );
break; break;
case 'P': /* prog directory */ case 'P': /* prog directory */
@ -301,6 +316,13 @@ main( int argc, char **argv )
break; break;
} }
snprintf( sloops, sizeof( sloops ), "%d", 10 * loops );
snprintf( rloops, sizeof( rloops ), "%d", 20 * loops );
snprintf( aloops, sizeof( aloops ), "%d", loops );
snprintf( mloops, sizeof( mloops ), "%d", loops );
snprintf( modloops, sizeof( modloops ), "%d", loops );
snprintf( bloops, sizeof( bloops ), "%d", 20 * loops );
/* /*
* generate the search clients * generate the search clients
*/ */
@ -323,7 +345,9 @@ main( int argc, char **argv )
sargs[sanum++] = "-w"; sargs[sanum++] = "-w";
sargs[sanum++] = passwd; sargs[sanum++] = passwd;
sargs[sanum++] = "-l"; sargs[sanum++] = "-l";
sargs[sanum++] = loops; sargs[sanum++] = sloops;
sargs[sanum++] = "-L";
sargs[sanum++] = outerloops;
sargs[sanum++] = "-r"; sargs[sanum++] = "-r";
sargs[sanum++] = retries; sargs[sanum++] = retries;
sargs[sanum++] = "-t"; sargs[sanum++] = "-t";
@ -352,7 +376,9 @@ main( int argc, char **argv )
rargs[ranum++] = port; rargs[ranum++] = port;
} }
rargs[ranum++] = "-l"; rargs[ranum++] = "-l";
rargs[ranum++] = loops; rargs[ranum++] = rloops;
rargs[ranum++] = "-L";
rargs[ranum++] = outerloops;
rargs[ranum++] = "-r"; rargs[ranum++] = "-r";
rargs[ranum++] = retries; rargs[ranum++] = retries;
rargs[ranum++] = "-t"; rargs[ranum++] = "-t";
@ -383,7 +409,9 @@ main( int argc, char **argv )
margs[manum++] = "-w"; margs[manum++] = "-w";
margs[manum++] = passwd; margs[manum++] = passwd;
margs[manum++] = "-l"; margs[manum++] = "-l";
margs[manum++] = loops; margs[manum++] = mloops;
margs[manum++] = "-L";
margs[manum++] = outerloops;
margs[manum++] = "-r"; margs[manum++] = "-r";
margs[manum++] = retries; margs[manum++] = retries;
margs[manum++] = "-t"; margs[manum++] = "-t";
@ -417,7 +445,9 @@ main( int argc, char **argv )
modargs[modanum++] = "-w"; modargs[modanum++] = "-w";
modargs[modanum++] = passwd; modargs[modanum++] = passwd;
modargs[modanum++] = "-l"; modargs[modanum++] = "-l";
modargs[modanum++] = loops; modargs[modanum++] = modloops;
modargs[modanum++] = "-L";
modargs[modanum++] = outerloops;
modargs[modanum++] = "-r"; modargs[modanum++] = "-r";
modargs[modanum++] = retries; modargs[modanum++] = retries;
modargs[modanum++] = "-t"; modargs[modanum++] = "-t";
@ -453,7 +483,9 @@ main( int argc, char **argv )
aargs[aanum++] = "-w"; aargs[aanum++] = "-w";
aargs[aanum++] = passwd; aargs[aanum++] = passwd;
aargs[aanum++] = "-l"; aargs[aanum++] = "-l";
aargs[aanum++] = loops; aargs[aanum++] = aloops;
aargs[aanum++] = "-L";
aargs[aanum++] = outerloops;
aargs[aanum++] = "-r"; aargs[aanum++] = "-r";
aargs[aanum++] = retries; aargs[aanum++] = retries;
aargs[aanum++] = "-t"; aargs[aanum++] = "-t";
@ -483,7 +515,9 @@ main( int argc, char **argv )
bargs[banum++] = port; bargs[banum++] = port;
} }
bargs[banum++] = "-l"; bargs[banum++] = "-l";
bargs[banum++] = loops; bargs[banum++] = bloops;
bargs[banum++] = "-L";
bargs[banum++] = outerloops;
#if 0 #if 0
bargs[banum++] = "-r"; bargs[banum++] = "-r";
bargs[banum++] = retries; bargs[banum++] = retries;