[Libreoffice-commits] core.git: bin/check-elf-dynamic-objects

Norbert Thiebaud nthiebaud at gmail.com
Tue Oct 11 03:28:14 UTC 2016


 bin/check-elf-dynamic-objects |   75 +++++++++++++++++++++++++++++++++++++++---
 1 file changed, 70 insertions(+), 5 deletions(-)

New commits:
commit 4189551d56b4c6f37e8aebb856411794ea98e44f
Author: Norbert Thiebaud <nthiebaud at gmail.com>
Date:   Mon Oct 10 22:21:14 2016 -0500

    Support parallelism for check-elf-dynamic-objects
    
    using that and restricting the tests to the content of
    instdir/program bring the runtime on out slave builder from
    4 minutes+ to just above one second
    
    added -d <path> to override INSTDIR
    added -p to indicate parallelism (no limit for now, so be cautious
    with the -d you point too
    
    Change-Id: I14c140f54bea329b82960843a6db44bfaf6c7108

diff --git a/bin/check-elf-dynamic-objects b/bin/check-elf-dynamic-objects
index b34af3e..fa46cb7 100755
--- a/bin/check-elf-dynamic-objects
+++ b/bin/check-elf-dynamic-objects
@@ -12,7 +12,51 @@
 
 set -euo pipefail
 
-files=$(find "${INSTDIR}" -type f)
+PARA=1
+check_path="${INSTDIR:-.}/program"
+
+while [ "${1:-}" != "" ]; do
+    parm=${1%%=*}
+    arg=${1#*=}
+    has_arg=
+    if [ "${1}" != "${parm?}" ] ; then
+        has_arg=1
+    else
+        arg=""
+    fi
+
+    case "${parm}" in
+        --dir|-d)
+	    if [ "$has_arg" ] ; then
+		check_path=$arg
+	    else
+		shift
+		check_path=$1
+	    fi
+            ;;
+        -p)
+	    # this sound counter intuitive. but the idea
+            # is to possibly support -p <n>
+            # in the mean time 0 = nolimit and -p 1 would mean
+            # the current default: serialize
+            PARA=0
+            ;;
+        -*)
+            die "Invalid option $1"
+            ;;
+        *)
+            if [ "$DO_NEW" = 1 ] ; then
+                REPO="$1"
+            else
+                die "Invalid argument $1"
+            fi
+            ;;
+    esac
+    shift
+done
+
+
+files=$(find "${check_path}" -type f)
 # all RPATHs should point to ${INSTDIR}/program so that's the files they find
 programfiles=$(basename -a $(echo ${files} | grep -o '/program/[^/]* '))
 
@@ -29,10 +73,10 @@ kde4whitelist="libkio.so.5 libkfile.so.4 libkdeui.so.5 libkdecore.so.5 libQtNetw
 avahiwhitelist="libdbus-glib-1.so.2 libdbus-1.so.3 libgobject-2.0.so.0 libglib-2.0.so.0 libavahi-common.so.3 libavahi-client.so.3"
 kerberoswhitelist="libgssapi_krb5.so.2 libcom_err.so.2 libkrb5.so.3"
 
-status=0
+check_one_file()
+{
+local file="$1"
 
-for file in ${files}
-do
     skip=0
     whitelist="${globalwhitelist}"
     case "${file}" in
@@ -132,7 +176,28 @@ do
             esac
         fi
     fi
-done
+}
+status=0
+
+if [ "$PARA" = "1" ] ; then
+    for file in ${files}
+    do
+	check_one_file $file
+    done
+else
+    rm -f check_elf.out
+    for file in ${files}
+    do
+	(
+	check_one_file $file
+	)>> check_elf.out &
+    done
 
+    if [ -s check_elf.out ] ; then
+	cat check_elf.out
+	status=1
+    fi
+    rm check_elf.out
+fi
 exit ${status}
 


More information about the Libreoffice-commits mailing list