List:Commits« Previous MessageNext Message »
From:rburnett Date:January 5 2007 6:15pm
Subject:Connector/NET commit: r531 - in branches/1.0: . TestSuite
View as plain text  
Modified:
   branches/1.0/Client.build
   branches/1.0/TestSuite/BaseTest.cs
   branches/1.0/TestSuite/StoredProcedure.cs
Log:
Client.build - adding shared memory as excluded until I find out why shared mem connections are not working on the CI machine.

BaseTest.cs - Added database to the suExec connection string.  Also added Is51 property



Modified: branches/1.0/Client.build
===================================================================
--- branches/1.0/Client.build	2007-01-05 17:55:12 UTC (rev 530)
+++ branches/1.0/Client.build	2007-01-05 18:15:29 UTC (rev 531)
@@ -149,13 +149,13 @@
 		<call target="testdb"/>  -->
 
 		<echo message="Testing MySQL 5.0"/>
-		<property name="excludes" value="NotWorking"/>
+		<property name="excludes" value="SharedMemory,NotWorking"/>
 		<property name="config" value="mysql-50.config"/>
 		<!--<property name="doCoverage" value="true"/>-->
 		<call target="testdb"/>
 
 		<echo message="Testing MySQL 5.1"/>
-		<property name="excludes" value="NotWorking"/>
+		<property name="excludes" value="SharedMemory,NotWorking"/>
 		<property name="config" value="mysql-51.config"/>
 		<call target="testdb"/>
 	</target>

