[mpich-commits] [mpich] MPICH primary repository branch, master, updated. v3.2b4-222-gbf23698

Service Account noreply at mpich.org
Wed Sep 16 21:44:24 CDT 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".

The branch, master has been updated
       via  bf2369811689b096c7f82046d68c5ecd5d80e6dc (commit)
       via  2824d828421ad9b5d85e29f7cf14e339b882b27e (commit)
      from  df38c36e7d88d3bc5d87fc2506802a47043fdd96 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/bf2369811689b096c7f82046d68c5ecd5d80e6dc

commit bf2369811689b096c7f82046d68c5ecd5d80e6dc
Author: Yanfei Guo <yguo at anl.gov>
Date:   Tue Sep 15 16:13:03 2015 -0500

    maint/jenkins: fix a bug in the set-xfail.sh script
    
    The condition for sourcing apply-xfail.sh was wrong. This may results
    incorrectly setting xfails under certain cases.
    
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/maint/jenkins/set-xfail.sh b/maint/jenkins/set-xfail.sh
index 918cfa0..7c4eb46 100755
--- a/maint/jenkins/set-xfail.sh
+++ b/maint/jenkins/set-xfail.sh
@@ -95,7 +95,7 @@ while read -r line; do
     fi
 done < "$XFAIL_CONF"
 
-if [[ -f $XFAIL_CONF ]]; then
+if [[ -f $SCRIPT ]]; then
     source $SCRIPT
 fi
 

http://git.mpich.org/mpich.git/commitdiff/2824d828421ad9b5d85e29f7cf14e339b882b27e

commit 2824d828421ad9b5d85e29f7cf14e339b882b27e
Author: Yanfei Guo <yguo at anl.gov>
Date:   Tue Sep 15 12:57:19 2015 -0500

    maint/jenkins: add script to skip tests
    
    Skip test is set in maint/jenkins/skip_test.conf. It allows skipping
    all tests for a given combination of job and configurations
    including compiler, jenkins_configure, netmod, and SLURM queue.
    
    When Jenkins uses maint/jenkins/test-worker.sh to build project, it
    will execute maint/jenkins/skip_test.sh with the jobname, compiler,
    configure options, netmod, and queue right before initializing the
    build environment.  maint/jenkins/skip_test.sh will read the
    skip_test.conf file and generate the summary.junit.xml file based on
    the conditions set in the skip_test.conf.
    
    Signed-off-by: Ken Raffenetti <raffenet at mcs.anl.gov>

