]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#9632 add TESTINST for running tests concurrently
authorHoward Chu <hyc@openldap.org>
Fri, 13 Aug 2021 13:41:53 +0000 (14:41 +0100)
committerOndřej Kuzník <ondra@openldap.org>
Wed, 8 Sep 2021 14:43:36 +0000 (14:43 +0000)
Also add partests Makefile target to run tests in parallel

tests/Makefile.in
tests/scripts/all
tests/scripts/defines.sh
tests/scripts/lloadd-all

index bb4fc565e45fc4f130178e5f5515a09d43f9b615..1010cc675e56d78625f76b59f9f77000b2d0bbba 100644 (file)
@@ -33,6 +33,24 @@ alltests: tests
        @$(MAKE) ldif
        @$(MAKE) wt
 
+# parallel test targets
+partests: pmdb plloadd psql pldif pwt
+
+pmdb:
+       @$(MAKE) mdb TESTINST=0 > testout.0
+
+plloadd:
+       @$(MAKE) lloadd TESTINST=1 > testout.1
+
+psql:
+       @$(MAKE) sql TESTINST=2 > testout.2
+
+pldif:
+       @$(MAKE) ldif TESTINST=3 > testout.3
+
+pwt:
+       @$(MAKE) wt TESTINST=4 > testout.4
+
 mdb test-mdb:  mdb-$(BUILD_MDB)
 mdb-no:
        @echo "run configure with --enable-mdb to run MDB tests"
index fb4047a5389c0d68eeceed6bdd893f8969a8d056..af90d2f9c2d6021e4fca54d475208771ff7bdc2b 100755 (executable)
@@ -50,16 +50,26 @@ for CMD in $SRCDIR/scripts/test*; do
 
        BCMD=`basename $CMD`
        if [ -x "$CMD" ]; then
-               echo ">>>>> Starting ${TB}$BCMD${TN} for $BACKEND..."
+               MSG=">>>>> Starting ${TB}$BCMD${TN} for $BACKEND..."
+               [ -n "$TESTINST" ] && echo "$MSG" >&2
+               echo "$MSG"
                START=`date +%s`
-               $CMD
+               if [ -n "$TESTINST" ]; then
+                       $CMD 2>&1
+               else
+                       $CMD
+               fi
                RC=$?
                END=`date +%s`
 
                if test $RC -eq 0 ; then
-                       echo ">>>>> $BCMD completed ${TB}OK${TN} for $BACKEND after $(( $END - $START )) seconds."
+                       MSG=">>>>> Finished $BCMD for $BACKEND after $(( $END - $START )) seconds."
+                       [ -n "$TESTINST" ] && echo "$MSG" >&2
+                       echo "$MSG"
                else
-                       echo ">>>>> $BCMD ${TB}failed${TN} for $BACKEND after $(( $END - $START )) seconds"
+                       MSG=">>>>> Failed   $BCMD for $BACKEND after $(( $END - $START )) seconds"
+                       [ -n "$TESTINST" ] && echo "$MSG" >&2
+                       echo "$MSG"
                        FAILCOUNT=`expr $FAILCOUNT + 1`
 
                        if [ -n "$NOEXIT" ]; then
@@ -70,7 +80,9 @@ for CMD in $SRCDIR/scripts/test*; do
                        fi
                fi
        else
-               echo ">>>>> Skipping ${TB}$BCMD${TN} for $BACKEND."
+               MSG=">>>>> Skipping ${TB}$BCMD${TN} for $BACKEND."
+               [ -n "$TESTINST" ] && echo "$MSG" >&2
+               echo "$MSG"
                SKIPCOUNT=`expr $SKIPCOUNT + 1`
                RC="-"
        fi
index 301f8974fd38750fd7e8e81bc9b06d7ce091fdba..c9556cbac342b15358183de0c3bb6e2721bdeaa1 100755 (executable)
@@ -17,6 +17,14 @@ umask 077
 
 TESTWD=`pwd`
 
+# per instance
+TESTDIR=${USER_TESTDIR-$TESTWD/testrun}
+BASEPORT=${SLAPD_BASEPORT-9010}
+if [ -n "$TESTINST" ]; then
+       TESTDIR="$TESTDIR.$TESTINST"
+       BASEPORT=`expr $BASEPORT + $TESTINST \* 10`
+fi
+
 # backends
 BACKLDAP=${AC_ldap-ldapno}
 BACKMETA=${AC_meta-metano}
@@ -64,7 +72,6 @@ TIMEOUT=${TIMEOUT-8}
 # dirs
 PROGDIR=./progs
 DATADIR=${USER_DATADIR-./testdata}
-TESTDIR=${USER_TESTDIR-$TESTWD/testrun}
 SCHEMADIR=${USER_SCHEMADIR-./schema}
 case "$SCHEMADIR" in
 .*)    ABS_SCHEMADIR="$TESTWD/$SCHEMADIR" ;;
@@ -255,7 +262,6 @@ SLAPDMTREAD=$PROGDIR/slapd-mtread
 LVL=${SLAPD_DEBUG-0x4105}
 LOCALHOST=localhost
 LOCALIP=127.0.0.1
-BASEPORT=${SLAPD_BASEPORT-9010}
 PORT1=`expr $BASEPORT + 1`
 PORT2=`expr $BASEPORT + 2`
 PORT3=`expr $BASEPORT + 3`
index 13fee8d97dcd75ccade1c51e89d76173a098a4a6..df62ca54e41afa7bd6d068d48eeceb6dc54da1c1 100755 (executable)
@@ -49,16 +49,26 @@ for CMD in $SRCDIR/scripts/lloadd/test*; do
 
     BCMD=`basename $CMD`
     if [ -x "$CMD" ]; then
-        echo ">>>>> Starting ${TB}$BCMD${TN} for $BACKEND..."
+        MSG=">>>>> Starting ${TB}$BCMD${TN} for lloadd+$BACKEND..."
+        [ -n "$TESTINST" ] && echo "$MSG" >&2
+        echo "$MSG"
         START=`date +%s`
-        $CMD
+        if [ -n "$TESTINST" ]; then
+            $CMD 2>&1
+        else
+            $CMD
+        fi
         RC=$?
         END=`date +%s`
 
         if test $RC -eq 0 ; then
-            echo ">>>>> $BCMD completed ${TB}OK${TN} for $BACKEND after $(( $END - $START )) seconds."
+            MSG=">>>>> Finished $BCMD for lloadd+$BACKEND after $(( $END - $START )) seconds."
+            [ -n "$TESTINST" ] && echo "$MSG" >&2
+            echo "$MSG"
         else
-            echo ">>>>> $BCMD ${TB}failed${TN} for $BACKEND after $(( $END - $START )) seconds"
+            MSG=">>>>> Failed   $BCMD for lloadd+$BACKEND after $(( $END - $START )) seconds"
+            [ -n "$TESTINST" ] && echo "$MSG" >&2
+            echo "$MSG"
             FAILCOUNT=`expr $FAILCOUNT + 1`
 
             if [ -n "$NOEXIT" ]; then
@@ -69,7 +79,9 @@ for CMD in $SRCDIR/scripts/lloadd/test*; do
             fi
         fi
     else
-        echo ">>>>> Skipping ${TB}$BCMD${TN} for $BACKEND."
+        MSG=">>>>> Skipping ${TB}$BCMD${TN} for lloadd+$BACKEND."
+        [ -n "$TESTINST" ] && echo "$MSG" >&2
+        echo "$MSG"
         SKIPCOUNT=`expr $SKIPCOUNT + 1`
         RC="-"
     fi