From: Hakan Kuecuekyilmaz Date: April 24 2009 10:52am Subject: bzr commit into mysql-falcon branch (hky:381) List-Archive: http://lists.mysql.com/commits/72767 Message-Id: <200904241052.n3OAqqFb024374@walldorf> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_BI89RZU4Y4Jx+m1h1CNPfw)" --Boundary_(ID_BI89RZU4Y4Jx+m1h1CNPfw) MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline #At bzr+ssh://bk-internal.mysql.com/bzrroot/mysql-falcon/ based on revid:hky@stripped 381 Hakan Kuecuekyilmaz 2009-04-24 [merge] Merge added: upgrade-downgrade/ upgrade-downgrade/README.txt upgrade-downgrade/RUNME.bash upgrade-downgrade/build.bash upgrade-downgrade/bzr_checkout.bash upgrade-downgrade/include/ upgrade-downgrade/include/apply_patches.inc upgrade-downgrade/include/configure_linux_gcc.inc upgrade-downgrade/include/configure_solaris_sparc_gcc.inc upgrade-downgrade/include/configure_solaris_x86_gcc.inc upgrade-downgrade/include/host_urd07.inc upgrade-downgrade/patches/ upgrade-downgrade/patches/mysql-test-extra-6.0_updown-falcon-additions.diff upgrade-downgrade/prepare_test.bash upgrade-downgrade/run_test.bash upgrade-downgrade/trd_falcon_updown_linux-32bit.env === added directory 'upgrade-downgrade' === added file 'upgrade-downgrade/README.txt' --- a/upgrade-downgrade/README.txt 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/README.txt 2009-04-24 10:38:01 +0000 @@ -0,0 +1,32 @@ +Scripts for automated runs of the "updown" test suite created by MySQL System QA. +Designed for running upgrade/downgrade tests against two versions of the +Falcon storage engine. + +For more information about the "updown" test framework, see +https://inside.mysql.com/wiki/QA_UpDown_Howto + +You can adjust the location of the binaries you want to test in the environment +file pointed to by the variable "UPDOWN_ENV_FILE" in the host-specific script +which you can find in the include/ directory. + +For example, such an environment file could be "trd_falcon_updown.env". + +The environment file will be copied automatically to the local working copy of the +mysql-test-extra-6.0 repository when the test is run (see prepare_test.bash). + +You can run the test by doing: + +bash ./RUNME.bash + +See host-specific .inc file in include/ for details regarding variables used +in the various other scripts. + +TODOs: + - Build TOP_DIR_OLD / TOP_DIR_NEW if mysqld binary not found in these dirs? + - Do not use FALCON_LOCAL_WORK_BZR, only TOP_DIR_OLD and TOP_DIR_NEW? + - Add support for E-mail reporting? + +-- +John H. Embretsen, John.Embretsen [at] Sun.COM +First edit: 2009-04-24 + === added file 'upgrade-downgrade/RUNME.bash' --- a/upgrade-downgrade/RUNME.bash 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/RUNME.bash 2009-04-24 10:38:01 +0000 @@ -0,0 +1,132 @@ +#! /bin/bash +# +# Runs the customized upgrade/downgrade test against the Falcon storage engine, +# including the following phases: +# +# - Code / test checkout from bzr repositories +# - Patch relevant working copies if applicable +# (- Build binaries from source code) +# (- Prepare test run) +# (- Run test) +# (- Collect and analyze results) +# (- Report results) +# (- Archive results ) +# +# John Embretsen, , 2009-04-21. +# + +# +# REQUIREMENTS: +# - bash 3 or newer +# + +# +# Hostname. Needed for various paths, directories, includes. +# +HOSTNAME=$(hostname) + +# +# Name of directory where this script is located +# +DIRNAME="${0%/*}" + +cd ${DIRNAME} + +## +## Includes. +## +## There should be one include file per host, specifying +## platform/host specific variables (paths etc.). +# +HOST_INCLUDE_FILE="include/host_${HOSTNAME}.inc" +if [ ! -f "${HOST_INCLUDE_FILE}" ]; then + echo "[ERROR_runme] Include file for host ${HOSTNAME} not found." + echo "Was looking for: ${PWD}/${HOST_INCLUDE_FILE}" + echo "Exiting." + exit 1 +fi +source ${HOST_INCLUDE_FILE} + +# Working directory for this script. +cd ${AUTO_BASE} + +# Assumes that all called scripts are present in the directory pointed to by +# the variable AUTO_BASE, set in this host's include script. + +# +# Files +# +RUNME_LOG="${LOG_DIR}/runme.log" + +echo "********* MySQL/Falcon Upgrade/Downgrade testing - RUNME SCRIPT **********" >> ${RUNME_LOG} +echo "" >> ${RUNME_LOG} +echo "TIMESTAMP: ${TIMESTAMP}" >> ${RUNME_LOG} +echo "PATH: ${PATH}" >> ${RUNME_LOG} +echo "AUTO_BASE: ${AUTO_BASE}" >> ${RUNME_LOG} +echo "" >> ${RUNME_LOG} + +####################################################################### +# +# bzr checkout and patching of working dirs. +# +####################################################################### +TSTAMP=$(date +%Y-%m-%d_T_%H%M%S) +echo "[RUNME_${TSTAMP}] Running bzr_checkout.sh..." >> ${RUNME_LOG} +${AUTO_BASE}/bzr_checkout.bash +if [ $? != 0 ]; then + echo "[ERROR_RUNME] bzr checkout script failed!" >> ${RUNME_LOG} + echo "[ERROR_RUNME] bzr checkout script failed!" + echo "[ERROR_RUNME] See logs in ${LOG_DIR}" + exit 1 +fi + +####################################################################### +# +# build necessary binaries. +# +####################################################################### +TSTAMP=$(date +%Y-%m-%d_T_%H%M%S) +echo "[RUNME_${TSTAMP}] Running build.sh..." >> ${RUNME_LOG} +${AUTO_BASE}/build.bash +if [ $? != 0 ]; then + echo "[ERROR_RUNME] build.sh script failed!" >> ${RUNME_LOG} + echo "[ERROR_RUNME] build.sh script failed!" + echo "[ERROR_RUNME] See logs in ${LOG_DIR}" + exit 1 +fi + +####################################################################### +# +# prepare test run. +# +####################################################################### +TSTAMP=$(date +%Y-%m-%d_T_%H%M%S) +echo "[RUNME_${TSTAMP}] Running prepare_test.bash..." >> ${RUNME_LOG} +${AUTO_BASE}/prepare_test.bash +if [ $? != 0 ]; then + echo "[ERROR_RUNME] prepare_test.bash script failed!" >> ${RUNME_LOG} + echo "[ERROR_RUNME] prepare_test.bash script failed!" + echo "[ERROR_RUNME] See logs in ${LOG_DIR}" + exit 1 +fi + +####################################################################### +# +# run the actual test. +# +####################################################################### +TSTAMP=$(date +%Y-%m-%d_T_%H%M%S) +echo "[RUNME_${TSTAMP}] Running run_test.bash..." >> ${RUNME_LOG} +${AUTO_BASE}/run_test.bash 2>${RUNME_LOG} +if [ $? != 0 ]; then + echo "[ERROR_RUNME] run_test.bash script failed!" >> ${RUNME_LOG} + echo "[ERROR_RUNME] run_test.bash script failed!" + echo "[ERROR_RUNME] See logs in ${LOG_DIR}" + exit 1 +fi + + +TSTAMP=$(date +%Y-%m-%d_T_%H%M%S) +echo "[INFO] RUNME.bash script done at ${TSTAMP}" >> ${RUNME_LOG} + + === added file 'upgrade-downgrade/build.bash' --- a/upgrade-downgrade/build.bash 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/build.bash 2009-04-24 10:38:01 +0000 @@ -0,0 +1,144 @@ +#! /bin/bash +# +# Build source version of MySQL / Falcon if needed. +# +# Not building if local work directories do not correspond to TOP_DIR_OLD +# or TOP_DIR_NEW in environment file for this test (see prepare_test.bash). +# +# When running this script for the first time on a given host, add a file named +# "include/host_.inc" first. Copy from another host_.inc +# file and adjust the variables as necessary. +# +# John Embretsen, , 2009-04-20. +# $Id$ + +# +# Hostname. Needed for various paths, directories, includes. +# +HOSTNAME=$(hostname) + +# +# Name of directory where this script is located +# +DIRNAME="${0%/*}" + +cd ${DIRNAME} + +# +# Includes. +# +# There should be one include file per host, specifying +# platform/host specific variables (paths etc.). +# Working dir needs to be where this script ($0) is located. +# +HOST_INCLUDE_FILE="include/host_${HOSTNAME}.inc" +if [ ! -f "${HOST_INCLUDE_FILE}" ]; then + echo "[ERROR_build] Include file for host ${HOSTNAME} not found." + echo "Was looking for: ${DIRNAME}/${HOST_INCLUDE_FILE}" + echo "Exiting." + exit 1 +fi +source ${HOST_INCLUDE_FILE} + +# +# Environment. +# +PLATFORM=$(uname) +ARCH=$(uname -m) + +# +# Files +# +BUILD_LOG=${LOG_DIR}/build.log + +# +# Read paths from the environment file +# We need: +# TOP_DIR_OLD (top-level dir of installation / src+build of OLD version to test.) +# TOP_DIR_NEW (top-level dir of installation / src+build of NEW version to test.) +# +source ${UPDOWN_ENV_FILE} + +# +# IF both TOP_DIR_OLD and TOP_DIR_NEW are different from FALCON_LOCAL_WORK_BZR, +# then do not build anything. +# +# TODO: Build TOP_DIR_OLD / TOP_DIR_NEW if mysqld binary not found? +# Do not use FALCON_LOCAL_WORK_BZR if we are testing releases? +# +if [ "${TOP_DIR_OLD}" != "${FALCON_LOCAL_WORK_BZR}" ] && [ "${TOP_DIR_NEW}" != "${FALCON_LOCAL_WORK_BZR}" ]; then + echo "[INFO] Local bzr checkout ${FALCON_LOCAL_WORK_BZR} not defined in updown env file." >> $BUILD_LOG + echo "[INFO] Not doing build, assuming we are testing pre-build versions." >> ${BUILD_LOG} + exit +fi + +# +# Build new mysqld with Falcon support. +# +# Check whether we had a successful branch on file server +# and build latest mysqld. +echo "[INFO]: Starting build.sh for test run of $TIMESTAMP" > $BUILD_LOG +if [ -d ${FALCON_LOCAL_WORK_BZR} ]; then + cd ${FALCON_LOCAL_WORK_BZR} + echo "[INFO] Running: BUILD/autorun.sh" >> $BUILD_LOG 2>&1 + BUILD/autorun.sh >> $BUILD_LOG 2>&1 + + case $PLATFORM in + Linux) + # Linux gcc + source ${AUTO_BASE}/include/configure_linux_gcc.inc >> $BUILD_LOG 2>&1 + + J=$(cat /proc/cpuinfo | grep processor | wc -l) + J=$(( $J + 1 )) + ;; + SunOS) + if [ x"$ARCH" = x'i86pc' ]; then + # Solaris/x86 gcc + source ${BZR_BASE}/include/configure_solaris_x86_gcc.inc >> $BUILD_LOG 2>&1 + + J=$(psrinfo | wc -l) + J=$(( $J + 1 )) + elif [ x"$ARCH" = x'sun4v' ]; then + # Solaris/SPARC gcc + source ${BZR_BASE}/include/configure_solaris_sparc_gcc.inc >> $BUILD_LOG 2>&1 + + J=8 + fi + ;; + *) + echo '[ERROR]: Platform not supported yet. Exiting.' >> $BUILD_LOG + echo '[ERROR]: Platform not supported yet. Exiting.' + exit 1 + ;; + esac + + ############################### + # CONFIGURE + ############################### + echo "" >> ${BUILD_LOG} 2>&1 + echo '[INFO] Running configure:' >> ${BUILD_LOG} 2>&1 + echo "./configure $CONFIGURATION" >> ${BUILD_LOG} 2>&1 + echo "" >> ${BUILD_LOG} 2>&1 + ./configure $CONFIGURATION >> ${BUILD_LOG} 2>&1 + + ############################### + # MAKE + ############################### + echo "" >> ${BUILD_LOG} 2>&1 + echo "======================================================================" >> ${BUILD_LOG} 2>&1 + echo '[INFO] Running make:' >> ${BUILD_LOG} 2>&1 + echo "$MAKE -j$J" >> ${BUILD_LOG} 2>&1 + echo "" >> ${BUILD_LOG} 2>&1 + $MAKE -j$J >> $BUILD_LOG 2>&1 + + if [ $? != 0 ]; then + echo "[ERROR] Build of ${FALCON} failed!" >> $BUILD_LOG + exit 1 + else + echo "[INFO]: Build of ${FALCON} was successful!" >> $BUILD_LOG + fi +else + echo "[ERROR_build] Unable to find falcon sources at ${FALCON_LOCAL_WORK_BZR}" >> $BUILD_LOG + exit 1 +fi + === added file 'upgrade-downgrade/bzr_checkout.bash' --- a/upgrade-downgrade/bzr_checkout.bash 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/bzr_checkout.bash 2009-04-24 10:38:01 +0000 @@ -0,0 +1,149 @@ +#! /bin/bash +# +# Pull latest HEAD of given repository and branch it. +# +# When running this script for the first time on a given host, add a file named +# "include/host_.inc" first. Copy from another host_.inc +# file and adjust the variables as necessary. +# +# John Embretsen, , 2009-04-20. +# $Id$ + +# +# Hostname. Needed for various paths, directories, includes. +# +HOSTNAME=$(hostname) + +# +# Name of directory where this script is located +# +DIRNAME="${0%/*}" + +cd ${DIRNAME} + +# +# Includes. +# +# There should be one include file per host, specifying +# platform/host specific variables (paths etc.). +# Working dir needs to be where this script ($0) is located. +# +HOST_INCLUDE_FILE="include/host_${HOSTNAME}.inc" +if [ ! -f "${HOST_INCLUDE_FILE}" ]; then + echo "[ERROR_bzr] Include file for host ${HOSTNAME} not found." + echo "Was looking for: ${DIRNAME}/${HOST_INCLUDE_FILE}" + echo "Exiting." + exit 1 +fi +source ${HOST_INCLUDE_FILE} + +# +# Files. +# +LOG="${LOG_DIR}/bzr.log" + +# +# Control timestamp. Hour precision. +# +# Other timestamp is TIMESTAMP set in host script. Has second precision. +TIMESTAMP_H=$(date +%Y-%m-%d_T_%H) + +#if [ ! -f "${AUTO_BASE}/bzr_updown_date-${TIMESTAMP_H}" ]; then +# echo "Found up-to-date bzr control file for updown testing in ${AUTO_BASE} for timestamp ${TIMESTAMP_H}." >> $LOG +# echo 'Skipping bzr updates for this reason.' >> $LOG +# #exit +#fi + +echo "[INFO] Starting $0 (bzr checkouts) - $TIMESTAMP" >> $LOG + +# Suppressing output from bzr branch & pull commands since the log quickly fills +# up with "Build phase 1/11438" etc. messages otherwise. +# Not using grep since that will affect the exit code from bzr which is used +# to indicate success or failure. + +# Delete old working copies. +echo "[INFO] Deleting old working copies of falcon src and test-extra." >> $LOG +rm -rf ${FALCON_LOCAL_WORK_BZR} 2>/dev/null +rm -rf ${TEST_EXTRA_LOCAL_WORK_BZR} 2>/dev/null + +if [ ! -d ${FALCON_LOCAL_MASTER} ]; then + echo '[INFO] Initial Falcon branch did not exist.' >> $LOG + if [ ! -d ${LOCAL_BZR_ROOT_SERVER}/.bzr ]; then + echo "[INFO] Shared bzr repository not found in ${WORK}." >> $LOG + echo '[INFO] Creating shared bzr repository: bzr init-repo' >> $LOG + bzr init-repo ${WORK} >> $LOG 2>&1 + fi + echo 'Branching now. This will take quite a while!' >> $LOG + echo "bzr branch ${FALCON_BZR_ROOT} ${FALCON_LOCAL_MASTER}" >> /dev/null 2>&1 + bzr branch ${FALCON_BZR_ROOT} ${FALCON_LOCAL_MASTER} >> /dev/null 2>&1 +fi +if [ $? != 0 ]; then + echo "[ERROR] Branching of ${FALCON_BZR_ROOT} failed" >> $LOG + exit 1 +fi + +# Update local master branch +echo "[INFO] Updating (bzr pull) local master branch (falcon)..." >> $LOG +cd ${FALCON_LOCAL_MASTER} +bzr pull >> /dev/null 2>&1 +if [ $? != 0 ]; then + echo "[ERROR] Pull of ${FALCON_LOCAL_MASTER} failed" >> $LOG + exit 1 +fi + +# Get new working copy based on local master branch +echo "[INFO] Branching working copy of ${FALCON} from local master branch (suppressing output)..." >> $LOG +bzr branch ${FALCON_LOCAL_MASTER} ${FALCON_LOCAL_WORK_BZR} >> /dev/null 2>&1 +if [ $? != 0 ]; then + echo "[ERROR] Branching of ${FALCON_LOCAL_MASTER} into ${FALCON_LOCAL_WORK_BZR} failed." >> $LOG + exit 1 +fi + +# Branch the test-extra branch +echo "[INFO] Branching test-extra branch: ${TEST_EXTRA}..." >> $LOG +bzr branch ${TEST_EXTRA_BZR_ROOT} ${TEST_EXTRA_LOCAL_WORK_BZR} >> /dev/null 2>&1 +if [ $? != 0 ]; then + echo "[ERROR] Branching of ${TEST_EXTRA_BZR_ROOT} into ${TEST_EXTRA_LOCAL_WORK_BZR} failed." >> $LOG + exit 1 +fi + +echo "" >> $LOG +echo "Using the following local branches (directories) for this test run:" >> $LOG +echo " ${FALCON_LOCAL_WORK_BZR}" >> $LOG +echo " ${TEST_EXTRA_LOCAL_WORK_BZR}" >> $LOG +echo " ${AUTO_BASE}" >> $LOG +echo "" >> $LOG + +# Apply patches. Report versions. +# Pathces are located in a special directory and include branch name in file name. +# See apply_patches.inc and host_.inc for details. +cd ${FALCON_LOCAL_WORK_BZR} +echo "[INFO] ===================================================================" >> $LOG +echo "[INFO] bzr version-info from ${FALCON}:" >> $LOG +bzr version-info >> $LOG 2>&1 +echo "[INFO] ===================================================================" >> $LOG +source ${AUTO_BASE}/include/apply_patches.inc >> $LOG 2>&1 +if [ -f ${PATCH_ERROR_FILE} ]; then + echo "[ERROR_bzr] Patching failed! Patch error file ${FALCON_LOCAL_WORK_BZR}/${PATCH_ERROR_FILE} found!" >> $LOG 2>&1 + exit 1 +fi + + +cd ${TEST_EXTRA_LOCAL_WORK_BZR} +echo "[INFO] ===================================================================" >> $LOG +echo "[INFO] bzr version-info from ${TEST_EXTRA}:" >> $LOG +bzr version-info >> $LOG 2>&1 +echo "[INFO] ===================================================================" >> $LOG +source ${AUTO_BASE}/include/apply_patches.inc >> $LOG 2>&1 +if [ -f ${PATCH_ERROR_FILE} ]; then + echo "[ERROR_bzr] Patching failed! Patch error file ${TEST_EXTRA_LOCAL_WORK_BZR}/${PATCH_ERROR_FILE} found!" >> $LOG 2>&1 + exit 1 +fi + +cd ${AUTO_BASE} + +rm -f ${AUTO_BASE}/bzr_updown_date* >> $LOG 2>&1 +touch ${AUTO_BASE}/bzr_updown_date-${TIMESTAMP_H} >> $LOG 2>&1 + +echo "[INFO] $0 done $(date +%Y-%m-%d_T_%H%M%S)" >> $LOG 2>&1 + === added directory 'upgrade-downgrade/include' === added file 'upgrade-downgrade/include/apply_patches.inc' --- a/upgrade-downgrade/include/apply_patches.inc 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/include/apply_patches.inc 2009-04-24 10:38:01 +0000 @@ -0,0 +1,64 @@ +# +# Apply host specific patches. +# +# NOTE: Requires that a set of variables have been set +# (see bzr_checkout.sh and include/host_*.inc) +# and that the current working directory is the +# top/root directory to apply patches against. +# +# Required variables: $LOG +# $PATCHES +# correct $PWD (working dir) +# +# $Id$ +# John H. EMbretsen, , 2009-04-21. + + +# Reset patch error file +if [ -f ${PATCH_ERROR_FILE} ]; then + rm ${PATCH_ERROR_FILE} +fi + +########################################### +# +# Functions +# +########################################### + +apply_patches () +{ + for file in ${PATCHES}/* + do + if [ $(echo $file | grep $BASENAME) ]; then + echo "[INFO] Found patch $file. Trying to apply..." + patch -tN --dry-run -p0 < $file + if [ $? -ne 0 ]; then + echo "[ERROR_patch] Patch dry run of $file failed." + echo "[ERROR_patch] Patch dry run of $file failed." >> ${PATCH_ERROR_FILE} + else + patch -tN -p0 < $file + if [ $? -ne 0 ]; then + echo "[ERROR_patch] Patch $file failed." + echo "[ERROR_patch] Patch $file failed." >> ${PATCH_ERROR_FILE} + else + echo "[INFO] Patch $file succeeded." + fi + fi + else + echo "[INFO] No patch found in ${PATCHES} matching ${BASENAME}" + fi + done +} + +######################### End of function definitions ################ + +# Name of repository (current working dir) +# If name does not match a substring of a patch file in the patch dir, +# we do not patch anything. +BASENAME=$(basename $PWD) +echo "[INFO] Running apply_patches.inc for ${BASENAME}..." +echo "[INFO] Looking for patches in ${PATCHES}..." + +apply_patches + + === added file 'upgrade-downgrade/include/configure_linux_gcc.inc' --- a/upgrade-downgrade/include/configure_linux_gcc.inc 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/include/configure_linux_gcc.inc 2009-04-24 10:38:01 +0000 @@ -0,0 +1,39 @@ +# +# Configuration for compiling MySQL on Linux with gcc. +# +# $Id$ +# John Embretsen, , 2009-04-22. + +CCACHE_TEST=$(ccache -V 2> /dev/null) +if [ "x$CCACHE_TEST" != "x" ]; then + CCACHE=$(which ccache) +else + CCACHE='' +fi + +export CC="$CCACHE gcc" +export CXX="$CCACHE g++" + +export CFLAGS="-g \ + -O3 \ + -fno-omit-frame-pointer \ + -Wall \ + -DFORCE_INIT_OF_VARS" + +export CXXFLAGS="-g \ + -O3 \ + -fno-omit-frame-pointer \ + -Wall \ + -DFORCE_INIT_OF_VARS" + +# +# We need shared libraries for DBT2's client and driver program. +# +export CONFIGURATION="\ + --prefix=${FALCON_LOCAL_WORK_BZR}/install \ + --with-comment='MySQL-Server-Falcon-tests' \ + --with-extra-charsets=all \ + --with-plugins=max-no-ndb \ + --with-ssl \ + --with-libevent \ +" === added file 'upgrade-downgrade/include/configure_solaris_sparc_gcc.inc' --- a/upgrade-downgrade/include/configure_solaris_sparc_gcc.inc 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/include/configure_solaris_sparc_gcc.inc 2009-04-24 10:38:01 +0000 @@ -0,0 +1,84 @@ +# +# Configuration for compiling MySQL on Solaris/SPARC with gcc. +# +# $Id$ +# Hakan Kuecuekyilmaz, , 2008-07-16. + +CCACHE_TEST=$(ccache -V 2> /dev/null) +if [ "x$CCACHE_TEST" != "x" ]; then + CCACHE=$(which ccache) +else + CCACHE='' +fi + +export CC="$CCACHE gcc" +export CXX="$CCACHE g++" + +export CFLAGS="-g \ + -O3 \ + -mcpu=v9 \ + -fno-omit-frame-pointer \ + -Wunused-function \ + -Wunused-label \ + -Wunused-value \ + -Wunused-variable \ + -Wimplicit \ + -Wreturn-type \ + -Wswitch \ + -Wtrigraphs \ + -Wcomment \ + -W \ + -Wa \ + -Wchar-subscripts \ + -Wformat \ + -Wparentheses \ + -Wsign-compare \ + -Wwrite-strings \ + -Wuninitialized \ + -Wunused \ + -DFORCE_INIT_OF_VARS" + +export CXXFLAGS="-g \ + -O3 \ + -mcpu=v9 \ + -fno-omit-frame-pointer \ + -Wunused-function \ + -Wunused-label \ + -Wunused-value \ + -Wunused-variable \ + -Wimplicit \ + -Wreturn-type \ + -Wswitch \ + -Wtrigraphs \ + -Wcomment \ + -W \ + -Wa \ + -Woverloaded-virtual \ + -Wchar-subscripts \ + -Wformat \ + -Wparentheses \ + -Wsign-compare \ + -Wwrite-strings \ + -Wctor-dtor-privacy \ + -Wnon-virtual-dtor \ + -Wuninitialized \ + -DFORCE_INIT_OF_VARS" + +export CONFIGURATION="--disable-shared \ + --enable-assembler \ + --enable-dtrace \ + --enable-local-infile \ + --enable-thread-safe-client \ + --libexecdir=/usr/local/mysql/bin \ + --localstatedir=/usr/local/mysql/data \ + --with-big-tables \ + --with-client-ldflags='-static' \ + --with-comment='MySQL-Community-Server' \ + --with-extra-charsets=all \ + --with-plugins=max-no-ndb \ + --with-mysqld-ldflags='-static' \ + --prefix=/usr/local/mysql \ + --with-readline \ + --with-ssl \ + --with-libevent \ + --with-zlib-dir=bundled" === added file 'upgrade-downgrade/include/configure_solaris_x86_gcc.inc' --- a/upgrade-downgrade/include/configure_solaris_x86_gcc.inc 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/include/configure_solaris_x86_gcc.inc 2009-04-24 10:38:01 +0000 @@ -0,0 +1,82 @@ +# +# Configuration for compiling MySQL on Solaris/x86 with gcc. +# +# $Id$ +# Hakan Kuecuekyilmaz, , 2008-07-16. + +CCACHE_TEST=$(ccache -V 2> /dev/null) +if [ "x$CCACHE_TEST" != "x" ]; then + CCACHE=$(which ccache) +else + CCACHE='' +fi + +export CC="$CCACHE gcc" +export CXX="$CCACHE g++" + +export CFLAGS="-g \ + -O3 \ + -fno-omit-frame-pointer \ + -Wunused-function \ + -Wunused-label \ + -Wunused-value \ + -Wunused-variable \ + -Wimplicit \ + -Wreturn-type \ + -Wswitch \ + -Wtrigraphs \ + -Wcomment \ + -W \ + -Wa \ + -Wchar-subscripts \ + -Wformat \ + -Wparentheses \ + -Wsign-compare \ + -Wwrite-strings \ + -Wuninitialized \ + -Wunused \ + -DFORCE_INIT_OF_VARS" + +export CXXFLAGS="-g \ + -O3 \ + -fno-omit-frame-pointer \ + -Wunused-function \ + -Wunused-label \ + -Wunused-value \ + -Wunused-variable \ + -Wimplicit \ + -Wreturn-type \ + -Wswitch \ + -Wtrigraphs \ + -Wcomment \ + -W \ + -Wa \ + -Woverloaded-virtual \ + -Wchar-subscripts \ + -Wformat \ + -Wparentheses \ + -Wsign-compare \ + -Wwrite-strings \ + -Wctor-dtor-privacy \ + -Wnon-virtual-dtor \ + -Wuninitialized \ + -DFORCE_INIT_OF_VARS" + +export CONFIGURATION="--disable-shared \ + --enable-assembler \ + --enable-dtrace \ + --enable-local-infile \ + --enable-thread-safe-client \ + --libexecdir=/usr/local/mysql/bin \ + --localstatedir=/usr/local/mysql/data \ + --with-big-tables \ + --with-client-ldflags='-static' \ + --with-comment='MySQL-Community-Server' \ + --with-extra-charsets=all \ + --with-plugins=max-no-ndb \ + --with-mysqld-ldflags='-static' \ + --prefix=/usr/local/mysql \ + --with-readline \ + --with-ssl \ + --with-libevent \ + --with-zlib-dir=bundled" === added file 'upgrade-downgrade/include/host_urd07.inc' --- a/upgrade-downgrade/include/host_urd07.inc 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/include/host_urd07.inc 2009-04-24 10:38:01 +0000 @@ -0,0 +1,103 @@ +# +# Set various paths and other variables that may depend on host or platform. +# This file is for the host +# +# urd07.norway.sun.com +# +# OS: Linux Red Hat 5.2 +# CPU: Sun Fire V60x, 4 x Intel Xeon, 2.80 GHz +# RAM: 1 GB +# Local file system: ext3 +# +# +# John H. Embretsen, , 2009-04-02. +# $Id$ + +# +# Timestamp for a test run, used e.g. in directory or log file names. +# +if [ "x${TIMESTAMP}" == "x" ]; then + export TIMESTAMP=$(date +%Y-%m-%d_T_%H%M%S) +fi + +# Where to send email in case of test run errors. +ADMIN='john.embretsen@stripped' + +# Where to send email with test results. +REPORT_TO='john.embretsen@stripped' + +# Base directory for falcon QA-related stuff (test scripts, workdir, etc.) +# (/export/home/ and /export/home2 are local disks on norway.sun.com hosts) +FALCONQA_BASEDIR="/export/home/tmp/falconQA" + +# Base directory of the helper scripts for these automated test runs w/Falcon. +# Also the place where the results are stored. +AUTO_BASE="${FALCONQA_BASEDIR}/bzr-repos/mysql-falcon/upgrade-downgrade" + +# User name and URL for bzr on MySQL's server. +# Note: Make sure automatic SSH key authentication is properly set up, so +# that no password is needed. +BZR_USERNAME='jembretsen' +BZR_ROOT="bzr+ssh://${BZR_USERNAME}@bk-internal.mysql.com/bzrroot/server" + +## Names of bazaar repositories +#FALCON='mysql-6.0' +#FALCON='mysql-6.0-falcon' +FALCON='mysql-6.0-falcon-team' +TEST_EXTRA='mysql-test-extra-6.0' + +# Local bzr repositories and working copies. +# It may be a good idea to use a so-called shared bazaar repository for the +# server code in order to speed up branching. +LOCAL_BZR_ROOT="${FALCONQA_BASEDIR}/bzr-repos" +LOCAL_BZR_ROOT_SERVER="${LOCAL_BZR_ROOT}/server" + +# Bazaar URLs (server) or paths (localhost). +FALCON_BZR_ROOT="${BZR_ROOT}/${FALCON}" +FALCON_LOCAL_MASTER="${LOCAL_BZR_ROOT_SERVER}/${FALCON}-local-master" +FALCON_LOCAL_WORK_BZR="${LOCAL_BZR_ROOT_SERVER}/${FALCON}" +TEST_EXTRA_BZR_ROOT="${BZR_ROOT}/${TEST_EXTRA}" +TEST_EXTRA_LOCAL_WORK_BZR="${LOCAL_BZR_ROOT}/${TEST_EXTRA}" + +# Where to find patches to apply to the checked out code base before building. +#PATCHES="$HOME/mysql/patches/auto/$(hostname)" +PATCHES="${AUTO_BASE}/patches" + +# +# PATCH_ERROR_FILE indicates patching error +# +PATCH_ERROR_FILE=patch-error.txt + +# +# Environment file for the updown test framework (in test-extra). +# Specifies the location of the MySQL binaries to test and a few other things. +# +UPDOWN_ENV_FILE="${AUTO_BASE}/trd_falcon_updown_linux-32bit.env" + +# +# Directory of updown test suite in test-extra working copy. +# +UPDOWN_DIR="${TEST_EXTRA_LOCAL_WORK_BZR}/mysql-test/qa-suite/updown" + +# +# Log directory for this run +# +LOG_DIR="${AUTO_BASE}/logs-${TIMESTAMP}" +if [ ! -d ${LOG_DIR} ]; then + mkdir ${LOG_DIR} 2>/dev/null +fi + + +################## +# Binaries +################## +# On Sun Trondheim hosts /usr/local/bin is central installation, /usr/bin/ is local +PATH="/opt/csw/bin:/usr/local/bin:/usr/bin:/bin:/usr/sfw/bin:/usr/sbin:/opt/SUNWspro/bin:/usr/ucb:/usr/ccs/bin:$PATH" +PATCH=gpatch +MAKE=gmake + +# Path to mail program which accepts -s and -t for sending mails. +MAIL=/usr/sbin/sendmail + +# Path to Perl intallation with required modules installed. +PERL=/usr/bin/perl === added directory 'upgrade-downgrade/patches' === added file 'upgrade-downgrade/patches/mysql-test-extra-6.0_updown-falcon-additions.diff' --- a/upgrade-downgrade/patches/mysql-test-extra-6.0_updown-falcon-additions.diff 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/patches/mysql-test-extra-6.0_updown-falcon-additions.diff 2009-04-24 10:38:01 +0000 @@ -0,0 +1,851 @@ +=== added file 'mysql-test/qa-suite/updown/bin/60minor-falcon.tst' +--- mysql-test/qa-suite/updown/bin/60minor-falcon.tst 1970-01-01 00:00:00 +0000 ++++ mysql-test/qa-suite/updown/bin/60minor-falcon.tst 2009-04-20 09:31:31 +0000 +@@ -0,0 +1,99 @@ ++################################################################################ ++# ++# Attention: This bourne Shell script is a temporary solution. ++# The final script will be written in Perl. ++# ++################################################################################ ++# ++# Idea: ML ++# Created by: SK ++# Modified by: EM ++# ++########################################################################### ++SCENARIO=60minor ++ ++UPGRADE_TYPE="live" # Determines the upgrade method to use, ++ # Can be set to: ++ # 'live' - Use the existing database after upgrade ++ # 'dump' - Export the db and import it after upgrade ++ ++DOWNGRADE_TYPE="dump" # Determines the downgrade method to use, ++ # Can be set to: ++ # 'live' - Use the existing database after downgrade ++ # 'dump' - Export the db and import it after downgrade ++ ++UPDN_TYPE="minor" # Indicates the differences between the two releases ++ # tested (since 'live' downgrade is not supported ++ # between 'major' releases). Can be set to: ++ # 'minor' - allow 'live' downgrade testing ++ # 'major' - bypass 'live' downgrade testing, ++ # -> If UPDN_MODE="single" set DOWNGRADE_TYPE to 'dump' ++ # -> If UPDN_MODE="all", bypass 'live' DOWNGRADE_TYPE. ++ ++UPDN_MODE="single" # Indicates which of the combinations of ++ # UPGRADE_TYPE and DOWNGRADE_TYPE will be used. ++ # Can be set to: ++ # 'single' - Run one round using $UPGRADE_TYPE for ++ # the upgrade method and $DOWNGRADE_TYPE ++ # for the downgrade method. ++ # 'all' - Run four rounds using all combinations ++ # of 'live' and 'dump' (ignoring the above ++ # values of UPGRADE_TYPE and DOWNGRADE_TYPE ++ ++# TEST_NUM= # If set limits the run to a specific test scenario ++ # Values are in the form of 00, 01,... ++ ++BATCH_MODE="one-pass" # Determines the order in which the test cases will ++ # be exeuted. Can be set to: ++ # 'one-pass - run all 'initial' then all 'upgrade' then ++ # all 'downgrade' (i1,i2...,u1,u2...,d1,d2...) ++ # 'none' - run each test in its own uprade/downgrade ++ # cycle (i1,u1,d1,i2,u2,d2,...) ++ # Note: BATCH_MODE is ignored if --test-num is specified ++ # on the command line or if $TEST_NUM is set. ++ ++NEW_UPG_TOOL=mysql_upgrade # Determines what tool should be used during upgrade ++ # can be set to 'fix_privs' or 'mysql_upgrade' ++ ++OLD_UPG_TOOL=mysql_upgrade # Determines what tool should be used during downgrade ++ # can be set to 'fix_privs' or 'mysql_upgrade' ++ ++OLD_SERVER_OPT="--mysqld=--innodb --mysqld=--concurrent_insert=0" ++ # Additional command line parameters to pass to ++ # 'old version' mysqld server ++ ++NEW_SERVER_OPT="--mysqld=--innodb --mysqld=--concurrent_insert=0" ++ # Additional command line parameters to pass to ++ # 'new version' mysqld server ++ ++OLDVER_DUMP_OPT="--events --default-character-set=utf8" ++ # Additional command line parameters to pass to ++ # 'mysqldump' when dumping the 'old version' database ++ # during a 'dump' upgrade. ++ ++NEWVER_DUMP_OPT="--events --default-character-set=utf8" ++ # Additional command line parameters to pass to ++ # 'mysqldump' when dumping the 'new version' database ++ # during a 'dump' downgrade. ++ ++OLDVER_IMPORT_OPT="--default-character-set=utf8" ++ # Additional command line parameters to pass to ++ # 'mysql' when importing the 'old version' database ++ # during a 'dump' upgrade. ++ ++NEWVER_IMPORT_OPT="--default-character-set=utf8" ++ # Additional command line parameters to pass to ++ # 'mysql' when importing the 'new version' database ++ # during a 'dump' downgrade. ++ ++ ++RPL_MODE=0 # Disable replication part ++ ++ ++SUITE_TIMEOUT=20 ++TESTCASE_TIMEOUT=10 ++ ++# Derived variables ++TIMEOUTS_OLD="--testcase-timeout=$TESTCASE_TIMEOUT --suite-timeout=$SUITE_TIMEOUT" ++TIMEOUTS_NEW="--testcase-timeout=$TESTCASE_TIMEOUT --suite-timeout=$SUITE_TIMEOUT" ++################################################################################ + +=== modified file 'mysql-test/qa-suite/updown/bin/run_updown.inc.sh' +--- mysql-test/qa-suite/updown/bin/run_updown.inc.sh 2009-02-18 15:44:25 +0000 ++++ mysql-test/qa-suite/updown/bin/run_updown.inc.sh 2009-04-16 12:06:38 +0000 +@@ -116,7 +116,8 @@ + local SERVER_TYPE_STOP="" + local START_OPT_RPL="--mysqld=--innodb rpl_alter" + +- local SERVER_MASTER_PORT="9306" ++ #local SERVER_MASTER_PORT="9306" ++ local SERVER_MASTER_PORT="10010" + local SERVER_SLAVE_PORT="9308" + + # + +=== added file 'mysql-test/qa-suite/updown/scenarios/60minor/r/downgrade08.result' +--- mysql-test/qa-suite/updown/scenarios/60minor/r/downgrade08.result 1970-01-01 00:00:00 +0000 ++++ mysql-test/qa-suite/updown/scenarios/60minor/r/downgrade08.result 2009-04-16 10:58:45 +0000 +@@ -0,0 +1,147 @@ ++********************************************* ++*** POST-DOWNGRADE TEST FOR FALCON *** ++********************************************* ++use updown; ++ ++############################################################################ ++# Verify structure of and access to previous Falcon tables after downgrade: ++############################################################################ ++ ++SHOW TABLES; ++Tables_in_updown ++falcon_table_from_before_upgrade ++falcon_table_new_on_upgrade ++to_be_falcon_table_after_upgrade ++ ++# Table created before upgrade: ++SHOW CREATE TABLE falcon_table_from_before_upgrade; ++Table Create Table ++falcon_table_from_before_upgrade CREATE TABLE `falcon_table_from_before_upgrade` ( ++ `id` int(11) NOT NULL AUTO_INCREMENT, ++ `code` int(11) DEFAULT NULL, ++ `age` int(11) DEFAULT NULL, ++ `name` varchar(255) DEFAULT NULL, ++ PRIMARY KEY (`id`), ++ KEY `idx_multi` (`code`,`name`), ++ KEY `idx_code` (`code`) ++) ENGINE=Falcon AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 ++SELECT * FROM falcon_table_from_before_upgrade; ++id code age name ++1 -1 -1 Negative1 ++2 0 0 Zero ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++# Use index to select range ++SELECT * FROM falcon_table_from_before_upgrade WHERE code > 3; ++id code age name ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++# Table created as non-Falcon table before upgrade and altered to Falcon after. ++SHOW CREATE TABLE to_be_falcon_table_after_upgrade; ++Table Create Table ++to_be_falcon_table_after_upgrade CREATE TABLE `to_be_falcon_table_after_upgrade` ( ++ `id` int(11) NOT NULL AUTO_INCREMENT, ++ `code` int(11) DEFAULT NULL, ++ `age` int(11) DEFAULT NULL, ++ `name` varchar(255) DEFAULT NULL, ++ PRIMARY KEY (`id`), ++ KEY `idx_multi` (`code`,`name`), ++ KEY `idx_code` (`code`) ++) ENGINE=Falcon AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 ++SELECT * FROM to_be_falcon_table_after_upgrade; ++id code age name ++1 -1 -1 Negative1 ++2 0 0 Zero ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++# Use index to select range ++SELECT * FROM to_be_falcon_table_after_upgrade WHERE code > 3; ++id code age name ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++# Table created after upgrade ++SHOW CREATE TABLE falcon_table_new_on_upgrade; ++Table Create Table ++falcon_table_new_on_upgrade CREATE TABLE `falcon_table_new_on_upgrade` ( ++ `id` int(11) NOT NULL AUTO_INCREMENT, ++ `code` int(11) DEFAULT NULL, ++ `age` int(11) DEFAULT NULL, ++ `name` varchar(255) DEFAULT NULL, ++ PRIMARY KEY (`id`), ++ KEY `idx_multi` (`code`,`name`), ++ KEY `idx_code` (`code`) ++) ENGINE=Falcon AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 ++SELECT * FROM falcon_table_new_on_upgrade; ++id code age name ++1 -1 -1 Upgrade Negative1 ++2 0 0 Upgrade Zero ++3 5 5 Upgrade Five ++4 7 7 Upgrade Seven ++5 1025 1025 Upgrade ThousandTwentyFive ++ ++# Use index to select range ++SELECT * FROM falcon_table_new_on_upgrade WHERE code > 3; ++id code age name ++3 5 5 Upgrade Five ++4 7 7 Upgrade Seven ++5 1025 1025 Upgrade ThousandTwentyFive ++ ++######################################################################## ++# Verify structure of the information_schema: ++######################################################################## ++ ++use information_schema; ++SHOW TABLES; ++Tables_in_information_schema ++CHARACTER_SETS ++COLLATIONS ++COLLATION_CHARACTER_SET_APPLICABILITY ++COLUMNS ++COLUMN_PRIVILEGES ++ENGINES ++EVENTS ++FILES ++GLOBAL_STATUS ++GLOBAL_VARIABLES ++KEY_COLUMN_USAGE ++PARAMETERS ++PARTITIONS ++PLUGINS ++PROCESSLIST ++PROFILING ++REFERENTIAL_CONSTRAINTS ++ROUTINES ++SCHEMATA ++SCHEMA_PRIVILEGES ++SESSION_STATUS ++SESSION_VARIABLES ++STATISTICS ++TABLES ++TABLESPACES ++TABLE_CONSTRAINTS ++TABLE_PRIVILEGES ++TRIGGERS ++USER_PRIVILEGES ++VIEWS ++FALCON_RECORD_CACHE_SUMMARY ++FALCON_SYSTEM_MEMORY_DETAIL ++FALCON_TABLESPACE_IO ++FALCON_SYSTEM_MEMORY_SUMMARY ++FALCON_VERSION ++FALCON_TRANSACTION_SUMMARY ++FALCON_SERIAL_LOG_INFO ++FALCON_SYNCOBJECTS ++FALCON_TRANSACTIONS ++FALCON_RECORD_CACHE_DETAIL ++ ++####################################################### ++## END TESTS FOR DOWNGRADE STAGE ###################### ++####################################################### + +=== added file 'mysql-test/qa-suite/updown/scenarios/60minor/r/initial08.result' +--- mysql-test/qa-suite/updown/scenarios/60minor/r/initial08.result 1970-01-01 00:00:00 +0000 ++++ mysql-test/qa-suite/updown/scenarios/60minor/r/initial08.result 2009-04-16 10:58:22 +0000 +@@ -0,0 +1,132 @@ ++********************************************* ++*** INITIAL (PRE-UPGRADE) TEST FOR FALCON *** ++********************************************* ++DROP DATABASE IF EXISTS updown; ++CREATE DATABASE updown; ++SET SQL_WARNINGS=1; ++use updown; ++ ++######################################################################## ++# Create table that will later be altered to Falcon engine and verify: ++######################################################################## ++ ++CREATE TABLE to_be_falcon_table_after_upgrade ( ++id INT AUTO_INCREMENT PRIMARY KEY, ++code INT, ++age INT, ++name VARCHAR(255), ++INDEX idx_multi (code, name), ++INDEX idx_code (code) ++) ENGINE = MyISAM; ++ ++# Insert some data ++INSERT INTO to_be_falcon_table_after_upgrade (code, age, name) VALUES ++(-1, -1, 'Negative1'), ++(0, 0, 'Zero'), ++(5, 5, 'Five'), ++(7, 7, 'Seven'), ++(1025, 1025, 'ThousandTwentyFive'); ++ ++# Verify contents: ++SELECT * FROM to_be_falcon_table_after_upgrade; ++id code age name ++1 -1 -1 Negative1 ++2 0 0 Zero ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++######################################################################## ++# Create table that is Falcon engine from the start and verify: ++######################################################################## ++ ++CREATE TABLE falcon_table_from_before_upgrade ( ++id INT AUTO_INCREMENT PRIMARY KEY, ++code INT, ++age INT, ++name VARCHAR(255), ++INDEX idx_multi (code, name), ++INDEX idx_code (code) ++) ENGINE = Falcon; ++ ++# Insert some data ++INSERT INTO falcon_table_from_before_upgrade (code, age, name) VALUES ++(-1, -1, 'Negative1'), ++(0, 0, 'Zero'), ++(5, 5, 'Five'), ++(7, 7, 'Seven'), ++(1025, 1025, 'ThousandTwentyFive'); ++ ++# Verify structure and engine: ++SHOW CREATE TABLE falcon_table_from_before_upgrade; ++Table Create Table ++falcon_table_from_before_upgrade CREATE TABLE `falcon_table_from_before_upgrade` ( ++ `id` int(11) NOT NULL AUTO_INCREMENT, ++ `code` int(11) DEFAULT NULL, ++ `age` int(11) DEFAULT NULL, ++ `name` varchar(255) DEFAULT NULL, ++ PRIMARY KEY (`id`), ++ KEY `idx_multi` (`code`,`name`), ++ KEY `idx_code` (`code`) ++) ENGINE=Falcon AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 ++ ++# Verify contents: ++SELECT * FROM falcon_table_from_before_upgrade; ++id code age name ++1 -1 -1 Negative1 ++2 0 0 Zero ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++######################################################################## ++# Verify the structure of the information schema before upgrade: ++######################################################################## ++ ++use information_schema; ++SHOW TABLES; ++Tables_in_information_schema ++CHARACTER_SETS ++COLLATIONS ++COLLATION_CHARACTER_SET_APPLICABILITY ++COLUMNS ++COLUMN_PRIVILEGES ++ENGINES ++EVENTS ++FILES ++GLOBAL_STATUS ++GLOBAL_VARIABLES ++KEY_COLUMN_USAGE ++PARAMETERS ++PARTITIONS ++PLUGINS ++PROCESSLIST ++PROFILING ++REFERENTIAL_CONSTRAINTS ++ROUTINES ++SCHEMATA ++SCHEMA_PRIVILEGES ++SESSION_STATUS ++SESSION_VARIABLES ++STATISTICS ++TABLES ++TABLESPACES ++TABLE_CONSTRAINTS ++TABLE_PRIVILEGES ++TRIGGERS ++USER_PRIVILEGES ++VIEWS ++FALCON_RECORD_CACHE_SUMMARY ++FALCON_SYSTEM_MEMORY_DETAIL ++FALCON_TABLESPACE_IO ++FALCON_SYSTEM_MEMORY_SUMMARY ++FALCON_VERSION ++FALCON_TRANSACTION_SUMMARY ++FALCON_SERIAL_LOG_INFO ++FALCON_SYNCOBJECTS ++FALCON_TRANSACTIONS ++FALCON_RECORD_CACHE_DETAIL ++####################################################### ++## END TESTS FOR INITIAL STAGE ###################### ++## PROCEEDING TO UPGRADE STAGE ###################### ++####################################################### + +=== added file 'mysql-test/qa-suite/updown/scenarios/60minor/r/upgrade08.result' +--- mysql-test/qa-suite/updown/scenarios/60minor/r/upgrade08.result 1970-01-01 00:00:00 +0000 ++++ mysql-test/qa-suite/updown/scenarios/60minor/r/upgrade08.result 2009-04-16 10:59:33 +0000 +@@ -0,0 +1,152 @@ ++********************************************* ++*** POST-UPGRADE TEST FOR FALCON *** ++********************************************* ++use updown; ++ ++######################################################################## ++# Create new table that uses the Falcon engine and verify: ++######################################################################## ++ ++CREATE TABLE falcon_table_new_on_upgrade ( ++id INT AUTO_INCREMENT PRIMARY KEY, ++code INT, ++age INT, ++name VARCHAR(255), ++INDEX idx_multi (code, name), ++INDEX idx_code (code) ++) ENGINE = Falcon; ++ ++# Verify table structure and engine: ++SHOW CREATE TABLE falcon_table_new_on_upgrade; ++Table Create Table ++falcon_table_new_on_upgrade CREATE TABLE `falcon_table_new_on_upgrade` ( ++ `id` int(11) NOT NULL AUTO_INCREMENT, ++ `code` int(11) DEFAULT NULL, ++ `age` int(11) DEFAULT NULL, ++ `name` varchar(255) DEFAULT NULL, ++ PRIMARY KEY (`id`), ++ KEY `idx_multi` (`code`,`name`), ++ KEY `idx_code` (`code`) ++) ENGINE=Falcon DEFAULT CHARSET=latin1 ++ ++# Insert some data ++INSERT INTO falcon_table_new_on_upgrade (code, age, name) VALUES ++(-1, -1, 'Upgrade Negative1'), ++(0, 0, 'Upgrade Zero'), ++(5, 5, 'Upgrade Five'), ++(7, 7, 'Upgrade Seven'), ++(1025, 1025, 'Upgrade ThousandTwentyFive'); ++ ++######################################################################## ++# Access old Falcon table: ++######################################################################## ++ ++# Verify table structure and engine: ++SHOW CREATE TABLE falcon_table_from_before_upgrade; ++Table Create Table ++falcon_table_from_before_upgrade CREATE TABLE `falcon_table_from_before_upgrade` ( ++ `id` int(11) NOT NULL AUTO_INCREMENT, ++ `code` int(11) DEFAULT NULL, ++ `age` int(11) DEFAULT NULL, ++ `name` varchar(255) DEFAULT NULL, ++ PRIMARY KEY (`id`), ++ KEY `idx_multi` (`code`,`name`), ++ KEY `idx_code` (`code`) ++) ENGINE=Falcon AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 ++ ++# Verify table contents: ++SELECT * FROM falcon_table_from_before_upgrade; ++id code age name ++1 -1 -1 Negative1 ++2 0 0 Zero ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++# Use index to select range ++SELECT * FROM falcon_table_from_before_upgrade WHERE code > 3; ++id code age name ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++######################################################################## ++# Alter old MYISAM table to use Falcon engine: ++######################################################################## ++ ++ALTER TABLE to_be_falcon_table_after_upgrade ENGINE = Falcon; ++ ++# Verify table structure and engine: ++SHOW CREATE TABLE to_be_falcon_table_after_upgrade; ++Table Create Table ++to_be_falcon_table_after_upgrade CREATE TABLE `to_be_falcon_table_after_upgrade` ( ++ `id` int(11) NOT NULL AUTO_INCREMENT, ++ `code` int(11) DEFAULT NULL, ++ `age` int(11) DEFAULT NULL, ++ `name` varchar(255) DEFAULT NULL, ++ PRIMARY KEY (`id`), ++ KEY `idx_multi` (`code`,`name`), ++ KEY `idx_code` (`code`) ++) ENGINE=Falcon AUTO_INCREMENT=6 DEFAULT CHARSET=latin1 ++ ++# Verify table contents: ++SELECT * FROM to_be_falcon_table_after_upgrade; ++id code age name ++1 -1 -1 Negative1 ++2 0 0 Zero ++3 5 5 Five ++4 7 7 Seven ++5 1025 1025 ThousandTwentyFive ++ ++######################################################################## ++# Check the structure of the information_schema: ++######################################################################## ++ ++use information_schema; ++SHOW TABLES; ++Tables_in_information_schema ++CHARACTER_SETS ++COLLATIONS ++COLLATION_CHARACTER_SET_APPLICABILITY ++COLUMNS ++COLUMN_PRIVILEGES ++ENGINES ++EVENTS ++FILES ++GLOBAL_STATUS ++GLOBAL_VARIABLES ++KEY_COLUMN_USAGE ++PARAMETERS ++PARTITIONS ++PLUGINS ++PROCESSLIST ++PROFILING ++REFERENTIAL_CONSTRAINTS ++ROUTINES ++SCHEMATA ++SCHEMA_PRIVILEGES ++SESSION_STATUS ++SESSION_VARIABLES ++STATISTICS ++TABLES ++TABLESPACES ++TABLE_CONSTRAINTS ++TABLE_PRIVILEGES ++TRIGGERS ++USER_PRIVILEGES ++VIEWS ++FALCON_RECORD_CACHE_SUMMARY ++FALCON_SYSTEM_MEMORY_DETAIL ++FALCON_TABLESPACE_IO ++FALCON_SYSTEM_MEMORY_SUMMARY ++FALCON_VERSION ++FALCON_TRANSACTION_SUMMARY ++FALCON_SERIAL_LOG_INFO ++FALCON_SYNCOBJECTS ++FALCON_TRANSACTIONS ++FALCON_RECORD_CACHE_DETAIL ++ ++####################################################### ++## END TESTS FOR UPGRADE STAGE ###################### ++## PROCEEDING TO DOWNGRADE STAGE ###################### ++####################################################### + +=== added file 'mysql-test/qa-suite/updown/scenarios/60minor/t/downgrade08.test' +--- mysql-test/qa-suite/updown/scenarios/60minor/t/downgrade08.test 1970-01-01 00:00:00 +0000 ++++ mysql-test/qa-suite/updown/scenarios/60minor/t/downgrade08.test 2009-04-16 10:53:50 +0000 +@@ -0,0 +1,68 @@ ++## File: downgrade08.test ++## This is the third and final phase of the updown test: Downgrade. ++## This script is specifically for the Falcon storage engine. ++--echo ********************************************* ++--echo *** POST-DOWNGRADE TEST FOR FALCON *** ++--echo ********************************************* ++ ++######################################## ++# SETUP ++######################################## ++use updown; ++ ++######################################## ++# TEST ++######################################## ++ ++--echo ++--echo ############################################################################ ++--echo # Verify structure of and access to previous Falcon tables after downgrade: ++--echo ############################################################################ ++--echo ++SHOW TABLES; ++ ++--echo ++--echo # Table created before upgrade: ++ ++SHOW CREATE TABLE falcon_table_from_before_upgrade; ++SELECT * FROM falcon_table_from_before_upgrade; ++ ++--echo ++--echo # Use index to select range ++ ++SELECT * FROM falcon_table_from_before_upgrade WHERE code > 3; ++ ++--echo ++--echo # Table created as non-Falcon table before upgrade and altered to Falcon after. ++ ++SHOW CREATE TABLE to_be_falcon_table_after_upgrade; ++SELECT * FROM to_be_falcon_table_after_upgrade; ++ ++--echo ++--echo # Use index to select range ++ ++SELECT * FROM to_be_falcon_table_after_upgrade WHERE code > 3; ++ ++--echo ++--echo # Table created after upgrade ++ ++SHOW CREATE TABLE falcon_table_new_on_upgrade; ++SELECT * FROM falcon_table_new_on_upgrade; ++ ++--echo ++--echo # Use index to select range ++ ++SELECT * FROM falcon_table_new_on_upgrade WHERE code > 3; ++ ++--echo ++--echo ######################################################################## ++--echo # Verify structure of the information_schema: ++--echo ######################################################################## ++--echo ++use information_schema; ++SHOW TABLES; ++ ++--echo ++--echo ####################################################### ++--echo ## END TESTS FOR DOWNGRADE STAGE ###################### ++--echo ####################################################### + +=== added file 'mysql-test/qa-suite/updown/scenarios/60minor/t/initial08.test' +--- mysql-test/qa-suite/updown/scenarios/60minor/t/initial08.test 1970-01-01 00:00:00 +0000 ++++ mysql-test/qa-suite/updown/scenarios/60minor/t/initial08.test 2009-04-16 10:54:22 +0000 +@@ -0,0 +1,98 @@ ++## File: initial08.test ++## This script is the first phase of the updown (upgrade/downgrade) test. ++## This script is specifically for the Falcon storage engine. ++--echo ********************************************* ++--echo *** INITIAL (PRE-UPGRADE) TEST FOR FALCON *** ++--echo ********************************************* ++ ++######################################## ++# SETUP ++######################################## ++ ++--disable_warnings ++DROP DATABASE IF EXISTS updown; ++CREATE DATABASE updown; ++--enable_warnings ++ ++# This variable controls whether single-row INSERT statements produce an information string if warnings occur. ++SET SQL_WARNINGS=1; ++ ++use updown; ++ ++######################################## ++# TEST ++######################################## ++ ++--echo ++--echo ######################################################################## ++--echo # Create table that will later be altered to Falcon engine and verify: ++--echo ######################################################################## ++--echo ++CREATE TABLE to_be_falcon_table_after_upgrade ( ++ id INT AUTO_INCREMENT PRIMARY KEY, ++ code INT, ++ age INT, ++ name VARCHAR(255), ++ INDEX idx_multi (code, name), ++ INDEX idx_code (code) ++ ) ENGINE = MyISAM; ++ ++--echo ++--echo # Insert some data ++ ++INSERT INTO to_be_falcon_table_after_upgrade (code, age, name) VALUES ++ (-1, -1, 'Negative1'), ++ (0, 0, 'Zero'), ++ (5, 5, 'Five'), ++ (7, 7, 'Seven'), ++ (1025, 1025, 'ThousandTwentyFive'); ++ ++--echo ++--echo # Verify contents: ++SELECT * FROM to_be_falcon_table_after_upgrade; ++ ++--echo ++--echo ######################################################################## ++--echo # Create table that is Falcon engine from the start and verify: ++--echo ######################################################################## ++--echo ++CREATE TABLE falcon_table_from_before_upgrade ( ++ id INT AUTO_INCREMENT PRIMARY KEY, ++ code INT, ++ age INT, ++ name VARCHAR(255), ++ INDEX idx_multi (code, name), ++ INDEX idx_code (code) ++ ) ENGINE = Falcon; ++ ++--echo ++--echo # Insert some data ++ ++INSERT INTO falcon_table_from_before_upgrade (code, age, name) VALUES ++ (-1, -1, 'Negative1'), ++ (0, 0, 'Zero'), ++ (5, 5, 'Five'), ++ (7, 7, 'Seven'), ++ (1025, 1025, 'ThousandTwentyFive'); ++ ++--echo ++--echo # Verify structure and engine: ++SHOW CREATE TABLE falcon_table_from_before_upgrade; ++ ++--echo ++--echo # Verify contents: ++SELECT * FROM falcon_table_from_before_upgrade; ++ ++--echo ++--echo ######################################################################## ++--echo # Verify the structure of the information schema before upgrade: ++--echo ######################################################################## ++--echo ++use information_schema; ++SHOW TABLES; ++ ++--echo ####################################################### ++--echo ## END TESTS FOR INITIAL STAGE ###################### ++--echo ## PROCEEDING TO UPGRADE STAGE ###################### ++--echo ####################################################### ++ + +=== modified file 'mysql-test/qa-suite/updown/scenarios/60minor/t/manifest.txt' +--- mysql-test/qa-suite/updown/scenarios/60minor/t/manifest.txt 2008-12-19 13:43:55 +0000 ++++ mysql-test/qa-suite/updown/scenarios/60minor/t/manifest.txt 2009-04-15 15:04:32 +0000 +@@ -21,6 +21,8 @@ + Test 07 Miscellaneous Changes in 6.0: Information Schema, log tables, + utf32 columns and Falcon tables. + ++Test 08 Falcon Specific test for the Falcon storage engine. ++ + Test 90 Dummy Does nothing and should always pass - testing the framework + + + +=== added file 'mysql-test/qa-suite/updown/scenarios/60minor/t/upgrade08.test' +--- mysql-test/qa-suite/updown/scenarios/60minor/t/upgrade08.test 1970-01-01 00:00:00 +0000 ++++ mysql-test/qa-suite/updown/scenarios/60minor/t/upgrade08.test 2009-04-16 10:57:48 +0000 +@@ -0,0 +1,93 @@ ++## File: upgrade08.test ++## This script is the second phase of the updown test: Upgrade. ++## This script is specifically for the Falcon storage engine. ++--echo ********************************************* ++--echo *** POST-UPGRADE TEST FOR FALCON *** ++--echo ********************************************* ++ ++######################################## ++# SETUP ++######################################## ++use updown; ++ ++######################################## ++# TEST ++######################################## ++ ++--echo ++--echo ######################################################################## ++--echo # Create new table that uses the Falcon engine and verify: ++--echo ######################################################################## ++--echo ++CREATE TABLE falcon_table_new_on_upgrade ( ++ id INT AUTO_INCREMENT PRIMARY KEY, ++ code INT, ++ age INT, ++ name VARCHAR(255), ++ INDEX idx_multi (code, name), ++ INDEX idx_code (code) ++ ) ENGINE = Falcon; ++ ++--echo ++--echo # Verify table structure and engine: ++SHOW CREATE TABLE falcon_table_new_on_upgrade; ++ ++--echo ++--echo # Insert some data ++ ++INSERT INTO falcon_table_new_on_upgrade (code, age, name) VALUES ++ (-1, -1, 'Upgrade Negative1'), ++ (0, 0, 'Upgrade Zero'), ++ (5, 5, 'Upgrade Five'), ++ (7, 7, 'Upgrade Seven'), ++ (1025, 1025, 'Upgrade ThousandTwentyFive'); ++ ++--echo ++--echo ######################################################################## ++--echo # Access old Falcon table: ++--echo ######################################################################## ++--echo ++--echo # Verify table structure and engine: ++ ++SHOW CREATE TABLE falcon_table_from_before_upgrade; ++ ++--echo ++--echo # Verify table contents: ++ ++SELECT * FROM falcon_table_from_before_upgrade; ++ ++--echo ++--echo # Use index to select range ++SELECT * FROM falcon_table_from_before_upgrade WHERE code > 3; ++ ++--echo ++--echo ######################################################################## ++--echo # Alter old MYISAM table to use Falcon engine: ++--echo ######################################################################## ++--echo ++ ++ALTER TABLE to_be_falcon_table_after_upgrade ENGINE = Falcon; ++ ++--echo ++--echo # Verify table structure and engine: ++ ++SHOW CREATE TABLE to_be_falcon_table_after_upgrade; ++ ++--echo ++--echo # Verify table contents: ++ ++SELECT * FROM to_be_falcon_table_after_upgrade; ++ ++--echo ++--echo ######################################################################## ++--echo # Check the structure of the information_schema: ++--echo ######################################################################## ++--echo ++use information_schema; ++SHOW TABLES; ++ ++--echo ++--echo ####################################################### ++--echo ## END TESTS FOR UPGRADE STAGE ###################### ++--echo ## PROCEEDING TO DOWNGRADE STAGE ###################### ++--echo ####################################################### + === added file 'upgrade-downgrade/prepare_test.bash' --- a/upgrade-downgrade/prepare_test.bash 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/prepare_test.bash 2009-04-24 10:38:01 +0000 @@ -0,0 +1,117 @@ +#! /bin/bash +# +# Prepares the customized upgrade/downgrade test against the Falcon storage +# engine. +# +# Requires: Checked out / available working copies of +# mysql-test-extra-6.0 (for the up/down test framework) +# - "NEW" version of MySQL Server with the falcon storage engine and MTR. +# - "OLD" version of MySQL Server with the falcon storage engine and MTR. +# +# This script does the following: +# - verifies that the required MySQL versions exist and are available. +# - Test drives MTR with Falcon in all versions to be tested. +# - creates symlinks in the mysql-test/suite directory of each version to +# be tested, pointing to the test suite "updown" in the test-extra repository. +# +# +# HOW TO SPECIFY WHICH VERSIONS TO TEST? +# - edit the file referred to by the variable $UPDOWN_ENV_FILE (see host script) +# (e.g. "trd_falcon_updown.env") in this directory before running the test. +# +# +# John Embretsen, , 2009-04-23. +# + + +# +# Hostname. Needed for various paths, directories, includes. +# +HOSTNAME=$(hostname) + +# +# Name of directory where this script is located +# +DIRNAME="${0%/*}" + +cd ${DIRNAME} + +## +## Includes. +## +## There should be one include file per host, specifying +## platform/host specific variables (paths etc.). +# +HOST_INCLUDE_FILE="include/host_${HOSTNAME}.inc" +if [ ! -f "${HOST_INCLUDE_FILE}" ]; then + echo "[ERROR_runme] Include file for host ${HOSTNAME} not found." + echo "Was looking for: ${PWD}/${HOST_INCLUDE_FILE}" + echo "Exiting." + exit 1 +fi +source ${HOST_INCLUDE_FILE} + +# Working directory for this script. +cd ${AUTO_BASE} + +# +# Files and directories. +# +LOG=${LOG_DIR}/prepare_test.log + +# +# Read paths from the environment file +# We need: +# TOP_DIR_OLD (top-level dir of installation / src+build of OLD version to test.) +# TOP_DIR_NEW (top-level dir of installation / src+build of NEW version to test.) +# +source ${UPDOWN_ENV_FILE} + +echo "[INFO] TOP_DIR_OLD=${TOP_DIR_OLD}" >> $LOG +echo "[INFO] TOP_DIR_NEW=${TOP_DIR_OLD}" >> $LOG + +# +# Copy test environment file to the test-extra working dir. +# +echo "[INFO] Copying ${UPDOWN_ENV_FILE} to ${UPDOWN_DIR}" >> $LOG +cp ${UPDOWN_ENV_FILE} ${UPDOWN_DIR}/bin/ 2>$LOG + +# +# Verify that MTR v1 + Falcon works in each version to be tested. +# Then create symbolic links to the updown suite in test-extra. +# +TEST_CMD="perl mysql-test-run.pl --suite=falcon falcon_options" +export MTR_VERSION=1 +MTR_OUTPUT="mtr-tmp.log" + +# OLD version: +echo "[INFO] Verifying MTR + Falcon in OLD version..." >> $LOG +cd ${TOP_DIR_OLD}/mysql-test +${TEST_CMD} >> ${MTR_OUTPUT} 2>&1 +if [ $? -ne 0 ]; then + echo "[ERROR_prepare_OLD] MTR test run '${TEST_CMD}' failed!" >> $LOG + echo "[ERROR_prepare_NEW] Log from ${TOP_DIR_NEW}:" >> $LOG + echo "" >> $LOG + cat ${MTR_OUTPUT} >> $LOG + exit 1 +fi +ln -s ${UPDOWN_DIR} suite/updown >> $LOG 2>&1 + +# NEW version: +echo "[INFO] Verifying MTR + Falcon in NEW version..." >> $LOG +cd ${TOP_DIR_NEW}/mysql-test +${TEST_CMD} >> ${MTR_OUTPUT} 2>&1 +if [ $? -ne 0 ]; then + echo "[ERROR_prepare_NEW] MTR test run '${TEST_CMD}' failed!" >> $LOG + echo "[ERROR_prepare_NEW] Log from ${TOP_DIR_NEW}:" >> $LOG + echo "" >> $LOG + cat ${MTR_OUTPUT} >> $LOG + exit 1 +fi +ln -s ${UPDOWN_DIR} suite/updown >> $LOG 2>&1 + +# +# CD back to our own working dir. +# +cd ${AUTO_BASE} + === added file 'upgrade-downgrade/run_test.bash' --- a/upgrade-downgrade/run_test.bash 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/run_test.bash 2009-04-24 10:38:01 +0000 @@ -0,0 +1,96 @@ +#! /bin/bash +# +# Runs the customized upgrade/downgrade test. Do not execute this script +# directly, see RUNME.bash instead. +# +# John Embretsen, , 2009-04-23. +# + + +# +# Hostname. Needed for various paths, directories, includes. +# +HOSTNAME=$(hostname) + +# +# Name of directory where this script is located. +# +DIRNAME="${0%/*}" + +cd ${DIRNAME} + +## +## Includes. +## +## There should be one include file per host, specifying +## platform/host specific variables (paths etc.). +# +HOST_INCLUDE_FILE="include/host_${HOSTNAME}.inc" +if [ ! -f "${HOST_INCLUDE_FILE}" ]; then + echo "[ERROR_runme] Include file for host ${HOSTNAME} not found." + echo "Was looking for: ${PWD}/${HOST_INCLUDE_FILE}" + echo "Exiting." + exit 1 +fi +source ${HOST_INCLUDE_FILE} + +# Working directory for this script. +cd ${AUTO_BASE} + +# +# Read paths from the environment file +# We need: +# TOP_DIR_OLD (top-level dir of installation / src+build of OLD version to test.) +# TOP_DIR_NEW (top-level dir of installation / src+build of NEW version to test.) +# +# for retreiving server error logs. +# +source ${UPDOWN_ENV_FILE} + +# Assumes that all called scripts are present in the directory pointed to by +# the variable AUTO_BASE, set in this host's include script. + +# +# Files +# +LOG="${LOG_DIR}/run_test.log" + +# +# Run the test and store the output +# +cd ${UPDOWN_DIR}/bin +if [ $? -ne 0 ]; then + echo "[ERROR_run] Unable to cd to ${UPDOWN_DIR}! Exiting." >> $LOG + echo "[ERROR_run] Unable to cd to ${UPDOWN_DIR}!" + echo "See logs in ${LOG} for details. Exiting." + exit 1 +fi + +ENV_FILE_BASENAME="${UPDOWN_ENV_FILE##*/}" +RUN_CMD="./run_updown --config=${ENV_FILE_BASENAME} --scenario=60minor-falcon.tst --test-num=08" + +echo "[INFO] Running the following command:" >> $LOG +echo " ${RUN_CMD}" >> $LOG +echo "" >> $LOG + +export MTR_VERSION=1 +${RUN_CMD} >> $LOG 2>&1 +if [ $? -ne 0 ]; then + echo "[FAIL] Run of updown test failed!" >> $LOG + echo "[INFO] Attempting to get server error log from upgrade..." >> $LOG + ERROR_LOG_NEW="${TOP_DIR_NEW}/mysql-test/var/log/master.err" + if [ -f "${ERROR_LOG_NEW}" ]; then + echo "[INFO] master.err from NEW version ${TOP_DIR_NEW}:" >> $LOG + echo "" >> $LOG + cat ${ERROR_LOG_NEW} >> $LOG + else + echo "[ERROR_run_test] Unable to find error log from NEW server." >> $LOG + fi + + echo "[FAIL] Run of updown test failed!" + echo "See ${LOG} for details. Exiting." + exit 1 +else + echo "[INFO] Testrun completed successfully (exit code 0)" >> $LOG +fi + === added file 'upgrade-downgrade/trd_falcon_updown_linux-32bit.env' --- a/upgrade-downgrade/trd_falcon_updown_linux-32bit.env 1970-01-01 00:00:00 +0000 +++ b/upgrade-downgrade/trd_falcon_updown_linux-32bit.env 2009-04-24 10:38:01 +0000 @@ -0,0 +1,49 @@ +################################################################################ +# +# Attention: This bourne Shell script is a temporary solution. +# The final script will be written in Perl. +# +################################################################################ +# +# Idea: ML +# Created by: SK +# Modified by: EM, JHE +# +# 2007-05-17 OBN - Split the original confg file to test related +# and environment related config files +########################################################################### +SUITE="updown" + +TOP_DIR_OLD=/export/home/tmp/falconQA/mysql-releases/mysql-6.0.9-alpha-linux-i686-glibc23 # Top directory of old MySQL version +TOP_DIR_NEW=/export/home/tmp/falconQA/mysql-releases/mysql-6.0.10-alpha-linux-i686-glibc23 +#TOP_DIR_NEW=/export/home/tmp/falconQA/bzr-repos/server/mysql-6.0-falcon-team # Top directory of new MySQL version +TOP_TEST_EXTRA=/home/je159969/mysql/bzr-repos/mysql-test-extra-6.0 # Top directory for mysql-test-extra + +WINDOWS=0 # Set to '1' if running on Windows + +SERVER_HOST="localhost" # Server hostname: + # for local connections + # for remote connections + +SERVER_PORT="10010" # Port for remote connections + +VAR_DIR=/tmp/falcon-upgrade/var # Variable pointing to the var'directory + +MAATKIT_BASEDIR=/data0/maatkit # BASEDIR for maatkit suite that is used + # in replication modes for checking of consistency + # with checksum method + + +# The following variables are used for storing result files fir the different +# up/down permutations during the test runs. Names are relative to the location +# of the 'scenario' directory in test-extra +DD_DIR=res_dd # Upgrade/downgrade using a dump file +DL_DIR=res_dl # Upgrade using dump file, live downgrade +LD_DIR=res_ld # Live upgrade, using dump file for downgrade +LL_DIR=res_ll # live upgrade and downgrade + +# TZ=GMT+2 # Set timezone variable if needed + +################################################################################ + + --Boundary_(ID_BI89RZU4Y4Jx+m1h1CNPfw) MIME-version: 1.0 Content-type: text/bzr-bundle; name="bzr/hky@stripped"; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/hky@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: hky@stripped # target_branch: file:///home/hakan/work/mysql-falcon/ # testament_sha1: e9ac0f793c38ae37e4d13f03aeef56311a3dc48e # timestamp: 2009-04-24 12:52:52 +0200 # source_branch: file:///home/hakan/work/mysql-falcon/ # base_revision_id: hky@stripped # # Begin bundle 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 --Boundary_(ID_BI89RZU4Y4Jx+m1h1CNPfw)--