diff --git a/maint/jenkins/skip_test.conf b/maint/jenkins/skip_test.conf
new file mode 100644
index 0000000..5bb79fa
--- /dev/null
+++ b/maint/jenkins/skip_test.conf
@@ -0,0 +1,22 @@
+# Contitional skip test settings
+#
+# Syntax (similar to a cron file):
+#   [jobname] [compiler] [jenkins_configure] [netmod] [queue]
+#   Note that the [jobname] allows partial matches (see examples). Other
+#   conditions only allows exact matches.
+#   The actual allowed combinations are depending on the Jenkins job. For
+#   example,
+#     mxm * * tcp *
+#   will have no effect since none of the mxm jobs has tcp netmod in the
+#   configuration.
+#
+# Examples:
+#   mxm gnu debug * *
+#   This will skip all tests when the job is "mpich-master-mxm" or
+#   "mpich-review-mxm", the compiler is "gnu", and the jenkins_configure is
+#   "debug".
+#
+#   master-ubuntu * * * ubuntu32 sed -i "..."
+#   This will skip all test when the job is "mpich-master-ubuntu" and the
+#   running queue is "ubuntu32".
+#
diff --git a/maint/jenkins/skip_test.sh b/maint/jenkins/skip_test.sh
new file mode 100755
index 0000000..d832b96
--- /dev/null
+++ b/maint/jenkins/skip_test.sh
@@ -0,0 +1,112 @@
+#!/bin/zsh
+
+jobname=""
+compiler=""
+jenkins_configure=""
+queue=""
+netmod=""
+
+SKIP_TEST_CONF="maint/jenkins/skip_test.conf"
+TEST_SUMMARY="test/mpi/summary.junit.xml"
+
+#####################################################################
+## Initialization
+#####################################################################
+
+while getopts ":f:j:c:o:q:m:s:" opt; do
+    case "$opt" in
+        j)
+            jobname=$OPTARG ;;
+        c)
+            compiler=$OPTARG ;;
+        o)
+            jenkins_configure=$OPTARG ;;
+        q)
+            queue=$OPTARG ;;
+        m)
+            netmod=$OPTARG ;;
+        f)
+            SKIP_TEST_CONF=$OPTARG ;;
+        s)
+            TEST_SUMMARY=$OPTARG ;;
+        \?)
+            echo "Invalid option: -$OPTARG" >&2
+            exit 1
+    esac
+done
+
+#####################################################################
+## Main (
+#####################################################################
+
+SkipTestCond() {
+    local job="$1"
+    local comp="$2"
+    local option="$3"
+    local nmod="$4"
+    local q="$5"
+
+    local state=0
+
+    if [[ ! "$job" == "*" ]]; then
+        # clean up jobname and do substring match
+        if [[ ! "${jobname%%,*}" == *$job* ]]; then state=1; fi
+    fi
+
+    if [[ ! "$comp" == "*" ]]; then
+        if [[ ! "$compiler" == "$comp" ]]; then state=1; fi
+    fi
+
+    if [[ ! "$option" == "*" ]]; then
+        if [[ ! "$jenkins_configure" == "$option" ]]; then state=1; fi
+    fi
+
+    if [[ ! "$nmod" == "*" ]]; then
+        if [[ ! "$netmod" == "$nmod" ]]; then state=1; fi
+    fi
+
+    if [[ ! "$q" == "*" ]]; then
+        if [[ ! "$queue" == "$q" ]]; then state=1; fi
+    fi
+
+    echo "$state"
+}
+
+SkipTest() {
+    TEST_SUMMARY_DIR=$(dirname $TEST_SUMMARY)
+    if [[ -d "$TEST_SUMMARY_DIR" ]]; then
+        mkdir -p "$TEST_SUMMARY_DIR"
+    fi
+    cat > "$TEST_SUMMARY" << "EOF"
+<testsuites>
+<testsuite failures="0" errors="0" skipped="0" tests="1" date="$date" name="summary_junit_xml">
+<testcase name="none"/>
+<system-out/>
+<system-err/>
+</testsuite>
+</testsuites>
+EOF
+}
+
+if [[ -f "$TEST_SUMMARY" ]]; then
+    rm "$TEST_SUMMARY"
+fi
+
+while read -r line; do
+    #clean leading whitespaces
+    line=$(echo "$line" | sed "s/^ *//g")
+    line=$(echo "$line" | sed "s/ *$//g")
+    echo $line
+    # skip comment line
+    if test -x "$line" -o "${line:1}" = "#" ; then
+        continue
+    fi
+
+    arr=( $(echo $line) )
+    if [[ "0" == $(SkipTestCond "${arr[1]}" "${arr[2]}" "${arr[3]}" "${arr[4]}" "${arr[5]}") ]]; then
+        SkipTest
+        exit 0
+    fi
+done < "$SKIP_TEST_CONF"
+
+exit 0
diff --git a/maint/jenkins/test-worker.sh b/maint/jenkins/test-worker.sh
index 435011d..68a5cd2 100755
--- a/maint/jenkins/test-worker.sh
+++ b/maint/jenkins/test-worker.sh
@@ -45,14 +45,36 @@ done
 
 cd $WORKSPACE
 
-TMP_WORKSPACE=$(mktemp -d /sandbox/jenkins.tmp.XXXXXXXX)
-SRC=$WORKSPACE
-TMP_SRC=$TMP_WORKSPACE
-
 if test "$GIT_BRANCH" = "" ; then
     BUILD_MODE="nightly"
 fi
 
+case "$BUILD_MODE" in
+    "nightly")
+        if [[ -x mpich-master/maint/jenkins/skip_test.sh ]]; then
+            ./mpich-master/maint/jenkins/skip_test.sh -j $JOB_NAME -c $compiler -o $jenkins_configure -q $queue -m $_netmod \
+                -s mpich-master/test/mpi/summary.junit.xml
+            if [[ -f mpich-master/test/mpi/summary.junit.xml ]]; then
+                exit 0
+            fi
+        fi
+        ;;
+    "per-commit")
+        if [[ -x maint/jenkins/skip_test.sh ]]; then
+            ./maint/jenkins/skip_test.sh -j $JOB_NAME -c $compiler -o $jenkins_configure -q $queue -m $_netmod \
+                -s test/mpi/summary.junit.xml
+            if [[ -f test/mpi/summary.junit.xml ]]; then
+                exit 0
+            fi
+        fi
+        ;;
+esac
+
+
+TMP_WORKSPACE=$(mktemp -d /sandbox/jenkins.tmp.XXXXXXXX)
+SRC=$WORKSPACE
+TMP_SRC=$TMP_WORKSPACE
+
 # Preparing the source
 case "$BUILD_MODE" in
     "nightly")

-----------------------------------------------------------------------

Summary of changes:
 maint/jenkins/set-xfail.sh                   |    2 +-
 maint/jenkins/skip_test.conf                 |   22 ++++++++++++
 maint/jenkins/{set-xfail.sh => skip_test.sh} |   48 +++++++++++++++----------
 maint/jenkins/test-worker.sh                 |   30 ++++++++++++++--
 4 files changed, 78 insertions(+), 24 deletions(-)
 create mode 100644 maint/jenkins/skip_test.conf
 copy maint/jenkins/{set-xfail.sh => skip_test.sh} (67%)


hooks/post-receive
-- 
MPICH primary repository


More information about the commits mailing list