List:Commits« Previous MessageNext Message »
From:Hakan Kuecuekyilmaz Date:April 24 2009 10:52am
Subject:bzr commit into mysql-falcon branch (hky:381)
View as plain text  
#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, <john dot embretsen at sun dot com>, 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_<hostname>.inc" first. Copy from another host_<hostname>.inc
+# file and adjust the variables as necessary.
+#
+# John Embretsen, <john dot embretsen at sun dot com>, 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_<hostname>.inc" first. Copy from another host_<hostname>.inc
+# file and adjust the variables as necessary.
+#
+# John Embretsen, <john dot embretsen at sun dot com>, 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_<hostname>.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, <john dot embretsen at sun dot com>, 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, <john dot embretsen at sun dot com>, 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, <hakan at mysql dot com>, 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, <hakan at mysql dot com>, 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, <john dot embretsen at sun dot com>, 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, <john dot embretsen at sun dot com>, 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, <john dot embretsen at sun dot com>, 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:
+                                            # <localhost> for local connections
+                                            # <some-host-name> 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
+
+################################################################################
+
+


Attachment: [text/bzr-bundle] bzr/hky@sun.com-20090424105243-xabjhjziclgc81zg.bundle
Thread
bzr commit into mysql-falcon branch (hky:381)Hakan Kuecuekyilmaz24 Apr