Modified: branches/1.0/TestSuite/BaseTest.cs
===================================================================
--- branches/1.0/TestSuite/BaseTest.cs	2007-01-05 17:55:12 UTC (rev 530)
+++ branches/1.0/TestSuite/BaseTest.cs	2007-01-05 18:15:29 UTC (rev 531)
@@ -26,17 +26,17 @@
 
 namespace MySql.Data.MySqlClient.Tests
 {
-	/// <summary>
-	/// Summary description for BaseTest.
-	/// </summary>
-	public class BaseTest
-	{
-		protected MySqlConnection conn;
-		protected string table;
-		protected string csAdditions = String.Empty;
-		protected string host;
-		protected string user;
-		protected string password;
+    /// <summary>
+    /// Summary description for BaseTest.
+    /// </summary>
+    public class BaseTest
+    {
+        protected MySqlConnection conn;
+        protected string table;
+        protected string csAdditions = String.Empty;
+        protected string host;
+        protected string user;
+        protected string password;
         protected int port;
         protected string pipeName;
         protected string memoryName;
@@ -44,14 +44,14 @@
         protected string rootUser;
         protected string rootPassword;
 
-		public BaseTest()
-		{
+        public BaseTest()
+        {
             databases = new string[2];
 
             csAdditions = ";pooling=false;";
-			user = "root";
-			password = "";
-			host = "localhost";
+            user = "root";
+            password = "";
+            host = "localhost";
             databases[0] = "test";
             databases[1] = "root";
             port = 3306;
@@ -93,13 +93,13 @@
                 memoryName = strMemName;
         }
 
-		protected virtual string GetConnectionInfo()
-		{
+        protected virtual string GetConnectionInfo()
+        {
             return String.Format("protocol=tcp;port={0}", port);
         }
 
-		protected string GetConnectionString(bool includedb)
-		{
+        protected string GetConnectionString(bool includedb)
+        {
             string connStr = String.Format("server={0};user id={1};password={2};" +
                  "persist security info=true;{3}", host, user, password, csAdditions);
             if (includedb)
@@ -120,117 +120,126 @@
             return connStr;
         }
 
-		protected void Open()
-		{
-			try
-			{
-				string connString = GetConnectionString(true);
-				conn = new MySqlConnection(connString);
-				conn.Open();
-			}
-			catch (Exception ex)
-			{
-				System.Diagnostics.Trace.WriteLine(ex.Message);
-				throw;
-			}
-		}
+        protected void Open()
+        {
+            try
+            {
+                string connString = GetConnectionString(true);
+                conn = new MySqlConnection(connString);
+                conn.Open();
+            }
+            catch (Exception ex)
+            {
+                System.Diagnostics.Trace.WriteLine(ex.Message);
+                throw;
+            }
+        }
 
-		protected void Close()
-		{
-			try
-			{
-				// delete the table we created.
-				if (conn.State == ConnectionState.Closed)
-					conn.Open();
-				execSQL("DROP TABLE IF EXISTS Test");
-				conn.Close();
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-		}
+        protected void Close()
+        {
+            try
+            {
+                // delete the table we created.
+                if (conn.State == ConnectionState.Closed)
+                    conn.Open();
+                execSQL("DROP TABLE IF EXISTS Test");
+                conn.Close();
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+        }
 
-		protected bool Is50
-		{
-			get
-			{
-				string v = conn.ServerVersion;
-				return v.StartsWith("5.0") || v.StartsWith("5.1");
-			}
-		}
+        protected bool Is51
+        {
+            get
+            {
+                string v = conn.ServerVersion;
+                return v.StartsWith("5.1");
+            }
+        }
 
-		protected bool Is41
-		{
-			get { return conn.ServerVersion.StartsWith("4.1"); }
-		}
+        protected bool Is50
+        {
+            get
+            {
+                string v = conn.ServerVersion;
+                return v.StartsWith("5.0") || v.StartsWith("5.1");
+            }
+        }
 
-		protected bool Is40
-		{
-			get { return conn.ServerVersion.StartsWith("4.0"); }
-		}
+        protected bool Is41
+        {
+            get { return conn.ServerVersion.StartsWith("4.1"); }
+        }
 
-		[SetUp]
-		protected virtual void Setup()
-		{
-			try
-			{
-				IDataReader reader = execReader("SHOW TABLES LIKE 'Test'");
-				bool exists = reader.Read();
-				reader.Close();
-				if (exists)
-					execSQL("TRUNCATE TABLE Test");
-				if (Is50)
-				{
-					execSQL("DROP PROCEDURE IF EXISTS spTest");
-					execSQL("DROP FUNCTION IF EXISTS fnTest");
-				}
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-		}
+        protected bool Is40
+        {
+            get { return conn.ServerVersion.StartsWith("4.0"); }
+        }
 
-		[TearDown]
-		protected virtual void Teardown()
-		{
-			if (Is50)
-			{
-				execSQL("DROP PROCEDURE IF EXISTS spTest");
-				execSQL("DROP FUNCTION IF EXISTS fnTest");
-			}
-		}
+        [SetUp]
+        protected virtual void Setup()
+        {
+            try
+            {
+                IDataReader reader = execReader("SHOW TABLES LIKE 'Test'");
+                bool exists = reader.Read();
+                reader.Close();
+                if (exists)
+                    execSQL("TRUNCATE TABLE Test");
+                if (Is50)
+                {
+                    execSQL("DROP PROCEDURE IF EXISTS spTest");
+                    execSQL("DROP FUNCTION IF EXISTS fnTest");
+                }
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+        }
 
-		protected void KillConnection(MySqlConnection c)
-		{
-			int threadId = c.ServerThread;
-			MySqlCommand cmd = new MySqlCommand("KILL " + threadId, conn);
-			try
-			{
-				cmd.ExecuteNonQuery();
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-			c.Ping();  // this final ping will cause MySQL to clean up the killed thread
-		}
+        [TearDown]
+        protected virtual void Teardown()
+        {
+            if (Is50)
+            {
+                execSQL("DROP PROCEDURE IF EXISTS spTest");
+                execSQL("DROP FUNCTION IF EXISTS fnTest");
+            }
+        }
 
-		protected void createTable(string sql, string engine)
-		{
-			if (Is41 || Is50)
-				sql += " ENGINE=" + engine;
-			else
-				sql += " TYPE=" + engine;
-			execSQL(sql);
-		}
+        protected void KillConnection(MySqlConnection c)
+        {
+            int threadId = c.ServerThread;
+            MySqlCommand cmd = new MySqlCommand("KILL " + threadId, conn);
+            try
+            {
+                cmd.ExecuteNonQuery();
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            c.Ping();  // this final ping will cause MySQL to clean up the killed thread
+        }
 
+        protected void createTable(string sql, string engine)
+        {
+            if (Is41 || Is50)
+                sql += " ENGINE=" + engine;
+            else
+                sql += " TYPE=" + engine;
+            execSQL(sql);
+        }
+
         protected void suExecSQL(string sql)
         {
-			string connStr = String.Format("server={0};user id={1};password={2};" +
-				 "persist security info=true;{3}", host, rootUser, rootPassword, csAdditions);
-			connStr += GetConnectionInfo();
+            string connStr = String.Format("server={0};user id={1};password={2};database={3};" +
+                 "persist security info=true;{4}", host, rootUser, rootPassword, databases[0], csAdditions);
+            connStr += GetConnectionInfo();
 
             MySqlConnection c = new MySqlConnection(connStr);
             c.Open();
@@ -239,17 +248,17 @@
             c.Close();
         }
 
-		protected void execSQL(string sql)
-		{
-			MySqlCommand cmd = new MySqlCommand(sql, conn);
-			cmd.ExecuteNonQuery();
-		}
+        protected void execSQL(string sql)
+        {
+            MySqlCommand cmd = new MySqlCommand(sql, conn);
+            cmd.ExecuteNonQuery();
+        }
 
-		protected IDataReader execReader(string sql)
-		{
-			MySqlCommand cmd = new MySqlCommand(sql, conn);
-			return cmd.ExecuteReader();
-		}
+        protected IDataReader execReader(string sql)
+        {
+            MySqlCommand cmd = new MySqlCommand(sql, conn);
+            return cmd.ExecuteReader();
+        }
 
-	}
+    }
 }

Modified: branches/1.0/TestSuite/StoredProcedure.cs
===================================================================
--- branches/1.0/TestSuite/StoredProcedure.cs	2007-01-05 17:55:12 UTC (rev 530)
+++ branches/1.0/TestSuite/StoredProcedure.cs	2007-01-05 18:15:29 UTC (rev 531)
@@ -28,407 +28,407 @@
 
 namespace MySql.Data.MySqlClient.Tests
 {
-	/// <summary>
-	/// Summary description for StoredProcedure.
-	/// </summary>
-	[Category("5.0")]
-	[TestFixture]
-	public class StoredProcedure : BaseTest
-	{
-		private static string fillError = null;
+    /// <summary>
+    /// Summary description for StoredProcedure.
+    /// </summary>
+    [Category("5.0")]
+    [TestFixture]
+    public class StoredProcedure : BaseTest
+    {
+        private static string fillError = null;
 
-		[TestFixtureSetUp]
-		public void FixtureSetup()
-		{
-			csAdditions = ";pooling=false;procedure cache size=0;";
-			Open();
-		}
+        [TestFixtureSetUp]
+        public void FixtureSetup()
+        {
+            csAdditions = ";pooling=false;procedure cache size=0;";
+            Open();
+        }
 
-		[TestFixtureTearDown]
-		public void TestFixtureTearDown()
-		{
-			Close();
-		}
+        [TestFixtureTearDown]
+        public void TestFixtureTearDown()
+        {
+            Close();
+        }
 
-		protected override void Setup()
-		{
-			base.Setup();
-			execSQL("DROP TABLE IF EXISTS Test");
-			execSQL("CREATE TABLE Test (id INT, name VARCHAR(100))");
-		}
+        protected override void Setup()
+        {
+            base.Setup();
+            execSQL("DROP TABLE IF EXISTS Test");
+            execSQL("CREATE TABLE Test (id INT, name VARCHAR(100))");
+        }
 
-		/// <summary>
-		/// Bug #7623  	Adding MySqlParameter causes error if MySqlDbType is Decimal
-		/// </summary>
-		[Test]
-		public void ReturningResultset()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest(val decimal(10,3)) begin select val; end");
+        /// <summary>
+        /// Bug #7623  	Adding MySqlParameter causes error if MySqlDbType is Decimal
+        /// </summary>
+        [Test]
+        public void ReturningResultset()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest(val decimal(10,3)) begin select val; end");
 
-			using (MySqlCommand cmd = new MySqlCommand("spTest", conn))
-			{
-				cmd.CommandType = CommandType.StoredProcedure;
+            using (MySqlCommand cmd = new MySqlCommand("spTest", conn))
+            {
+                cmd.CommandType = CommandType.StoredProcedure;
 
-				MySqlParameter p = cmd.Parameters.Add("?val", MySqlDbType.Decimal);
-				p.Precision = 10;
-				p.Scale = 3;
-				p.Value = 21;
+                MySqlParameter p = cmd.Parameters.Add("?val", MySqlDbType.Decimal);
+                p.Precision = 10;
+                p.Scale = 3;
+                p.Value = 21;
 
-				decimal id = (decimal)cmd.ExecuteScalar();
-				Assert.AreEqual(21, id);
-			}
-		}
+                decimal id = (decimal)cmd.ExecuteScalar();
+                Assert.AreEqual(21, id);
+            }
+        }
 
-		[Test]
-		public void NonQuery()
-		{
-			execSQL("CREATE PROCEDURE spTest(IN value INT) BEGIN INSERT INTO Test VALUES(value, 'Test'); END");
+        [Test]
+        public void NonQuery()
+        {
+            execSQL("CREATE PROCEDURE spTest(IN value INT) BEGIN INSERT INTO Test VALUES(value, 'Test'); END");
 
-			//setup testing data
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?value", 2);
-			int rowsAffected = cmd.ExecuteNonQuery();
-			Assert.AreEqual(1, rowsAffected);
+            //setup testing data
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?value", 2);
+            int rowsAffected = cmd.ExecuteNonQuery();
+            Assert.AreEqual(1, rowsAffected);
 
-			cmd.CommandText = "SELECT * FROM Test";
-			cmd.CommandType = CommandType.Text;
-			MySqlDataReader reader = null;
+            cmd.CommandText = "SELECT * FROM Test";
+            cmd.CommandType = CommandType.Text;
+            MySqlDataReader reader = null;
 
-			try
-			{
-				reader = cmd.ExecuteReader();
-				Assert.IsTrue(reader.Read());
-				Assert.AreEqual(2, reader.GetInt32(0));
-				Assert.AreEqual("Test", reader.GetString(1));
-				Assert.IsFalse(reader.Read());
-				Assert.IsFalse(reader.NextResult());
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-			finally
-			{
-				if (reader != null) reader.Close();
-			}
-		}
+            try
+            {
+                reader = cmd.ExecuteReader();
+                Assert.IsTrue(reader.Read());
+                Assert.AreEqual(2, reader.GetInt32(0));
+                Assert.AreEqual("Test", reader.GetString(1));
+                Assert.IsFalse(reader.Read());
+                Assert.IsFalse(reader.NextResult());
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            finally
+            {
+                if (reader != null) reader.Close();
+            }
+        }
 
-		/// <summary>
-		/// Bug #17814  	Stored procedure fails unless DbType set explicitly
-		/// </summary>
-		[Test]
-		public void OutputParameters()
-		{
-			// create our procedure
-			execSQL("DROP PROCEDURE IF EXISTS spCount");
-			execSQL("CREATE PROCEDURE spCount(out value VARCHAR(350), OUT intVal INT, " +
-				"OUT dateVal TIMESTAMP, OUT floatVal FLOAT, OUT noTypeVarChar VARCHAR(20), " +
-				"OUT noTypeInt INT) " +
-				"BEGIN  SET value='42';  SET intVal=33; SET dateVal='2004-06-05 07:58:09'; " +
-				"SET floatVal = 1.2; SET noTypeVarChar='test'; SET noTypeInt=66; END");
+        /// <summary>
+        /// Bug #17814  	Stored procedure fails unless DbType set explicitly
+        /// </summary>
+        [Test]
+        public void OutputParameters()
+        {
+            // create our procedure
+            execSQL("DROP PROCEDURE IF EXISTS spCount");
+            execSQL("CREATE PROCEDURE spCount(out value VARCHAR(350), OUT intVal INT, " +
+                "OUT dateVal TIMESTAMP, OUT floatVal FLOAT, OUT noTypeVarChar VARCHAR(20), " +
+                "OUT noTypeInt INT) " +
+                "BEGIN  SET value='42';  SET intVal=33; SET dateVal='2004-06-05 07:58:09'; " +
+                "SET floatVal = 1.2; SET noTypeVarChar='test'; SET noTypeInt=66; END");
 
-			MySqlCommand cmd = new MySqlCommand("spCount", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add(new MySqlParameter("?value", MySqlDbType.VarChar));
-			cmd.Parameters.Add(new MySqlParameter("?intVal", MySqlDbType.Int32));
-			cmd.Parameters.Add(new MySqlParameter("?dateVal", MySqlDbType.Datetime));
-			cmd.Parameters.Add(new MySqlParameter("?floatVal", MySqlDbType.Float));
-			MySqlParameter vcP = new MySqlParameter();
-			vcP.ParameterName = "?noTypeVarChar";
-			vcP.Direction = ParameterDirection.Output;
-			cmd.Parameters.Add(vcP);
-			MySqlParameter vcI = new MySqlParameter();
-			vcI.ParameterName = "?noTypeInt";
-			vcI.Direction = ParameterDirection.Output;
-			cmd.Parameters.Add(vcI);
-			cmd.Parameters[0].Direction = ParameterDirection.Output;
-			cmd.Parameters[1].Direction = ParameterDirection.Output;
-			cmd.Parameters[2].Direction = ParameterDirection.Output;
-			cmd.Parameters[3].Direction = ParameterDirection.Output;
-			int rowsAffected = cmd.ExecuteNonQuery();
+            MySqlCommand cmd = new MySqlCommand("spCount", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add(new MySqlParameter("?value", MySqlDbType.VarChar));
+            cmd.Parameters.Add(new MySqlParameter("?intVal", MySqlDbType.Int32));
+            cmd.Parameters.Add(new MySqlParameter("?dateVal", MySqlDbType.Datetime));
+            cmd.Parameters.Add(new MySqlParameter("?floatVal", MySqlDbType.Float));
+            MySqlParameter vcP = new MySqlParameter();
+            vcP.ParameterName = "?noTypeVarChar";
+            vcP.Direction = ParameterDirection.Output;
+            cmd.Parameters.Add(vcP);
+            MySqlParameter vcI = new MySqlParameter();
+            vcI.ParameterName = "?noTypeInt";
+            vcI.Direction = ParameterDirection.Output;
+            cmd.Parameters.Add(vcI);
+            cmd.Parameters[0].Direction = ParameterDirection.Output;
+            cmd.Parameters[1].Direction = ParameterDirection.Output;
+            cmd.Parameters[2].Direction = ParameterDirection.Output;
+            cmd.Parameters[3].Direction = ParameterDirection.Output;
+            int rowsAffected = cmd.ExecuteNonQuery();
 
-			Assert.AreEqual(0, rowsAffected);
-			Assert.AreEqual("42", cmd.Parameters[0].Value);
-			Assert.AreEqual(33, cmd.Parameters[1].Value);
-			Assert.AreEqual(new DateTime(2004, 6, 5, 7, 58, 9),
-				Convert.ToDateTime(cmd.Parameters[2].Value));
-			Assert.AreEqual(1.2, cmd.Parameters[3].Value);
-			Assert.AreEqual("test", cmd.Parameters[4].Value);
-			Assert.AreEqual(66, cmd.Parameters[5].Value);
+            Assert.AreEqual(0, rowsAffected);
+            Assert.AreEqual("42", cmd.Parameters[0].Value);
+            Assert.AreEqual(33, cmd.Parameters[1].Value);
+            Assert.AreEqual(new DateTime(2004, 6, 5, 7, 58, 9),
+                Convert.ToDateTime(cmd.Parameters[2].Value));
+            Assert.AreEqual(1.2, cmd.Parameters[3].Value);
+            Assert.AreEqual("test", cmd.Parameters[4].Value);
+            Assert.AreEqual(66, cmd.Parameters[5].Value);
 
-			execSQL("DROP PROCEDURE spCount");
-		}
+            execSQL("DROP PROCEDURE spCount");
+        }
 
-		[Test]
-		public void NoBatch()
-		{
-			try
-			{
-				MySqlCommand cmd = new MySqlCommand("spTest;select * from test", conn);
-				cmd.CommandType = CommandType.StoredProcedure;
-				cmd.ExecuteNonQuery();
-				Assert.Fail("Should have thrown an exception");
-			}
-			catch (Exception)
-			{
-			}
-		}
+        [Test]
+        public void NoBatch()
+        {
+            try
+            {
+                MySqlCommand cmd = new MySqlCommand("spTest;select * from test", conn);
+                cmd.CommandType = CommandType.StoredProcedure;
+                cmd.ExecuteNonQuery();
+                Assert.Fail("Should have thrown an exception");
+            }
+            catch (Exception)
+            {
+            }
+        }
 
-		[Test]
-		public void WrongParameters()
-		{
-			execSQL("CREATE PROCEDURE spTest(p1 INT) BEGIN SELECT 1; END");
-			try
-			{
-				MySqlCommand cmd = new MySqlCommand("spTest", conn);
-				cmd.CommandType = CommandType.StoredProcedure;
-				cmd.Parameters.Add("?p2", 1);
-				cmd.ExecuteNonQuery();
-				Assert.Fail("Should have thrown an exception");
-			}
-			catch (Exception)
-			{
-			}
-		}
+        [Test]
+        public void WrongParameters()
+        {
+            execSQL("CREATE PROCEDURE spTest(p1 INT) BEGIN SELECT 1; END");
+            try
+            {
+                MySqlCommand cmd = new MySqlCommand("spTest", conn);
+                cmd.CommandType = CommandType.StoredProcedure;
+                cmd.Parameters.Add("?p2", 1);
+                cmd.ExecuteNonQuery();
+                Assert.Fail("Should have thrown an exception");
+            }
+            catch (Exception)
+            {
+            }
+        }
 
-		[Test]
-		public void NoInOutMarker()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest( valin varchar(50) ) BEGIN  SELECT valin;  END");
+        [Test]
+        public void NoInOutMarker()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest( valin varchar(50) ) BEGIN  SELECT valin;  END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?valin", "myvalue");
-			object val = cmd.ExecuteScalar();
-			Assert.AreEqual("myvalue", val);
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?valin", "myvalue");
+            object val = cmd.ExecuteScalar();
+            Assert.AreEqual("myvalue", val);
+        }
 
-		[Test]
-		public void InputOutputParameters()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest( INOUT strVal VARCHAR(50), INOUT numVal INT, OUT outVal INT UNSIGNED ) " +
-				"BEGIN  SET strVal = CONCAT(strVal,'ending'); SET numVal=numVal * 2;  SET outVal=99; END");
+        [Test]
+        public void InputOutputParameters()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest( INOUT strVal VARCHAR(50), INOUT numVal INT, OUT outVal INT UNSIGNED ) " +
+                "BEGIN  SET strVal = CONCAT(strVal,'ending'); SET numVal=numVal * 2;  SET outVal=99; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?strVal", "beginning");
-			cmd.Parameters.Add("?numVal", 33);
-			cmd.Parameters.Add("?outVal", MySqlDbType.Int32);
-			cmd.Parameters[0].Direction = ParameterDirection.InputOutput;
-			cmd.Parameters[1].Direction = ParameterDirection.InputOutput;
-			cmd.Parameters[2].Direction = ParameterDirection.Output;
-			int rowsAffected = cmd.ExecuteNonQuery();
-			Assert.AreEqual(0, rowsAffected);
-			Assert.AreEqual("beginningending", cmd.Parameters[0].Value);
-			Assert.AreEqual(66, cmd.Parameters[1].Value);
-			Assert.AreEqual(99, cmd.Parameters[2].Value);
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?strVal", "beginning");
+            cmd.Parameters.Add("?numVal", 33);
+            cmd.Parameters.Add("?outVal", MySqlDbType.Int32);
+            cmd.Parameters[0].Direction = ParameterDirection.InputOutput;
+            cmd.Parameters[1].Direction = ParameterDirection.InputOutput;
+            cmd.Parameters[2].Direction = ParameterDirection.Output;
+            int rowsAffected = cmd.ExecuteNonQuery();
+            Assert.AreEqual(0, rowsAffected);
+            Assert.AreEqual("beginningending", cmd.Parameters[0].Value);
+            Assert.AreEqual(66, cmd.Parameters[1].Value);
+            Assert.AreEqual(99, cmd.Parameters[2].Value);
+        }
 
-		[Test]
-		public void NoSPOnPre50()
-		{
-			try
-			{
-				MySqlCommand cmd = new MySqlCommand("spTest", conn);
-				cmd.CommandType = CommandType.StoredProcedure;
-				cmd.ExecuteNonQuery();
-				Assert.Fail("This should not have worked");
-			}
-			catch (Exception)
-			{
-			}
-		}
+        [Test]
+        public void NoSPOnPre50()
+        {
+            try
+            {
+                MySqlCommand cmd = new MySqlCommand("spTest", conn);
+                cmd.CommandType = CommandType.StoredProcedure;
+                cmd.ExecuteNonQuery();
+                Assert.Fail("This should not have worked");
+            }
+            catch (Exception)
+            {
+            }
+        }
 
-		[Test]
-		public void ExecuteScalar()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest( IN valin VARCHAR(50), OUT valout VARCHAR(50) ) " +
-				"BEGIN  SET valout=valin;  SELECT 'Test'; END");
+        [Test]
+        public void ExecuteScalar()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest( IN valin VARCHAR(50), OUT valout VARCHAR(50) ) " +
+                "BEGIN  SET valout=valin;  SELECT 'Test'; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?valin", "valuein");
-			cmd.Parameters.Add(new MySqlParameter("?valout", MySqlDbType.VarChar));
-			cmd.Parameters[1].Direction = ParameterDirection.Output;
-			object result = cmd.ExecuteScalar();
-			Assert.AreEqual("Test", result);
-			Assert.AreEqual("valuein", cmd.Parameters[1].Value);
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?valin", "valuein");
+            cmd.Parameters.Add(new MySqlParameter("?valout", MySqlDbType.VarChar));
+            cmd.Parameters[1].Direction = ParameterDirection.Output;
+            object result = cmd.ExecuteScalar();
+            Assert.AreEqual("Test", result);
+            Assert.AreEqual("valuein", cmd.Parameters[1].Value);
+        }
 
-		/// <summary>
-		/// Bug #13590  	ExecuteScalar returns only Int64 regardless of actual SQL type
-		/// </summary>
-		[Test]
-		public void ExecuteScalar2()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest() " +
-				 "BEGIN  DECLARE myVar1 INT; SET myVar1 := 1; SELECT myVar1; END");
+        /// <summary>
+        /// Bug #13590  	ExecuteScalar returns only Int64 regardless of actual SQL type
+        /// </summary>
+        [Test]
+        public void ExecuteScalar2()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest() " +
+                 "BEGIN  DECLARE myVar1 INT; SET myVar1 := 1; SELECT myVar1; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			object result = cmd.ExecuteScalar();
-			Assert.AreEqual(1, result);
-			Assert.IsTrue(result is Int32);
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            object result = cmd.ExecuteScalar();
+            Assert.AreEqual(1, result);
+            Assert.IsTrue(result is Int32);
+        }
 
-		[Test]
-		public void ExecuteReader()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest(OUT p INT) " +
-				"BEGIN  SELECT * FROM mysql.db; SET p=2; END");
+        [Test]
+        public void ExecuteReader()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest(OUT p INT) " +
+                "BEGIN  SELECT * FROM mysql.db; SET p=2; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.Parameters.Add("?p", MySqlDbType.Int32);
-			cmd.Parameters[0].Direction = ParameterDirection.Output;
-			cmd.CommandType = CommandType.StoredProcedure;
-			MySqlDataReader reader = cmd.ExecuteReader();
-			Assert.AreEqual(true, reader.Read());
-			Assert.AreEqual(false, reader.NextResult());
-			Assert.AreEqual(false, reader.Read());
-			reader.Close();
-			Assert.AreEqual(2, cmd.Parameters[0].Value);
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.Parameters.Add("?p", MySqlDbType.Int32);
+            cmd.Parameters[0].Direction = ParameterDirection.Output;
+            cmd.CommandType = CommandType.StoredProcedure;
+            MySqlDataReader reader = cmd.ExecuteReader();
+            Assert.AreEqual(true, reader.Read());
+            Assert.AreEqual(false, reader.NextResult());
+            Assert.AreEqual(false, reader.Read());
+            reader.Close();
+            Assert.AreEqual(2, cmd.Parameters[0].Value);
+        }
 
-		[Test]
-		public void MultipleResultsets()
-		{
-			MultipleResultsetsImpl(false);
-		}
+        [Test]
+        public void MultipleResultsets()
+        {
+            MultipleResultsetsImpl(false);
+        }
 
-		[Test]
-		public void MultipleResultsetsPrepared()
-		{
-			MultipleResultsetsImpl(true);
-		}
+        [Test]
+        public void MultipleResultsetsPrepared()
+        {
+            MultipleResultsetsImpl(true);
+        }
 
-		private void MultipleResultsetsImpl(bool prepare)
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest() BEGIN  SELECT 1; SELECT 2; END");
+        private void MultipleResultsetsImpl(bool prepare)
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest() BEGIN  SELECT 1; SELECT 2; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			if (prepare)
-				cmd.Prepare();
-			MySqlDataReader reader = cmd.ExecuteReader();
-			Assert.AreEqual(true, reader.Read());
-			Assert.AreEqual(true, reader.NextResult());
-			Assert.AreEqual(true, reader.Read());
-			Assert.AreEqual(false, reader.NextResult());
-			Assert.AreEqual(false, reader.Read());
-			reader.Close();
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            if (prepare)
+                cmd.Prepare();
+            MySqlDataReader reader = cmd.ExecuteReader();
+            Assert.AreEqual(true, reader.Read());
+            Assert.AreEqual(true, reader.NextResult());
+            Assert.AreEqual(true, reader.Read());
+            Assert.AreEqual(false, reader.NextResult());
+            Assert.AreEqual(false, reader.Read());
+            reader.Close();
 
-			DataSet ds = new DataSet();
-			MySqlCommand cmd2 = new MySqlCommand("spTest", conn);
-			cmd2.CommandType = CommandType.StoredProcedure;
-			MySqlDataAdapter da = new MySqlDataAdapter(cmd2);
-			da.FillError += new FillErrorEventHandler(da_FillError);
-			fillError = null;
-			da.Fill(ds);
-			Assert.AreEqual(2, ds.Tables.Count);
-			Assert.AreEqual(1, ds.Tables[0].Rows.Count);
-			Assert.AreEqual(1, ds.Tables[1].Rows.Count);
-			Assert.AreEqual(1, ds.Tables[0].Rows[0][0]);
-			Assert.AreEqual(2, ds.Tables[1].Rows[0][0]);
-			Assert.IsNull(fillError);
-		}
+            DataSet ds = new DataSet();
+            MySqlCommand cmd2 = new MySqlCommand("spTest", conn);
+            cmd2.CommandType = CommandType.StoredProcedure;
+            MySqlDataAdapter da = new MySqlDataAdapter(cmd2);
+            da.FillError += new FillErrorEventHandler(da_FillError);
+            fillError = null;
+            da.Fill(ds);
+            Assert.AreEqual(2, ds.Tables.Count);
+            Assert.AreEqual(1, ds.Tables[0].Rows.Count);
+            Assert.AreEqual(1, ds.Tables[1].Rows.Count);
+            Assert.AreEqual(1, ds.Tables[0].Rows[0][0]);
+            Assert.AreEqual(2, ds.Tables[1].Rows[0][0]);
+            Assert.IsNull(fillError);
+        }
 
-		private void da_FillError(object sender, FillErrorEventArgs e)
-		{
-			fillError = e.Errors.Message;
-			e.Continue = true;
-		}
+        private void da_FillError(object sender, FillErrorEventArgs e)
+        {
+            fillError = e.Errors.Message;
+            e.Continue = true;
+        }
 
-		[Test]
-		public void FunctionNoParams()
-		{
-			execSQL("CREATE FUNCTION fnTest() RETURNS CHAR(50) LANGUAGE SQL DETERMINISTIC " +
-				"BEGIN  RETURN \"Test\"; END");
+        [Test]
+        public void FunctionNoParams()
+        {
+            execSQL("CREATE FUNCTION fnTest() RETURNS CHAR(50) LANGUAGE SQL DETERMINISTIC " +
+                "BEGIN  RETURN \"Test\"; END");
 
-			MySqlCommand cmd = new MySqlCommand("SELECT fnTest()", conn);
-			cmd.CommandType = CommandType.Text;
-			object result = cmd.ExecuteScalar();
-			Assert.AreEqual("Test", result);
-		}
+            MySqlCommand cmd = new MySqlCommand("SELECT fnTest()", conn);
+            cmd.CommandType = CommandType.Text;
+            object result = cmd.ExecuteScalar();
+            Assert.AreEqual("Test", result);
+        }
 
-		[Test]
-		public void FunctionParams()
-		{
-			execSQL("CREATE FUNCTION fnTest( val1 INT, val2 CHAR(40) ) RETURNS INT " +
-				" LANGUAGE SQL DETERMINISTIC BEGIN  RETURN val1 + LENGTH(val2);  END");
+        [Test]
+        public void FunctionParams()
+        {
+            execSQL("CREATE FUNCTION fnTest( val1 INT, val2 CHAR(40) ) RETURNS INT " +
+                " LANGUAGE SQL DETERMINISTIC BEGIN  RETURN val1 + LENGTH(val2);  END");
 
-			MySqlCommand cmd = new MySqlCommand("SELECT fnTest(22, 'Test')", conn);
-			cmd.CommandType = CommandType.Text;
-			object result = cmd.ExecuteScalar();
-			Assert.AreEqual(26, result);
-		}
+            MySqlCommand cmd = new MySqlCommand("SELECT fnTest(22, 'Test')", conn);
+            cmd.CommandType = CommandType.Text;
+            object result = cmd.ExecuteScalar();
+            Assert.AreEqual(26, result);
+        }
 
-		[Test]
-		public void UseOldSyntax()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest( IN valin VARCHAR(50), OUT valout VARCHAR(50) ) " +
-				"BEGIN  SET valout=valin;  SELECT 'Test'; END");
+        [Test]
+        public void UseOldSyntax()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest( IN valin VARCHAR(50), OUT valout VARCHAR(50) ) " +
+                "BEGIN  SET valout=valin;  SELECT 'Test'; END");
 
