| #!/bin/bash |
| # @@@ START COPYRIGHT @@@ |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| # @@@ END COPYRIGHT @@@ |
| # |
| # Runs a specific set of regression tests KNOWN TO PASS on Linux |
| # |
| # As test are proven to run, they should be added to this script |
| # |
| # General flow is: |
| # Define the tests that are known to pass |
| # Source the environment setup |
| # Run the tests |
| # |
| # Assumes that the tests are run from a build tree -- the environment |
| # setup relies on things being in particular places ... |
| # |
| |
| # |
| # Set up the test list |
| # |
| |
| export SQLMX_REGRESS=1 |
| |
| export SEABASE_REGRESS=2 |
| |
| #TEST_SUBDIRS="checktest1 checktest2 core compGeneral executor seabase hive fullstack2 charsets qat privs1 privs2 udr" |
| TEST_SUBDIRS="core compGeneral executor seabase hive fullstack2 charsets qat privs1 privs2 udr" |
| BASE_SUBDIRS="core compGeneral executor seabase hive" |
| OTHER_SUBDIRS="fullstack2 charsets qat privs1 privs2 udr" |
| |
| # |
| # Make sure we're running from the regress subdir |
| # |
| |
| pwd=`echo $PWD` |
| expr index JUNKJUNK `echo $pwd | sed 's/regress$/JUNKJUNK/'` > /dev/null |
| if [ $? -ne 0 ]; then |
| echo "You must be in your regress directory to run this." |
| exit 0 |
| fi |
| |
| diffOnly=0 |
| failedOnly=0 |
| baseTests=0 |
| otherTests=0 |
| |
| OK=-1 |
| while [ $OK -ne 0 ]; do # loop to allow options to appear in any order |
| |
| if [ $OK -gt 0 ]; then |
| shift $OK |
| fi |
| OK=0 |
| |
| if [ "$1" = "-diff" ]; then |
| diffOnly=1 |
| OK=1 |
| export SEABASE_REGRESS_DIFFS=1 |
| fi |
| |
| if [ "$1" = "-failed" ]; then |
| failedOnly=1 |
| OK=1 |
| fi |
| |
| if [ "$1" = "-basetests" ]; then |
| baseTests=1 |
| OK=1 |
| fi |
| |
| if [ "$1" = "-othertests" ]; then |
| otherTests=1 |
| OK=1 |
| fi |
| |
| done |
| |
| if [ $baseTests -ne 0 ]; then |
| TEST_SUBDIRS=$BASE_SUBDIRS |
| elif [ $otherTests -ne 0 ]; then |
| TEST_SUBDIRS=$OTHER_SUBDIRS |
| fi |
| |
| test ! -d $TRAF_HOME/sql/regress && ln -s $TRAF_HOME/../sql/regress $TRAF_HOME/sql/regress |
| test ! -d $TRAF_HOME/sql/sqludr && ln -s $TRAF_HOME/../sql/sqludr $TRAF_HOME/sql/sqludr |
| |
| pushd tools |
| . ./setuplnxenv |
| popd |
| |
| T=`echo $* ` |
| if [ "$T" != "" ]; then |
| TEST_SUBDIRS="$T" |
| fi |
| |
| diffStr= |
| if [ $failedOnly -ne 0 ]; then |
| echo "Running failed tests for $TEST_SUBDIRS" |
| diffStr="-failed " |
| elif [ $diffOnly -ne 0 ]; then |
| echo "Running diffs for $TEST_SUBDIRS" |
| diffStr="-diff " |
| else |
| echo "Running regressions from $TEST_SUBDIRS" |
| fi |
| |
| # |
| # Now that we have our SQF environment, let's make sure it's running |
| # |
| |
| # Check if resource is a cluster |
| SQCONFIG=$TRAF_HOME/sql/scripts/sqconfig |
| CONN_NODE=$(grep -v '^#' $SQCONFIG | grep -m 1 connection | sed -e "s@node-name=\(n[0-9]*\);.*@\1@" | cut -d ';' -f2) |
| |
| # if CONN_NODE is empty then resource is a workstation otherwise resource is a cluster |
| if [ -z $CONN_NODE ] |
| then |
| sqcheck |
| else |
| ssh $CONN_NODE $TRAF_HOME/sql/scripts/sqcheck |
| fi |
| |
| if [[ $? -ne 0 ]]; then |
| echo "" |
| echo "ERROR: The SQF environment must be started and SQL must" |
| echo " be initialized before running regression tests." |
| echo "" |
| exit 1 |
| fi |
| |
| #checktests runs tests from multiple test subdirs. |
| #if runallsb is being used to run checktests along with other tests, |
| #then set a flag so those tests will be skipped by individual test suites. |
| export CHECK_TEST1=0 |
| export CHECK_TEST2=0 |
| for dir in $TEST_SUBDIRS; do |
| if [ "$dir" == "checktest1" ]; then |
| export CHECK_TEST1=1 |
| elif [ "$dir" == "checktest2" ]; then |
| export CHECK_TEST2=1 |
| fi |
| done |
| |
| # |
| # Make sure we have the rundir setup correctly for the tests and run 'em! |
| # |
| |
| if [ $diffOnly -eq 0 ]; then |
| $TRAF_HOME/sql/scripts/ilh_regrinit |
| fi |
| for dir in $TEST_SUBDIRS; do |
| if [[ ! -d $rundir/$dir ]]; then |
| echo "Making $rundir/$dir - continuing with tests" |
| mkdir -p $rundir/$dir |
| else |
| echo "Found $rundir/$dir - continuing with tests" |
| fi |
| |
| if [ $failedOnly -ne 0 ]; then |
| rm -f $dir/runregr-sb.log 2>/dev/null |
| fi |
| |
| case $dir in |
| checktest1) |
| pushd $rundir/checktest1 |
| $scriptsdir/tools/runregr -sb $diffStr |
| popd |
| ;; |
| checktest2) |
| pushd $rundir/checktest2 |
| $scriptsdir/tools/runregr -sb $diffStr |
| popd |
| ;; |
| core) |
| pushd core |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| compGeneral) |
| pushd compGeneral |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| fullstack2) |
| pushd fullstack2 |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| charsets) |
| pushd charsets |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| executor) |
| pushd executor |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| qat) |
| pushd qat |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| udr) |
| pushd udr |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| hive) |
| pushd hive |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| seabase) |
| pushd seabase |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| privs1) |
| pushd privs1 |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| privs2) |
| pushd privs2 |
| ./runregr -sb $diffStr |
| popd |
| ;; |
| |
| *) |
| echo "UNKNOWN TEST_SUBDIR $TEST_SUBDIR ... Exiting" |
| exit 2 |
| ;; |
| esac |
| |
| done |
| |
| cd $rundir |
| for dir in $TEST_SUBDIRS; do |
| echo |
| echo "------------------------------------------------------------------" |
| echo "-- Showing result for $dir" |
| echo "------------------------------------------------------------------" |
| if [ $failedOnly -ne 0 ]; then |
| cat $dir/runregr-failed.log |
| else |
| cat $dir/runregr-sb.log |
| fi |
| done |
| |
| echo "" |
| echo "*****************************************************************" |
| echo "*" |
| echo "* Regression tests complete" |
| echo "*" |
| echo "*****************************************************************" |
| |
| exit |