view tck7/run_all.sh @ 18:a75e3cbf5b1c draft

Added script used to run TCK7.
author Pavel Tisnovsky <ptisnovs@redhat.com>
date Tue, 22 Apr 2014 13:35:48 +0200
parents
children d8557576f53a
line wrap: on
line source

#!/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.
#
# 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}

        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}
        rc=$?
        if [ $rc -ne 0 ]; then
            log "${RED}test failed ${BLUE}${tst}${RESET}"
        else
            log "${GREEN}test passed ${BLUE}${tst}${RESET}"
        fi

        export PATH="${ORIG_PATH}"
    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_DIRJCK_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_DIRJCK_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