-			MySqlConnection c2 = new MySqlConnection(conn.ConnectionString + ";old syntax=yes");
-			c2.Open();
+            MySqlConnection c2 = new MySqlConnection(conn.ConnectionString + ";old syntax=yes");
+            c2.Open();
 
-			MySqlCommand cmd = new MySqlCommand("spTest", c2);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("@valin", "value");
-			cmd.Parameters.Add(new MySqlParameter("@valout", MySqlDbType.VarChar));
-			cmd.Parameters[1].Direction = ParameterDirection.Output;
-			object result = cmd.ExecuteScalar();
-			Assert.AreEqual("Test", result);
-			Assert.AreEqual("value", cmd.Parameters[1].Value);
-			c2.Close();
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", c2);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("@valin", "value");
+            cmd.Parameters.Add(new MySqlParameter("@valout", MySqlDbType.VarChar));
+            cmd.Parameters[1].Direction = ParameterDirection.Output;
+            object result = cmd.ExecuteScalar();
+            Assert.AreEqual("Test", result);
+            Assert.AreEqual("value", cmd.Parameters[1].Value);
+            c2.Close();
+        }
 
-		[Test]
-		public void ExecuteWithCreate()
-		{
-			// create our procedure
-			string sql = "CREATE PROCEDURE spTest(IN var INT) BEGIN  SELECT var; END; call spTest(?v)";
+        [Test]
+        public void ExecuteWithCreate()
+        {
+            // create our procedure
+            string sql = "CREATE PROCEDURE spTest(IN var INT) BEGIN  SELECT var; END; call spTest(?v)";
 
-			MySqlCommand cmd = new MySqlCommand(sql, conn);
-			cmd.Parameters.Add(new MySqlParameter("?v", 33));
-			object val = cmd.ExecuteScalar();
-			Assert.AreEqual(33, val);
-		}
+            MySqlCommand cmd = new MySqlCommand(sql, conn);
+            cmd.Parameters.Add(new MySqlParameter("?v", 33));
+            object val = cmd.ExecuteScalar();
+            Assert.AreEqual(33, val);
+        }
 
