| <!-- |
| 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. |
| --> |
| |
| 1. General |
| ********** |
| These scripts are based on a directory structure where |
| |
| TESTEXECUTIONDIR (defined in the testenv.sh) specifies where |
| tests are executed, and thus where Derby logs and db-files etc. are |
| initially placed, and |
| |
| DERBYDIR (defined in env.sh) specifies where we place dirs and files |
| keeping info on update, build and final test reports. |
| |
| In our environment we execute tests (via rsh/ssh) on a set of hosts |
| listed in HOSTLISTFILE(defined in env). |
| |
| The list of Derby svn revisions we have tested are kept in |
| REVISIONLIST(defined in env). |
| |
| 'env' is a "definition" script which is sourced by most other scripts. |
| All scripts must also be told where 'env' and other scripts are found: |
| TOOLDIR="${DERBYDIR}/${BRANCH_DIR}/tools/testing/reporting/scripts" |
| |
| |
| |
| 2.Update, build, test. |
| ********************* |
| I use a script 'updateBuildTestDerby' to initiate the full update, |
| build, test sequence. |
| |
| First we define the Derby update and build environement by sourcing |
| 'env.sh' which we have in ${DERBYDIR}. |
| 'testenv.sh' defines the Derby test environment. |
| ${DERBYDIR}.) |
| |
| |
| 2.1. ${TOOLDIR}/updateDerby |
| --------------------------- |
| NB! assumes 'derby_source' is defined. (In our case that would |
| actually be ${DERBYDIR}/trunk.) |
| |
| 'updateDerby' creates update status files in ${UPDATELOGDIR}. |
| If the update was successful ${REVISIONLIST} is updated and |
| ${UPDATELOGDIR}/updateOK is created to flag succesful update. |
| |
| The script may also send mail to inform of the update status |
| (${TOOLDIR}/textMail). |
| |
| |
| 2.2. ${TOOLDIR}/buildDerby |
| -------------------------- |
| NB! assumes 'derby_source' is defined. |
| |
| If ${UPDATELOGDIR}/updateOK exists we will build Derby. |
| |
| We do 'ant clobber', 'ant all' and 'ant buildjars'. |
| |
| 'buildDerby' creates build status files in ${BUIDLOGDIR}. |
| ${BUILDLOGDIR}/builOK is created to flag succesful build. |
| |
| The script may also send mail to inform of the build |
| status(${TOOLDIR}/textMail). |
| |
| |
| 2.3. Run tests |
| -------------- |
| ${TOOLDIR}/testDerby ${HOSTLISTFILE} uses rsh/ssh to call |
| ${TOOLDIR}/startDerbyTests on all test hosts in ${HOSTLISTFILE}. |
| (In our env. I haven't been able to automatically do this via rsh to |
| CYGWIN hosts yet ....) |
| |
| ${TOOLDIR}/startDerbyTests essentially calls ${TOOLDIR}/runAllTests |
| which is the main script for running tests and collecting initial test |
| results. |
| |
| ${TOOLDIR}/runAllTests takes |
| 1) a file listing Derby test suites to be run and |
| 2) the full path to where test results are put. |
| |
| ${TOOLDIR}/runAllTests creates the following files which are used by |
| the scripts creating the web presentation: |
| SUITESLOG="${TESTLOG_PLATF_DIR}/${REVISION}.csv" |
| JAVAINFO="${TESTLOG_PLATF_DIR}/${REVISION}.javainfo" |
| CURRSUITESLOG="${TESTLOG_PLATF_DIR}/current.csv" |
| PREVSUITESLOG="${TESTLOG_PLATF_DIR}/previous.csv" |
| LOG="${TESTLOG_PLATF_DIR}/${REVISION}.txt" |
| The *.csv files are essentially a summary from the Derby test harness |
| ${suite}_report.txt files. |
| |
| When the test suites run on a platform is finished the script may send mail |
| to inform of the result. (${TOOLDIR}/textMail). |
| |
| |
| The *.csv files are a simple textual summary of the test results per |
| platform tested. These are actually what I started out with before |
| adding the web presentation. |
| |
| |