changeset 20:9e9f243aa3d3 draft

Added script used to run TCK7 in parallel mode.
author Pavel Tisnovsky <ptisnovs@redhat.com>
date Wed, 23 Apr 2014 11:23:32 +0200
parents d8557576f53a
children 5bf9885ea751
files ChangeLog tck7/run_all_parallel.sh
diffstat 2 files changed, 179 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Apr 23 11:19:36 2014 +0200
+++ b/ChangeLog	Wed Apr 23 11:23:32 2014 +0200
@@ -1,3 +1,8 @@
+2014-04-23  Pavel Tisnovsky  <ptisnovs@redhat.com>
+
+	* tck7/run_all_parallel.sh:
+	Added script used to run TCK7 in parallel mode.
+
 2014-04-23  Pavel Tisnovsky  <ptisnovs@redhat.com>
 
 	* tck7/run_all.sh:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tck7/run_all_parallel.sh	Wed Apr 23 11:23:32 2014 +0200
@@ -0,0 +1,174 @@
+#!/usr/bin/env bash
+
+# Daily test builder.
+# 
+#    Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014  Red Hat
+# 
+# This tool is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This tool is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with IcedTea; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+# 
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+#
+# Run TCK against all tested JDKs. All three TCKs (compiler, devtools, runtime) run in parallel.
+#
+# Author: Pavel Tisnovsky
+# e-mail: ptisnovs@redhat.com
+
+JCK_ROOT_DIR=`cat jck.dir`
+JCK_VERSION=7
+JCK_DIR=${JCK_ROOT_DIR}/${JCK_VERSION}
+WORK_DIR=${JCK_ROOT_DIR}/work
+RESULT_DIR=${JCK_ROOT_DIR}/results
+DAILY_TESTS_DIR=`cat dailytests.dir`
+
+DATE=`date +%Y%m%d`
+
+exec > logs/test_$DATE.log 2>&1
+
+TESTS="compiler devtools runtime"
+
+function run_tck()
+{
+    echo "Run tck $1"
+    REPORTDIR=${RESULT_DIR}/${DATE}-${1}
+    export DISPLAY=:0.0
+
+    for tst in ${TESTS}
+    do
+        TEST_NAME=JCK-${tst}-${JCK_VERSION}
+        CURRENT_WORKDIR=${WORK_DIR}/${DATE}-${1}/${tst}
+        CONFIG=${JCK_DIR}/${tst}-config.jti
+
+        mkdir -p ${REPORTDIR}/${tst}
+        mkdir -p ${CURRENT_WORKDIR}
+
+        if [ ${tst} = "compiler" ]
+        then
+            ORIG_PATH="${PATH}"
+            export PATH="${JCK_DIR}/${TEST_NAME}/linux/bin;${ORIG_PATH}"
+            java -Xms128m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -jar ${JCK_DIR}/${TEST_NAME}/lib/javatest.jar \
+             -workdir ${CURRENT_WORKDIR} \
+             -open ${CONFIG} \
+             -verbose:progress -runtests \
+             -writeReport ${REPORTDIR}/${tst} &
+            export PATH="${ORIG_PATH}"
+        fi
+
+        if [ ${tst} = "devtools" ]
+        then
+            ORIG_PATH="${PATH}"
+            export PATH="${JCK_DIR}/${TEST_NAME}/linux/bin;${ORIG_PATH}"
+            java -Xms128m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -jar ${JCK_DIR}/${TEST_NAME}/lib/javatest.jar \
+             -workdir ${CURRENT_WORKDIR} \
+             -open ${CONFIG} \
+             -verbose:progress -runtests \
+             -writeReport ${REPORTDIR}/${tst} &
+            export PATH="${ORIG_PATH}"
+        fi
+
+        if [ ${tst} = "runtime" ]
+        then
+            ORIG_PATH="${PATH}"
+            export PATH="${JCK_DIR}/${TEST_NAME}/linux/bin;${ORIG_PATH}"
+            java -Xms128m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -jar ${JCK_DIR}/${TEST_NAME}/lib/javatest.jar \
+             -workdir ${CURRENT_WORKDIR} \
+             -open ${CONFIG} \
+             -verbose:progress -runtests \
+             -writeReport ${REPORTDIR}/${tst}
+            export PATH="${ORIG_PATH}"
+        fi
+
+    done
+}
+
+function finish_tck()
+{
+    echo "Finish tck $1"
+    REPORTDIR=${RESULT_DIR}/${DATE}-${1}
+    export DISPLAY=:0.0
+    echo "Processing ${REPORTDIR}"
+    for tst in ${TESTS}
+    do
+        TEST_NAME=JCK-${tst}-${JCK_VERSION}
+        CURRENT_WORKDIR=${WORK_DIR}/${DATE}-${1}/${tst}
+        CONFIG=${JCK_DIR}/${tst}-config.jti
+
+        java -Xms128m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -jar ${JCK_DIR}/${TEST_NAME}/lib/javatest.jar \
+             -workDir ${CURRENT_WORKDIR} \
+             -config ${CONFIG} \
+             -verbose:progress \
+             -priorStatus passed,fail,error \
+             -writeReport ${REPORTDIR}/${tst}
+    done
+}
+
+function run_tck1()
+{
+    rm ${JCK_DIR}/jdk
+    ln -s -T ${DAILY_TESTS_DIR}/builds/Icedtea7_forest/openjdk/build/linux-amd64/j2sdk-image/ ${JCK_DIR}/jdk
+    ls -l ${JCK_DIR}/
+
+    run_tck 1
+    sleep 10
+    finish_tck 1
+}
+
+function run_tck2()
+{
+    rm ${JCK_DIR}/jdk
+    ln -s -T ${DAILY_TESTS_DIR}/builds/Icedtea7_forest_2_3/openjdk/build/linux-amd64/j2sdk-image/ ${JCK_DIR}/jdk
+    ls -l ${JCK_DIR}/
+
+    run_tck 2
+    sleep 10
+    finish_tck 2
+}
+
+function run_tck3()
+{
+    rm ${JCK_DIR}/jdk
+    ln -s -T ${DAILY_TESTS_DIR}/builds/Icedtea7_forest_2_4/openjdk/build/linux-amd64/j2sdk-image/ ${JCK_DIR}/jdk
+    ls -l ${JCK_DIR}/
+
+    run_tck 3
+    sleep 10
+    finish_tck 3
+}
+
+function main()
+{
+    echo "Starting"
+    run_tck1
+    run_tck2
+    run_tck3
+}
+
+main
+