-		/// <summary>
-		/// Bug #9722 Connector does not recognize parameters separated by a linefeed 
-		/// </summary>
-		[Test]
-		public void OtherProcSigs()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest(IN \r\nvalin DECIMAL(10,2),\nIN val2 INT) " +
-				"SQL SECURITY INVOKER BEGIN  SELECT valin; END");
+        /// <summary>
+        /// Bug #9722 Connector does not recognize parameters separated by a linefeed 
+        /// </summary>
+        [Test]
+        public void OtherProcSigs()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest(IN \r\nvalin DECIMAL(10,2),\nIN val2 INT) " +
+                "SQL SECURITY INVOKER BEGIN  SELECT valin; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?valin", 20.4);
-			cmd.Parameters.Add("?val2", 4);
-			decimal val = (decimal)cmd.ExecuteScalar();
-			Decimal d = new Decimal(20.4);
-			Assert.AreEqual(d, val);
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?valin", 20.4);
+            cmd.Parameters.Add("?val2", 4);
+            decimal val = (decimal)cmd.ExecuteScalar();
+            Decimal d = new Decimal(20.4);
+            Assert.AreEqual(d, val);
 
-			// create our second procedure
-			execSQL("DROP PROCEDURE IF EXISTS spTest");
-			execSQL("CREATE PROCEDURE spTest( \r\n) BEGIN  SELECT 4; END");
-			cmd.Parameters.Clear();
-			object val1 = cmd.ExecuteScalar();
-			Assert.AreEqual(4, val1);
-			execSQL("DROP PROCEDURE IF EXISTS spTest");
-		}
+            // create our second procedure
+            execSQL("DROP PROCEDURE IF EXISTS spTest");
+            execSQL("CREATE PROCEDURE spTest( \r\n) BEGIN  SELECT 4; END");
+            cmd.Parameters.Clear();
+            object val1 = cmd.ExecuteScalar();
+            Assert.AreEqual(4, val1);
+            execSQL("DROP PROCEDURE IF EXISTS spTest");
+        }
 
 
         /// <summary>
@@ -452,537 +452,538 @@
             Assert.AreEqual(44, cmd.Parameters[1].Value);
         }
 
