summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2004-04-14 22:23:50 +0400
committerunknown <sergefp@mysql.com>2004-04-14 22:23:50 +0400
commite7c3e1587f291c9b1d69af4d333bf5333d7f1b9b (patch)
treea54549f6af54d4ad311cf01d6cb21674024ae7e0 /mysql-test
parent4a26ea142a80addd942034deed930794bb51868d (diff)
parentf76d2ce34f4947648fc910669b4639182da6dbaa (diff)
downloadmariadb-git-e7c3e1587f291c9b1d69af4d333bf5333d7f1b9b.tar.gz
Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.com:/dbdata/psergey/mysql-4.1-ps-merge
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/mysql-test-run.sh41
-rwxr-xr-xmysql-test/ndb/install_ndbcluster148
-rw-r--r--mysql-test/ndb/ndb_config_2_node.ini133
-rwxr-xr-xmysql-test/ndb/stop_ndbcluster52
4 files changed, 374 insertions, 0 deletions
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index 96ac17755ac..f47c63160eb 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -212,6 +212,8 @@ EXTRA_MYSQL_TEST_OPT=""
EXTRA_MYSQLDUMP_OPT=""
EXTRA_MYSQLBINLOG_OPT=""
USE_RUNNING_SERVER=""
+USE_NDBCLUSTER=""
+USE_RUNNING_NDBCLUSTER=""
DO_GCOV=""
DO_GDB=""
MANUAL_GDB=""
@@ -241,6 +243,11 @@ while test $# -gt 0; do
SLAVE_MYSQLD=`$ECHO "$1" | $SED -e "s;--slave-binary=;;"` ;;
--local) USE_RUNNING_SERVER="" ;;
--extern) USE_RUNNING_SERVER="1" ;;
+ --with-ndbcluster)
+ USE_NDBCLUSTER="--with-ndbcluster" ;;
+ --ndbconnectstring=*)
+ USE_NDBCLUSTER="--with-ndbcluster" ;
+ USE_RUNNING_NDBCLUSTER=`$ECHO "$1" | $SED -e "s;--ndbconnectstring=;;"` ;;
--tmpdir=*) MYSQL_TMP_DIR=`$ECHO "$1" | $SED -e "s;--tmpdir=;;"` ;;
--local-master)
MASTER_MYPORT=3306;
@@ -894,6 +901,7 @@ start_master()
--local-infile \
--exit-info=256 \
--core \
+ $USE_NDBCLUSTER \
--datadir=$MASTER_MYDDIR \
--pid-file=$MASTER_MYPID \
--socket=$MASTER_MYSOCK \
@@ -919,6 +927,7 @@ start_master()
--character-sets-dir=$CHARSETSDIR \
--default-character-set=$CHARACTER_SET \
--core \
+ $USE_NDBCLUSTER \
--tmpdir=$MYSQL_TMP_DIR \
--language=$LANGUAGE \
--innodb_data_file_path=ibdata1:50M \
@@ -1402,6 +1411,15 @@ then
fi
fi
+ if [ ! -z "$USE_NDBCLUSTER" ]
+ then
+ if [ -z "$USE_RUNNING_NDBCLUSTER" ]
+ then
+ # Kill any running ndbcluster stuff
+ ./ndb/stop_ndbcluster
+ fi
+ fi
+
# Remove files that can cause problems
$RM -f $MYSQL_TEST_DIR/var/run/* $MYSQL_TEST_DIR/var/tmp/*
@@ -1412,6 +1430,20 @@ then
wait_for_slave=$SLEEP_TIME_FOR_FIRST_SLAVE
$ECHO "Installing Test Databases"
mysql_install_db
+
+ if [ ! -z "$USE_NDBCLUSTER" ]
+ then
+ if [ -z "$USE_RUNNING_NDBCLUSTER" ]
+ then
+ echo "Starting ndbcluster"
+ ./ndb/install_ndbcluster --initial --data-dir=$MASTER_MYDDIR || exit 1
+ export NDB_CONNECTSTRING=`cat Ndb.cfg`
+ else
+ export NDB_CONNECTSTRING="$USE_RUNNING_NDBCLUSTER"
+ echo "Using ndbcluster at $NDB_CONNECTSTRING"
+ fi
+ fi
+
start_manager
# Do not automagically start daemons if we are in gdb or running only one test
@@ -1492,6 +1524,15 @@ then
mysql_stop
fi
+if [ ! -z "$USE_NDBCLUSTER" ]
+then
+if [ -z "$USE_RUNNING_NDBCLUSTER" ]
+then
+ # Kill any running ndbcluster stuff
+ ./ndb/stop_ndbcluster
+fi
+fi
+
stop_manager
report_stats
$ECHO
diff --git a/mysql-test/ndb/install_ndbcluster b/mysql-test/ndb/install_ndbcluster
new file mode 100755
index 00000000000..dab94db759e
--- /dev/null
+++ b/mysql-test/ndb/install_ndbcluster
@@ -0,0 +1,148 @@
+#!/bin/sh
+# Copyright (C) 2004 MySQL AB
+# For a more info consult the file COPYRIGHT distributed with this file
+
+# This scripts starts the table handler ndbcluster
+
+# configurable parameters, make sure to change in mysqlcluterd as well
+port_base="22" # using ports port_base{"00","01", etc}
+fsdir=`pwd`
+# end configurable parameters
+
+libdir=`pwd`/../ndb/lib
+bindir=`pwd`/../ndb/bin
+
+pidfile=ndbcluster.pid
+
+while test $# -gt 0; do
+ case "$1" in
+ --initial)
+ flags_ndb=$flags_ndb" -i"
+ initial_ndb=1
+ ;;
+ --data-dir=*)
+ fsdir=`echo "$1" | sed -e "s;--data-dir=;;"`
+ ;;
+ --port-base=*)
+ port_base=`echo "$1" | sed -e "s;--port-base=;;"`
+ ;;
+ -- ) shift; break ;;
+ --* ) $ECHO "Unrecognized option: $1"; exit 1 ;;
+ * ) break ;;
+ esac
+ shift
+done
+
+exec_ndb=$bindir/ndb
+exec_mgmtsrvr=$bindir/mgmtsrvr
+fs_ndb=$fsdir/ndbcluster
+fs_mgm_1=$fs_ndb/1.ndb_mgm
+fs_ndb_2=$fs_ndb/2.ndb_db
+fs_ndb_3=$fs_ndb/3.ndb_db
+fs_name_2=$fs_ndb/node-2-fs
+fs_name_3=$fs_ndb/node-3-fs
+
+NDB_HOME=
+export NDB_CONNECTSTRING
+if [ ! -x $fsdir ]; then
+ echo "$fsdir missing"
+ exit 1
+fi
+if [ ! -x $exec_ndb ]; then
+ echo "$exec_ndb missing"
+ exit 1
+fi
+if [ ! -x $exec_mgmtsrv ]; then
+ echo "$exec_mgmtsrvr missing"
+ exit 1
+fi
+
+start_default_ndbcluster() {
+
+# do some checks
+
+NDB_CONNECTSTRING=
+
+if [ $initial_ndb ] ; then
+ mkdir $fs_ndb
+ mkdir $fs_mgm_1
+ mkdir $fs_ndb_2
+ mkdir $fs_ndb_3
+ mkdir $fs_name_2
+ mkdir $fs_name_3
+fi
+if [ -d "$fs_ndb" -a -d "$fs_mgm_1" -a -d "$fs_ndb_2" -a -d "$fs_ndb_3" -a -d "$fs_name_2" -a -d "$fs_name_3" ]; then :; else
+ echo "$fs_ndb filesystem directory does not exist"
+ exit 1
+fi
+
+# set som help variables
+
+ndb_host="localhost"
+ndb_port=$port_base"00"
+NDB_CONNECTSTRING_BASE="host=$ndb_host:$ndb_port;nodeid="
+
+
+# Start management server as deamon
+
+NDB_ID="1"
+NDB_CONNECTSTRING=$NDB_CONNECTSTRING_BASE$NDB_ID
+
+# Edit file system path and ports in config file
+
+if [ $initial_ndb ] ; then
+sed \
+ -e s,"CHOOSE_HOSTNAME_".*,"$ndb_host",g \
+ -e s,"CHOOSE_FILESYSTEM_NODE_2","$fs_name_2",g \
+ -e s,"CHOOSE_FILESYSTEM_NODE_3","$fs_name_3",g \
+ -e s,"CHOOSE_PORT_BASE",$port_base,g \
+ < ndb/ndb_config_2_node.ini \
+ > "$fs_mgm_1/config.ini"
+fi
+
+if ( cd $fs_mgm_1 ; echo $NDB_CONNECTSTRING > Ndb.cfg ; $exec_mgmtsrvr -d -c config.ini ) ; then :; else
+ echo "Unable to start $exec_mgmtsrvr from `pwd`"
+ exit 1
+fi
+
+cat `find $fs_ndb -name 'node*.pid'` > $pidfile
+
+# Start database node
+
+NDB_ID="2"
+NDB_CONNECTSTRING=$NDB_CONNECTSTRING_BASE$NDB_ID
+( cd $fs_ndb_2 ; echo $NDB_CONNECTSTRING > Ndb.cfg ; $exec_ndb -d $flags_ndb & )
+
+cat `find $fs_ndb -name 'node*.pid'` > $pidfile
+
+# Start database node
+
+NDB_ID="3"
+NDB_CONNECTSTRING=$NDB_CONNECTSTRING_BASE$NDB_ID
+( cd $fs_ndb_3 ; echo $NDB_CONNECTSTRING > Ndb.cfg ; $exec_ndb -d $flags_ndb & )
+
+cat `find $fs_ndb -name 'node*.pid'` > $pidfile
+
+# Start management client
+
+sleep 5
+echo "show" | $bindir/mgmtclient $ndb_host $ndb_port
+
+# test if Ndb Cluster starts properly
+
+NDB_ID="11"
+NDB_CONNECTSTRING=$NDB_CONNECTSTRING_BASE$NDB_ID
+#if ( export LD_LIBRARY_PATH=$libdir ; $bindir/list_tables ) | grep "NDBT_ProgramExit: 0 - OK"; then :; else
+if ( export LD_LIBRARY_PATH=$libdir ; $bindir/waiter ) | grep "NDBT_ProgramExit: 0 - OK"; then :; else
+ echo "Ndbcluster startup failed"
+ exit 1
+fi
+
+echo $NDB_CONNECTSTRING > Ndb.cfg
+
+cat `find $fs_ndb -name 'node*.pid'` > $pidfile
+}
+
+start_default_ndbcluster
+
+exit 0
diff --git a/mysql-test/ndb/ndb_config_2_node.ini b/mysql-test/ndb/ndb_config_2_node.ini
new file mode 100644
index 00000000000..9e0f8254c78
--- /dev/null
+++ b/mysql-test/ndb/ndb_config_2_node.ini
@@ -0,0 +1,133 @@
+[DB DEFAULT]
+#NoOfFragmentLogfiles: 1
+#TimeBetweenLocalCheckpoints: 31
+NoOfReplicas: 2
+
+[COMPUTER]
+Id: 1
+ByteOrder: Little
+HostName: CHOOSE_HOSTNAME_1
+
+[COMPUTER]
+Id: 2
+ByteOrder: Little
+HostName: CHOOSE_HOSTNAME_2
+
+[COMPUTER]
+Id: 3
+ByteOrder: Little
+HostName: CHOOSE_HOSTNAME_3
+
+[COMPUTER]
+Id: 4
+ByteOrder: Little
+HostName: CHOOSE_HOSTNAME_4
+
+[COMPUTER]
+Id: 5
+ByteOrder: Little
+HostName: CHOOSE_HOSTNAME_5
+
+[COMPUTER]
+Id: 6
+ByteOrder: Little
+HostName: CHOOSE_HOSTNAME_6
+
+[COMPUTER]
+Id: 7
+ByteOrder: Little
+HostName: CHOOSE_HOSTNAME_7
+
+[MGM]
+Id: 1
+ExecuteOnComputer: 1
+PortNumber: CHOOSE_PORT_BASE00
+PortNumberStats: CHOOSE_PORT_BASE01
+
+
+[DB]
+Id: 2
+ExecuteOnComputer: 2
+FileSystemPath: CHOOSE_FILESYSTEM_NODE_2
+
+[DB]
+Id: 3
+ExecuteOnComputer: 3
+FileSystemPath: CHOOSE_FILESYSTEM_NODE_3
+
+[API]
+Id: 11
+ExecuteOnComputer: 4
+
+[API]
+Id: 12
+ExecuteOnComputer: 5
+
+[API]
+Id: 13
+ExecuteOnComputer: 6
+
+[API]
+Id: 14
+ExecuteOnComputer: 7
+
+# Mgmtsrvr connections
+
+[TCP]
+NodeId1: 1
+NodeId2: 2
+PortNumber: CHOOSE_PORT_BASE02
+
+[TCP]
+NodeId1: 1
+NodeId2: 3
+PortNumber: CHOOSE_PORT_BASE03
+
+# Ndb nodes connections
+
+[TCP]
+NodeId1: 2
+NodeId2: 3
+PortNumber: CHOOSE_PORT_BASE04
+
+# Api connections
+
+[TCP]
+NodeId1: 11
+NodeId2: 2
+PortNumber: CHOOSE_PORT_BASE05
+
+[TCP]
+NodeId1: 11
+NodeId2: 3
+PortNumber: CHOOSE_PORT_BASE06
+
+[TCP]
+NodeId1: 12
+NodeId2: 2
+PortNumber: CHOOSE_PORT_BASE07
+
+[TCP]
+NodeId1: 12
+NodeId2: 3
+PortNumber: CHOOSE_PORT_BASE08
+
+[TCP]
+NodeId1: 13
+NodeId2: 2
+PortNumber: CHOOSE_PORT_BASE09
+
+[TCP]
+NodeId1: 13
+NodeId2: 3
+PortNumber: CHOOSE_PORT_BASE10
+
+[TCP]
+NodeId1: 14
+NodeId2: 2
+PortNumber: CHOOSE_PORT_BASE11
+
+[TCP]
+NodeId1: 14
+NodeId2: 3
+PortNumber: CHOOSE_PORT_BASE12
diff --git a/mysql-test/ndb/stop_ndbcluster b/mysql-test/ndb/stop_ndbcluster
new file mode 100755
index 00000000000..09e22cf69c4
--- /dev/null
+++ b/mysql-test/ndb/stop_ndbcluster
@@ -0,0 +1,52 @@
+#!/bin/sh
+# Copyright (C) 2004 MySQL AB
+# For a more info consult the file COPYRIGHT distributed with this file
+
+# This scripts stops the table handler ndbcluster
+
+bindir=`pwd`/../ndb/bin
+pidfile=ndbcluster.pid
+cfgfile=Ndb.cfg
+
+while test $# -gt 0; do
+ case "$1" in
+ --port-base=*)
+ port_base=`echo "$1" | sed -e "s;--port-base=;;"`
+ ;;
+ -- ) shift; break ;;
+ --* ) $ECHO "Unrecognized option: $1"; exit 1 ;;
+ * ) break ;;
+ esac
+ shift
+done
+
+stop_default_ndbcluster() {
+
+if [ ! -f $pidfile ] ; then
+ exit 0
+fi
+
+if [ ! -f $cfgfile ] ; then
+ echo "$cfgfile missing"
+ exit 1
+fi
+
+ndb_host=`cat $cfgfile | sed -e "s,.*host=\(.*\)\:.*,\1,1"`
+ndb_port=`cat $cfgfile | sed -e "s,.*host=$ndb_host\:\([0-9]*\).*,\1,1"`
+
+# Start management client
+
+exec_mgmtclient="$bindir/mgmtclient --try-reconnect=1 $ndb_host $ndb_port"
+
+echo "$exec_mgmtclient"
+echo "all stop" | $exec_mgmtclient
+
+sleep 5
+
+kill `cat $pidfile`
+rm $pidfile
+}
+
+stop_default_ndbcluster
+
+exit 0