-		/// <summary>
-		/// Bug #11450  	Connector/Net, current database and stored procedures
-		/// </summary>
-		[Test]
-		public void NoDefaultDatabase()
-		{
-			// create our procedure
-			execSQL("CREATE PROCEDURE spTest() BEGIN  SELECT 4; END");
+        /// <summary>
+        /// Bug #11450  	Connector/Net, current database and stored procedures
+        /// </summary>
+        [Test]
+        public void NoDefaultDatabase()
+        {
+            // create our procedure
+            execSQL("CREATE PROCEDURE spTest() BEGIN  SELECT 4; END");
 
-			string newConnStr = GetConnectionString(false);
-			MySqlConnection c = new MySqlConnection(newConnStr);
-			try
-			{
-				c.Open();
-				MySqlCommand cmd2 = new MySqlCommand("use test", c);
-				cmd2.ExecuteNonQuery();
+            string newConnStr = GetConnectionString(false);
+            MySqlConnection c = new MySqlConnection(newConnStr);
+            try
+            {
+                c.Open();
+                MySqlCommand cmd2 = new MySqlCommand("use test", c);
+                cmd2.ExecuteNonQuery();
 
-				MySqlCommand cmd = new MySqlCommand("spTest", c);
-				cmd.CommandType = CommandType.StoredProcedure;
-				object val = cmd.ExecuteScalar();
-				Assert.AreEqual(4, val);
+                MySqlCommand cmd = new MySqlCommand("spTest", c);
+                cmd.CommandType = CommandType.StoredProcedure;
+                object val = cmd.ExecuteScalar();
+                Assert.AreEqual(4, val);
 
-				cmd2.CommandText = "use mysql";
-				cmd2.ExecuteNonQuery();
+                cmd2.CommandText = "use mysql";
+                cmd2.ExecuteNonQuery();
 
-				cmd.CommandText = "test.spTest";
-				val = cmd.ExecuteScalar();
-				Assert.AreEqual(4, val);
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-			finally
-			{
-				c.Close();
-			}
-		}
+                cmd.CommandText = "test.spTest";
+                val = cmd.ExecuteScalar();
+                Assert.AreEqual(4, val);
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            finally
+            {
+                c.Close();
+            }
+        }
 
-		/// <summary>
-		/// Bug #13590  	ExecuteScalar returns only Int64 regardless of actual SQL type
-		/// </summary>
-		[Category("NotWorking")]
-		[Test]
-		public void TestSelectingInts()
-		{
-			execSQL("CREATE PROCEDURE spTest() BEGIN DECLARE myVar INT; " +
-				"SET MyVar := 1; SELECT CAST(myVar as SIGNED); END");
+        /// <summary>
+        /// Bug #13590  	ExecuteScalar returns only Int64 regardless of actual SQL type
+        /// </summary>
+        [Category("NotWorking")]
+        [Test]
+        public void TestSelectingInts()
+        {
+            execSQL("CREATE PROCEDURE spTest() BEGIN DECLARE myVar INT; " +
+                "SET MyVar := 1; SELECT CAST(myVar as SIGNED); END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			object val = cmd.ExecuteScalar();
-			Assert.AreEqual(1, val, "Checking value");
-			Assert.IsTrue(val is System.Int32, "Checking type");
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            object val = cmd.ExecuteScalar();
+            Assert.AreEqual(1, val, "Checking value");
+            Assert.IsTrue(val is System.Int32, "Checking type");
+        }
 
-		/// <summary>
-		/// Bug #13632  	the MySQLCommandBuilder.deriveparameters has not been updated for MySQL 5
-		/// Bug #15077  	Error MySqlCommandBuilder.DeriveParameters for sp without parameters.
-		/// Bug #19515  	DiscoverParameters fails on numeric datatype
-		/// </summary>
-		[Test]
-		public void DeriveParameters()
-		{
-			execSQL("DROP TABLE IF EXISTS test2");
-			execSQL("CREATE TABLE test2 (c CHAR(20))");
-			execSQL("INSERT INTO test2 values ( 'xxxx')");
-			MySqlCommand cmd2 = new MySqlCommand("SELECT * FROM test2", conn);
-			MySqlDataReader reader = cmd2.ExecuteReader();
-			reader.Close();
+        /// <summary>
+        /// Bug #13632  	the MySQLCommandBuilder.deriveparameters has not been updated for MySQL 5
+        /// Bug #15077  	Error MySqlCommandBuilder.DeriveParameters for sp without parameters.
+        /// Bug #19515  	DiscoverParameters fails on numeric datatype
+        /// </summary>
+        [Test]
+        public void DeriveParameters()
+        {
+            execSQL("DROP TABLE IF EXISTS test2");
+            execSQL("CREATE TABLE test2 (c CHAR(20))");
+            execSQL("INSERT INTO test2 values ( 'xxxx')");
+            MySqlCommand cmd2 = new MySqlCommand("SELECT * FROM test2", conn);
+            MySqlDataReader reader = cmd2.ExecuteReader();
+            reader.Close();
 
-			execSQL("CREATE PROCEDURE spTest(IN \r\nvalin DECIMAL(10,2), " +
-				"\nIN val2 INT, INOUT val3 FLOAT, OUT val4 DOUBLE, INOUT val5 BIT, " +
-				"val6 VARCHAR(155), val7 SET('a','b'), val8 CHAR, val9 NUMERIC(10,2)) " +
-				" LANGUAGE SQL DETERMINISTIC BEGIN SELECT 1; END");
+            execSQL("CREATE PROCEDURE spTest(IN \r\nvalin DECIMAL(10,2), " +
+                "\nIN val2 INT, INOUT val3 FLOAT, OUT val4 DOUBLE, INOUT val5 BIT, " +
+                "val6 VARCHAR(155), val7 SET('a','b'), val8 CHAR, val9 NUMERIC(10,2)) " +
+                " LANGUAGE SQL DETERMINISTIC BEGIN SELECT 1; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			MySqlDataAdapter da = new MySqlDataAdapter(cmd);
-			MySqlCommandBuilder.DeriveParameters(cmd);
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
+            MySqlCommandBuilder.DeriveParameters(cmd);
 
-			Assert.AreEqual(9, cmd.Parameters.Count);
-			Assert.AreEqual("?valin", cmd.Parameters[0].ParameterName);
-			Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[0].Direction);
-			Assert.AreEqual(MySqlDbType.NewDecimal, cmd.Parameters[0].MySqlDbType);
+            Assert.AreEqual(9, cmd.Parameters.Count);
+            Assert.AreEqual("?valin", cmd.Parameters[0].ParameterName);
+            Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[0].Direction);
+            Assert.AreEqual(MySqlDbType.NewDecimal, cmd.Parameters[0].MySqlDbType);
 
-			Assert.AreEqual("?val2", cmd.Parameters[1].ParameterName);
-			Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[1].Direction);
-			Assert.AreEqual(MySqlDbType.Int32, cmd.Parameters[1].MySqlDbType);
+            Assert.AreEqual("?val2", cmd.Parameters[1].ParameterName);
+            Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[1].Direction);
+            Assert.AreEqual(MySqlDbType.Int32, cmd.Parameters[1].MySqlDbType);
 
-			Assert.AreEqual("?val3", cmd.Parameters[2].ParameterName);
-			Assert.AreEqual(ParameterDirection.InputOutput, cmd.Parameters[2].Direction);
-			Assert.AreEqual(MySqlDbType.Float, cmd.Parameters[2].MySqlDbType);
+            Assert.AreEqual("?val3", cmd.Parameters[2].ParameterName);
+            Assert.AreEqual(ParameterDirection.InputOutput, cmd.Parameters[2].Direction);
+            Assert.AreEqual(MySqlDbType.Float, cmd.Parameters[2].MySqlDbType);
 
-			Assert.AreEqual("?val4", cmd.Parameters[3].ParameterName);
-			Assert.AreEqual(ParameterDirection.Output, cmd.Parameters[3].Direction);
-			Assert.AreEqual(MySqlDbType.Double, cmd.Parameters[3].MySqlDbType);
+            Assert.AreEqual("?val4", cmd.Parameters[3].ParameterName);
+            Assert.AreEqual(ParameterDirection.Output, cmd.Parameters[3].Direction);
+            Assert.AreEqual(MySqlDbType.Double, cmd.Parameters[3].MySqlDbType);
 
-			Assert.AreEqual("?val5", cmd.Parameters[4].ParameterName);
-			Assert.AreEqual(ParameterDirection.InputOutput, cmd.Parameters[4].Direction);
-			Assert.AreEqual(MySqlDbType.Bit, cmd.Parameters[4].MySqlDbType);
+            Assert.AreEqual("?val5", cmd.Parameters[4].ParameterName);
+            Assert.AreEqual(ParameterDirection.InputOutput, cmd.Parameters[4].Direction);
+            Assert.AreEqual(MySqlDbType.Bit, cmd.Parameters[4].MySqlDbType);
 
-			Assert.AreEqual("?val6", cmd.Parameters[5].ParameterName);
-			Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[5].Direction);
-			Assert.AreEqual(MySqlDbType.VarChar, cmd.Parameters[5].MySqlDbType);
+            Assert.AreEqual("?val6", cmd.Parameters[5].ParameterName);
+            Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[5].Direction);
+            Assert.AreEqual(MySqlDbType.VarChar, cmd.Parameters[5].MySqlDbType);
 
-			Assert.AreEqual("?val7", cmd.Parameters[6].ParameterName);
-			Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[6].Direction);
-			Assert.AreEqual(MySqlDbType.Set, cmd.Parameters[6].MySqlDbType);
+            Assert.AreEqual("?val7", cmd.Parameters[6].ParameterName);
+            Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[6].Direction);
+            Assert.AreEqual(MySqlDbType.Set, cmd.Parameters[6].MySqlDbType);
 
-			Assert.AreEqual("?val8", cmd.Parameters[7].ParameterName);
-			Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[7].Direction);
-			Assert.AreEqual(MySqlDbType.Char, cmd.Parameters[7].MySqlDbType);
+            Assert.AreEqual("?val8", cmd.Parameters[7].ParameterName);
+            Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[7].Direction);
+            Assert.AreEqual(MySqlDbType.Char, cmd.Parameters[7].MySqlDbType);
 
-			Assert.AreEqual("?val9", cmd.Parameters[8].ParameterName);
-			Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[8].Direction);
-			Assert.AreEqual(MySqlDbType.NewDecimal, cmd.Parameters[8].MySqlDbType);
+            Assert.AreEqual("?val9", cmd.Parameters[8].ParameterName);
+            Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[8].Direction);
+            Assert.AreEqual(MySqlDbType.NewDecimal, cmd.Parameters[8].MySqlDbType);
 
-			execSQL("DROP PROCEDURE spTest");
-			execSQL("CREATE PROCEDURE spTest() BEGIN END");
-			cmd.CommandText = "spTest";
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Clear();
-			da = new MySqlDataAdapter(cmd);
-			MySqlCommandBuilder.DeriveParameters(cmd);
-			Assert.AreEqual(0, cmd.Parameters.Count);
-		}
+            execSQL("DROP PROCEDURE spTest");
+            execSQL("CREATE PROCEDURE spTest() BEGIN END");
+            cmd.CommandText = "spTest";
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Clear();
+            da = new MySqlDataAdapter(cmd);
+            MySqlCommandBuilder.DeriveParameters(cmd);
+            Assert.AreEqual(0, cmd.Parameters.Count);
+        }
 
-		/// <summary>
-		/// Bug #13632  	the MySQLCommandBuilder.deriveparameters has not been updated for MySQL 5
-		/// </summary>
-		[Test]
-		public void DeriveParametersForFunction()
-		{
-			try
-			{
-				execSQL("CREATE FUNCTION fnTest(v1 DATETIME) RETURNS INT " +
-					"  LANGUAGE SQL DETERMINISTIC BEGIN RETURN 1; END");
+        /// <summary>
+        /// Bug #13632  	the MySQLCommandBuilder.deriveparameters has not been updated for MySQL 5
+        /// </summary>
+        [Test]
+        public void DeriveParametersForFunction()
+        {
+            try
+            {
+                execSQL("CREATE FUNCTION fnTest(v1 DATETIME) RETURNS INT " +
+                    "  LANGUAGE SQL DETERMINISTIC BEGIN RETURN 1; END");
 
-				MySqlCommand cmd = new MySqlCommand("fnTest", conn);
-				cmd.CommandType = CommandType.StoredProcedure;
-				MySqlDataAdapter da = new MySqlDataAdapter(cmd);
-				MySqlCommandBuilder.DeriveParameters(cmd);
+                MySqlCommand cmd = new MySqlCommand("fnTest", conn);
+                cmd.CommandType = CommandType.StoredProcedure;
+                MySqlDataAdapter da = new MySqlDataAdapter(cmd);
+                MySqlCommandBuilder.DeriveParameters(cmd);
 
-				Assert.AreEqual(2, cmd.Parameters.Count);
-				Assert.AreEqual("?v1", cmd.Parameters[0].ParameterName);
-				Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[0].Direction);
-				Assert.AreEqual(MySqlDbType.Datetime, cmd.Parameters[0].MySqlDbType);
+                Assert.AreEqual(2, cmd.Parameters.Count);
+                Assert.AreEqual("?v1", cmd.Parameters[0].ParameterName);
+                Assert.AreEqual(ParameterDirection.Input, cmd.Parameters[0].Direction);
+                Assert.AreEqual(MySqlDbType.Datetime, cmd.Parameters[0].MySqlDbType);
 
-				Assert.AreEqual(ParameterDirection.ReturnValue, cmd.Parameters[1].Direction);
-				Assert.AreEqual(MySqlDbType.Int32, cmd.Parameters[1].MySqlDbType);
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-		}
+                Assert.AreEqual(ParameterDirection.ReturnValue, cmd.Parameters[1].Direction);
+                Assert.AreEqual(MySqlDbType.Int32, cmd.Parameters[1].MySqlDbType);
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+        }
 
-		/// <summary>
-		/// Bug #11386  	Numeric parameters with Precision and Scale not taken into account by Connector
-		/// </summary>
-		[Test]
-		public void DecimalAsParameter()
-		{
-			execSQL("CREATE PROCEDURE spTest(IN d DECIMAL(19,4)) BEGIN SELECT d; END");
+        /// <summary>
+        /// Bug #11386  	Numeric parameters with Precision and Scale not taken into account by Connector
+        /// </summary>
+        [Test]
+        public void DecimalAsParameter()
+        {
+            execSQL("CREATE PROCEDURE spTest(IN d DECIMAL(19,4)) BEGIN SELECT d; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?d", 21);
-			decimal d = (decimal)cmd.ExecuteScalar();
-			Assert.AreEqual(21, d);
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?d", 21);
+            decimal d = (decimal)cmd.ExecuteScalar();
+            Assert.AreEqual(21, d);
+        }
 
-		/// <summary>
-		/// Bug #6902  	Errors in parsing stored procedure parameters
-		/// </summary>
-		[Test]
-		public void ParmWithCharacterSet()
-		{
-			execSQL("CREATE PROCEDURE spTest(P longtext character set utf8) " +
-				"BEGIN SELECT P; END");
+        /// <summary>
+        /// Bug #6902  	Errors in parsing stored procedure parameters
+        /// </summary>
+        [Test]
+        public void ParmWithCharacterSet()
+        {
+            execSQL("CREATE PROCEDURE spTest(P longtext character set utf8) " +
+                "BEGIN SELECT P; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?P", "This is my value");
-			string p = (string)cmd.ExecuteScalar();
-			Assert.AreEqual("This is my value", p);
-		}
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?P", "This is my value");
+            string p = (string)cmd.ExecuteScalar();
+            Assert.AreEqual("This is my value", p);
+        }
 
-		/// <summary>
-		/// Bug #13753  	Exception calling stored procedure with special characters in parameters
-		/// </summary>
-		[Test]
-		public void SpecialCharacters()
-		{
-			execSQL("SET sql_mode=ANSI_QUOTES");
-			try
-			{
-				execSQL("CREATE PROCEDURE spTest(\"@Param1\" text) BEGIN SELECT \"@Param1\"; END");
+        /// <summary>
+        /// Bug #13753  	Exception calling stored procedure with special characters in parameters
+        /// </summary>
+        [Test]
+        public void SpecialCharacters()
+        {
+            execSQL("SET sql_mode=ANSI_QUOTES");
+            try
+            {
+                execSQL("CREATE PROCEDURE spTest(\"@Param1\" text) BEGIN SELECT \"@Param1\"; END");
 
-				MySqlCommand cmd = new MySqlCommand("spTest", conn);
-				cmd.Parameters.Add("?@Param1", "This is my value");
-				cmd.CommandType = CommandType.StoredProcedure;
+                MySqlCommand cmd = new MySqlCommand("spTest", conn);
+                cmd.Parameters.Add("?@Param1", "This is my value");
+                cmd.CommandType = CommandType.StoredProcedure;
 
-				string val = (string)cmd.ExecuteScalar();
-				Assert.AreEqual("This is my value", val);
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-			finally
-			{
-				execSQL("SET sql_mode=\"\"");
-			}
-		}
+                string val = (string)cmd.ExecuteScalar();
+                Assert.AreEqual("This is my value", val);
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            finally
+            {
+                execSQL("SET sql_mode=\"\"");
+            }
+        }
 
-		[Test]
-		public void CallingSPWithPrepare()
-		{
-			execSQL("DROP PROCEDURE IF EXISTS spTest");
-			execSQL("CREATE PROCEDURE spTest(P int) BEGIN SELECT P; END");
+        [Test]
+        public void CallingSPWithPrepare()
+        {
+            execSQL("DROP PROCEDURE IF EXISTS spTest");
+            execSQL("CREATE PROCEDURE spTest(P int) BEGIN SELECT P; END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?P", 33);
-			cmd.Prepare();
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?P", 33);
+            cmd.Prepare();
 
-			int p = (int)cmd.ExecuteScalar();
-			Assert.AreEqual(33, p);
-		}
+            int p = (int)cmd.ExecuteScalar();
+            Assert.AreEqual(33, p);
+        }
 
-		/// <summary>
-		/// Bug #13927  	Multiple Records to same Table in Transaction Problem
-		/// </summary>
-		[Test]
-		public void MultipleRecords()
-		{
-			execSQL("DROP PROCEDURE IF EXISTS spTest");
-			execSQL("CREATE PROCEDURE spTest(id int, str VARCHAR(45)) " +
-					 "BEGIN INSERT INTO test VALUES(id, str); END");
+        /// <summary>
+        /// Bug #13927  	Multiple Records to same Table in Transaction Problem
+        /// </summary>
+        [Test]
+        public void MultipleRecords()
+        {
+            execSQL("DROP PROCEDURE IF EXISTS spTest");
+            execSQL("CREATE PROCEDURE spTest(id int, str VARCHAR(45)) " +
+                     "BEGIN INSERT INTO test VALUES(id, str); END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
 
-			cmd.Parameters.Add("?id", 1);
-			cmd.Parameters.Add("?str", "First record");
-			cmd.ExecuteNonQuery();
+            cmd.Parameters.Add("?id", 1);
+            cmd.Parameters.Add("?str", "First record");
+            cmd.ExecuteNonQuery();
 
-			cmd.Parameters.Add("?id", 2);
-			cmd.Parameters.Add("?str", "Second record");
-			cmd.ExecuteNonQuery();
+            cmd.Parameters.Add("?id", 2);
+            cmd.Parameters.Add("?str", "Second record");
+            cmd.ExecuteNonQuery();
 
-			MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM test", conn);
-			DataTable dt = new DataTable();
-			da.Fill(dt);
+            MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM test", conn);
+            DataTable dt = new DataTable();
+            da.Fill(dt);
 
-			Assert.AreEqual(1, dt.Rows[0]["id"]);
-			Assert.AreEqual(2, dt.Rows[1]["id"]);
-			Assert.AreEqual("First record", dt.Rows[0]["name"]);
-			Assert.AreEqual("Second record", dt.Rows[1]["name"]);
-		}
+            Assert.AreEqual(1, dt.Rows[0]["id"]);
+            Assert.AreEqual(2, dt.Rows[1]["id"]);
+            Assert.AreEqual("First record", dt.Rows[0]["name"]);
+            Assert.AreEqual("Second record", dt.Rows[1]["name"]);
+        }
 
-		/// <summary>
-		/// Bug #16788 Only byte arrays and strings can be serialized by MySqlBinary 
-		/// </summary>
-		[Test]
-		public void Bug16788()
-		{
-			execSQL("DROP TABLE IF EXISTS Test");
-			execSQL("CREATE TABLE Test (id integer(9), state varchar(2))");
-			execSQL("CREATE PROCEDURE spTest(IN p1 integer(9), IN p2 varchar(2)) " +
-				"BEGIN INSERT INTO test (id, state) VALUES (p1, p2); END");
+        /// <summary>
+        /// Bug #16788 Only byte arrays and strings can be serialized by MySqlBinary 
+        /// </summary>
+        [Test]
+        public void Bug16788()
+        {
+            execSQL("DROP TABLE IF EXISTS Test");
+            execSQL("CREATE TABLE Test (id integer(9), state varchar(2))");
+            execSQL("CREATE PROCEDURE spTest(IN p1 integer(9), IN p2 varchar(2)) " +
+                "BEGIN INSERT INTO test (id, state) VALUES (p1, p2); END");
 
-			MySqlCommand cmd = conn.CreateCommand();
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.CommandText = "spTest";
-			cmd.Parameters.Add("?p1", MySqlDbType.UInt16, 9);
-			cmd.Parameters["?p1"].Value = 44;
-			cmd.Parameters.Add("?p2", MySqlDbType.VarChar, 2);
-			cmd.Parameters["?p2"].Value = "ss";
-			try
-			{
-				cmd.ExecuteNonQuery();
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-		}
+            MySqlCommand cmd = conn.CreateCommand();
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.CommandText = "spTest";
+            cmd.Parameters.Add("?p1", MySqlDbType.UInt16, 9);
+            cmd.Parameters["?p1"].Value = 44;
+            cmd.Parameters.Add("?p2", MySqlDbType.VarChar, 2);
+            cmd.Parameters["?p2"].Value = "ss";
+            try
+            {
+                cmd.ExecuteNonQuery();
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+        }
 
-		[Test]
-		public void ReturningEmptyResultSet()
-		{
-			execSQL("DROP PROCEDURE IF EXISTS spTest");
-			execSQL("DROP TABLE IF EXISTS test1");
-			execSQL("DROP TABLE IF EXISTS test2");
-			execSQL("CREATE TABLE test1 (id int AUTO_INCREMENT NOT NULL, " +
-				 "Name VARCHAR(100) NOT NULL, PRIMARY KEY(id))");
-			execSQL("CREATE TABLE test2 (id int AUTO_INCREMENT NOT NULL, " +
-				 "id1 INT NOT NULL, id2 INT NOT NULL, PRIMARY KEY(id))");
+        [Test]
+        public void ReturningEmptyResultSet()
+        {
+            execSQL("DROP PROCEDURE IF EXISTS spTest");
+            execSQL("DROP TABLE IF EXISTS test1");
+            execSQL("DROP TABLE IF EXISTS test2");
+            execSQL("CREATE TABLE test1 (id int AUTO_INCREMENT NOT NULL, " +
+                 "Name VARCHAR(100) NOT NULL, PRIMARY KEY(id))");
+            execSQL("CREATE TABLE test2 (id int AUTO_INCREMENT NOT NULL, " +
+                 "id1 INT NOT NULL, id2 INT NOT NULL, PRIMARY KEY(id))");
 
-			execSQL("INSERT INTO test1 (Id, Name) VALUES (1, 'Item1')");
-			execSQL("INSERT INTO test1 (Id, Name) VALUES (2, 'Item2')");
-			execSQL("INSERT INTO test2 (Id, Id1, Id2) VALUES (1, 1, 1)");
-			execSQL("INSERT INTO test2 (Id, Id1, Id2) VALUES (2, 2, 1)");
+            execSQL("INSERT INTO test1 (Id, Name) VALUES (1, 'Item1')");
+            execSQL("INSERT INTO test1 (Id, Name) VALUES (2, 'Item2')");
+            execSQL("INSERT INTO test2 (Id, Id1, Id2) VALUES (1, 1, 1)");
+            execSQL("INSERT INTO test2 (Id, Id1, Id2) VALUES (2, 2, 1)");
 
-			execSQL("CREATE PROCEDURE spTest(Name VARCHAR(100), OUT Table1Id INT) " +
-				 "BEGIN SELECT t1.Id INTO Table1Id FROM test1 t1 WHERE t1.Name LIKE Name; " +
-				 "SELECT t3.Id2 FROM test2 t3 WHERE t3.Id1 = Table1Id; END");
+            execSQL("CREATE PROCEDURE spTest(Name VARCHAR(100), OUT Table1Id INT) " +
+                 "BEGIN SELECT t1.Id INTO Table1Id FROM test1 t1 WHERE t1.Name LIKE Name; " +
+                 "SELECT t3.Id2 FROM test2 t3 WHERE t3.Id1 = Table1Id; END");
 
-			MySqlCommand cmd = conn.CreateCommand();
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.CommandText = "spTest";
-			cmd.Parameters.Add("?Name", "Item3");
-			cmd.Parameters.Add("?Table1Id", MySqlDbType.Int32);
-			cmd.Parameters["?Table1Id"].Direction = ParameterDirection.Output;
+            MySqlCommand cmd = conn.CreateCommand();
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.CommandText = "spTest";
+            cmd.Parameters.Add("?Name", "Item3");
+            cmd.Parameters.Add("?Table1Id", MySqlDbType.Int32);
+            cmd.Parameters["?Table1Id"].Direction = ParameterDirection.Output;
 
-			DataSet ds = new DataSet();
-			MySqlDataAdapter da = new MySqlDataAdapter(cmd);
-			try
-			{
-				da.Fill(ds);
-			}
-			catch (MySqlException)
-			{
-				// on 5.1 this throws an exception that no rows were returned.
-			}
-		}
+            DataSet ds = new DataSet();
+            MySqlDataAdapter da = new MySqlDataAdapter(cmd);
+            try
+            {
+                da.Fill(ds);
+            }
+            catch (MySqlException)
+            {
+                // on 5.1 this throws an exception that no rows were returned.
+            }
+        }
 
-		[Test]
-		public void ProcedureCache()
-		{
-			// open a new connection using a procedure cache
-			string connStr = GetConnectionString(true);
-			connStr += ";procedure cache size=25;logging=true";
-			MySqlConnection c = new MySqlConnection(connStr);
-			try
-			{
-				c.Open();
+        [Explicit]
+        [Test]
+        public void ProcedureCache()
+        {
+            // open a new connection using a procedure cache
+            string connStr = GetConnectionString(true);
+            connStr += ";procedure cache size=25;logging=true";
+            MySqlConnection c = new MySqlConnection(connStr);
+            try
+            {
+                c.Open();
 
-				// install our custom trace listener
-				GenericListener myListener = new GenericListener();
-				System.Diagnostics.Trace.Listeners.Add(myListener);
+                // install our custom trace listener
+                GenericListener myListener = new GenericListener();
+                System.Diagnostics.Trace.Listeners.Add(myListener);
 
-				for (int x = 0; x < 10; x++)
-				{
-					execSQL("DROP PROCEDURE IF EXISTS spTest" + x);
-					execSQL("CREATE PROCEDURE spTest" + x + "() BEGIN SELECT 1; END");
-					MySqlCommand cmd = new MySqlCommand("spTest" + x, c);
-					cmd.CommandType = CommandType.StoredProcedure;
-					for (int y = 0; y < 20; y++)
-					{
-						cmd.ExecuteNonQuery();
-					}
-				}
+                for (int x = 0; x < 10; x++)
+                {
+                    execSQL("DROP PROCEDURE IF EXISTS spTest" + x);
+                    execSQL("CREATE PROCEDURE spTest" + x + "() BEGIN SELECT 1; END");
+                    MySqlCommand cmd = new MySqlCommand("spTest" + x, c);
+                    cmd.CommandType = CommandType.StoredProcedure;
+                    for (int y = 0; y < 20; y++)
+                    {
+                        cmd.ExecuteNonQuery();
+                    }
+                }
 
-				// remove our custom trace listener
-				System.Diagnostics.Trace.Listeners.Remove(myListener);
+                // remove our custom trace listener
+                System.Diagnostics.Trace.Listeners.Remove(myListener);
 
-				// TODO: this is not working under NUnit currently
-				// now see how many times our listener recorded a cache hit
-				//Assert.AreEqual(190, myListener.Find("from procedure cache"));
-				//Assert.AreEqual(10, myListener.Find("from server"));
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-			finally
-			{
-				if (c != null)
-					c.Close();
-				for (int x = 0; x < 10; x++)
-					execSQL("DROP PROCEDURE IF EXISTS spTest" + x);
-			}
-		}
+                // TODO: this is not working under NUnit currently
+                // now see how many times our listener recorded a cache hit
+                //Assert.AreEqual(190, myListener.Find("from procedure cache"));
+                //Assert.AreEqual(10, myListener.Find("from server"));
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            finally
+            {
+                if (c != null)
+                    c.Close();
+                for (int x = 0; x < 10; x++)
+                    execSQL("DROP PROCEDURE IF EXISTS spTest" + x);
+            }
+        }
 
-		/// <summary>
-		/// Bug #20581 Null Reference Exception when closing reader after stored procedure. 
-		/// </summary>
-		[Test]
-		public void Bug20581()
-		{
-			execSQL("CREATE PROCEDURE spTest(p int) BEGIN SELECT p; END");
-			MySqlParameter param1;
-			MySqlCommand command = new MySqlCommand("spTest", conn);
-			command.CommandType = System.Data.CommandType.StoredProcedure;
+        /// <summary>
+        /// Bug #20581 Null Reference Exception when closing reader after stored procedure. 
+        /// </summary>
+        [Test]
+        public void Bug20581()
+        {
+            execSQL("CREATE PROCEDURE spTest(p int) BEGIN SELECT p; END");
+            MySqlParameter param1;
+            MySqlCommand command = new MySqlCommand("spTest", conn);
+            command.CommandType = System.Data.CommandType.StoredProcedure;
 
-			param1 = command.Parameters.Add("?p", MySqlDbType.Int32);
-			param1.Value = 3;
+            param1 = command.Parameters.Add("?p", MySqlDbType.Int32);
+            param1.Value = 3;
 
-			MySqlDataReader reader = null;
-			try
-			{
-				command.Prepare();
-				reader = command.ExecuteReader(CommandBehavior.SingleRow);
-				reader.Read();
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-			finally
-			{
-				if (reader != null)
-					reader.Close();
-			}
-		}
+            MySqlDataReader reader = null;
+            try
+            {
+                command.Prepare();
+                reader = command.ExecuteReader(CommandBehavior.SingleRow);
+                reader.Read();
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            finally
+            {
+                if (reader != null)
+                    reader.Close();
+            }
+        }
 
-		/// <summary>
-		/// Bug #17046 Null pointer access when stored procedure is used 
-		/// </summary>
-		[Test]
-		public void PreparedReader()
-		{
-			execSQL("DROP TABLE IF EXISTS test");
-			execSQL("CREATE TABLE  test (id int(10) unsigned NOT NULL default '0', " +
-				 "val int(10) unsigned default NULL, PRIMARY KEY (id)) " +
-				 "ENGINE=InnoDB DEFAULT CHARSET=utf8");
-			execSQL("CREATE PROCEDURE spTest (IN pp INTEGER) " +
-					  "select * from test where id > pp ");
+        /// <summary>
+        /// Bug #17046 Null pointer access when stored procedure is used 
+        /// </summary>
+        [Test]
+        public void PreparedReader()
+        {
+            execSQL("DROP TABLE IF EXISTS test");
+            execSQL("CREATE TABLE  test (id int(10) unsigned NOT NULL default '0', " +
+                 "val int(10) unsigned default NULL, PRIMARY KEY (id)) " +
+                 "ENGINE=InnoDB DEFAULT CHARSET=utf8");
+            execSQL("CREATE PROCEDURE spTest (IN pp INTEGER) " +
+                      "select * from test where id > pp ");
 
-			MySqlCommand c = new MySqlCommand("spTest", conn);
-			c.CommandType = CommandType.StoredProcedure;
-			IDataParameter p = c.CreateParameter();
-			p.ParameterName = "?pp";
-			p.Value = 10;
-			c.Parameters.Add(p);
-			c.Prepare();
-			MySqlDataReader reader = null;
-			try
-			{
-				reader = c.ExecuteReader();
-				while (reader.Read())
-				{
+            MySqlCommand c = new MySqlCommand("spTest", conn);
+            c.CommandType = CommandType.StoredProcedure;
+            IDataParameter p = c.CreateParameter();
+            p.ParameterName = "?pp";
+            p.Value = 10;
+            c.Parameters.Add(p);
+            c.Prepare();
+            MySqlDataReader reader = null;
+            try
+            {
+                reader = c.ExecuteReader();
+                while (reader.Read())
+                {
 
-				}
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-			finally
-			{
-				if (reader != null)
-					reader.Close();
-			}
-		}
+                }
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            finally
+            {
+                if (reader != null)
+                    reader.Close();
+            }
+        }
 
-		[Test]
-		public void UnsignedOutputParameters()
-		{
-			execSQL("DROP TABLE IF EXISTS test");
-			execSQL("CREATE TABLE  test (id INT(10) UNSIGNED AUTO_INCREMENT, PRIMARY KEY (id)) ");
-			execSQL("CREATE PROCEDURE spTest (OUT id BIGINT UNSIGNED) " +
-					  "BEGIN INSERT INTO test VALUES (NULL); SET id=LAST_INSERT_ID(); END");
+        [Test]
+        public void UnsignedOutputParameters()
+        {
+            execSQL("DROP TABLE IF EXISTS test");
+            execSQL("CREATE TABLE  test (id INT(10) UNSIGNED AUTO_INCREMENT, PRIMARY KEY (id)) ");
+            execSQL("CREATE PROCEDURE spTest (OUT id BIGINT UNSIGNED) " +
+                      "BEGIN INSERT INTO test VALUES (NULL); SET id=LAST_INSERT_ID(); END");
 
-			MySqlCommand cmd = new MySqlCommand("spTest", conn);
-			cmd.CommandType = CommandType.StoredProcedure;
-			cmd.Parameters.Add("?id", MySqlDbType.UInt64);
-			cmd.Parameters[0].Direction = ParameterDirection.Output;
-			cmd.ExecuteNonQuery();
+            MySqlCommand cmd = new MySqlCommand("spTest", conn);
+            cmd.CommandType = CommandType.StoredProcedure;
+            cmd.Parameters.Add("?id", MySqlDbType.UInt64);
+            cmd.Parameters[0].Direction = ParameterDirection.Output;
+            cmd.ExecuteNonQuery();
 
-			object o = cmd.Parameters[0].Value;
-			Assert.IsTrue(o is ulong);
-			Assert.AreEqual(1, o);
-		}
+            object o = cmd.Parameters[0].Value;
+            Assert.IsTrue(o is ulong);
+            Assert.AreEqual(1, o);
+        }
 
-		/// <summary>
-		/// Bug #22452 MySql.Data.MySqlClient.MySqlException: 
-		/// </summary>
-		[Test]
-		public void TurkishStoredProcs()
-		{
-			execSQL("CREATE PROCEDURE spTest(IN p_paramname INT) BEGIN SELECT p_paramname; END");
-			CultureInfo uiCulture = Thread.CurrentThread.CurrentUICulture;
-			CultureInfo culture = Thread.CurrentThread.CurrentCulture;
-			Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");
-			Thread.CurrentThread.CurrentUICulture = new CultureInfo("tr-TR");
+        /// <summary>
+        /// Bug #22452 MySql.Data.MySqlClient.MySqlException: 
+        /// </summary>
+        [Test]
+        public void TurkishStoredProcs()
+        {
+            execSQL("CREATE PROCEDURE spTest(IN p_paramname INT) BEGIN SELECT p_paramname; END");
+            CultureInfo uiCulture = Thread.CurrentThread.CurrentUICulture;
+            CultureInfo culture = Thread.CurrentThread.CurrentCulture;
+            Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");
+            Thread.CurrentThread.CurrentUICulture = new CultureInfo("tr-TR");
 
-			try
-			{
-				MySqlCommand cmd = new MySqlCommand("spTest", conn);
-				cmd.Parameters.Add("?p_paramname", 2);
-				cmd.CommandType = CommandType.StoredProcedure;
-				cmd.ExecuteScalar();
-			}
-			catch (Exception ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-			finally
-			{
-				Thread.CurrentThread.CurrentCulture = culture;
-				Thread.CurrentThread.CurrentUICulture = uiCulture;
-			}
-		}
+            try
+            {
+                MySqlCommand cmd = new MySqlCommand("spTest", conn);
+                cmd.Parameters.Add("?p_paramname", 2);
+                cmd.CommandType = CommandType.StoredProcedure;
+                cmd.ExecuteScalar();
+            }
+            catch (Exception ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            finally
+            {
+                Thread.CurrentThread.CurrentCulture = culture;
+                Thread.CurrentThread.CurrentUICulture = uiCulture;
+            }
+        }
 
-		/// <summary>
-		/// Bug #23268 System.FormatException when invoking procedure with ENUM input parameter 
-		/// </summary>
-		[Test]
-		public void ProcEnumParamTest()
-		{
-			execSQL("DROP TABLE IF EXISTS test");
-			execSQL("CREATE TABLE test(str VARCHAR(50), e ENUM ('P','R','F','E'), i INT(6))");
-			execSQL("CREATE PROCEDURE spTest(IN p_enum ENUM('P','R','F','E')) BEGIN " +
-				"INSERT INTO test (str, e, i) VALUES (null, p_enum, 55);  END");
+        /// <summary>
+        /// Bug #23268 System.FormatException when invoking procedure with ENUM input parameter 
+        /// </summary>
+        [Test]
+        public void ProcEnumParamTest()
+        {
+            execSQL("DROP TABLE IF EXISTS test");
+            execSQL("CREATE TABLE test(str VARCHAR(50), e ENUM ('P','R','F','E'), i INT(6))");
+            execSQL("CREATE PROCEDURE spTest(IN p_enum ENUM('P','R','F','E')) BEGIN " +
+                "INSERT INTO test (str, e, i) VALUES (null, p_enum, 55);  END");
 
-			try
-			{
-				MySqlCommand cmd = new MySqlCommand("spTest", conn);
-				cmd.CommandType = CommandType.StoredProcedure;
-				cmd.Parameters.Add("?p_enum", "P");
-				cmd.Parameters["?p_enum"].Direction = ParameterDirection.Input;
-				using (MySqlDataReader reader = cmd.ExecuteReader())
-				{
-				}
-				cmd.CommandText = "SELECT e FROM test";
-				cmd.CommandType = CommandType.Text;
-				using (MySqlDataReader reader = cmd.ExecuteReader())
-				{
-					reader.Read();
-					Assert.AreEqual("P", reader.GetString(0));
-				}
-			}
-			catch (MySqlException ex)
-			{
-				Assert.Fail(ex.Message);
-			}
-		}
-	}
+            try
+            {
+                MySqlCommand cmd = new MySqlCommand("spTest", conn);
+                cmd.CommandType = CommandType.StoredProcedure;
+                cmd.Parameters.Add("?p_enum", "P");
+                cmd.Parameters["?p_enum"].Direction = ParameterDirection.Input;
+                using (MySqlDataReader reader = cmd.ExecuteReader())
+                {
+                }
+                cmd.CommandText = "SELECT e FROM test";
+                cmd.CommandType = CommandType.Text;
+                using (MySqlDataReader reader = cmd.ExecuteReader())
+                {
+                    reader.Read();
+                    Assert.AreEqual("P", reader.GetString(0));
+                }
+            }
+            catch (MySqlException ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+        }
+    }
 }

Thread
Connector/NET commit: r531 - in branches/1.0: . TestSuiterburnett5 Jan