summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSatya B <satya.bn@sun.com>2009-04-24 17:27:53 +0530
committerSatya B <satya.bn@sun.com>2009-04-24 17:27:53 +0530
commitd5065d14265fd2fa6efc8d566a8f542f30ced36e (patch)
tree839ae21b31d34a9883a8c75bb90df93759cbebff
parent0e4caf39fe792168c1032ad4097a3991a12a1cc0 (diff)
downloadmariadb-git-d5065d14265fd2fa6efc8d566a8f542f30ced36e.tar.gz
Applying InnoDB snashot 5.0-ss4900, part 2. Fixes BUG#43309
1) BUG#43309 - Test main.innodb can't be run twice Detailed revision comments: r4701 | vasil | 2009-04-13 17:03:46 +0300 (Mon, 13 Apr 2009) | 6 lines branches/5.0: Fix Bug#43309 Test main.innodb can't be run twice by making the innodb.test reentrant.
-rw-r--r--mysql-test/r/innodb.result15
-rw-r--r--mysql-test/t/innodb.test29
2 files changed, 32 insertions, 12 deletions
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 854712fdb1d..415fbe87f53 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -1803,15 +1803,12 @@ Innodb_buffer_pool_pages_total 512
show status like "Innodb_page_size";
Variable_name Value
Innodb_page_size 16384
-show status like "Innodb_rows_deleted";
-Variable_name Value
-Innodb_rows_deleted 73
-show status like "Innodb_rows_inserted";
-Variable_name Value
-Innodb_rows_inserted 29734
-show status like "Innodb_rows_updated";
-Variable_name Value
-Innodb_rows_updated 29532
+innodb_rows_deleted
+73
+innodb_rows_inserted
+29734
+innodb_rows_updated
+29532
show status like "Innodb_row_lock_waits";
Variable_name Value
Innodb_row_lock_waits 0
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index d045bad39f7..f09901d1112 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -13,6 +13,18 @@
-- source include/have_innodb.inc
+# Save the original values of some variables in order to be able to
+# estimate how much they have changed during the tests. Previously this
+# test assumed that e.g. rows_deleted is 0 here and after deleting 23
+# rows it expected that rows_deleted will be 23. Now we do not make
+# assumptions about the values of the variables at the beginning, e.g.
+# rows_deleted should be 23 + "rows_deleted before the test". This allows
+# the test to be run multiple times without restarting the mysqld server.
+# See Bug#43309 Test main.innodb can't be run twice
+-- let $innodb_rows_deleted_orig = query_get_value(SHOW STATUS WHERE variable_name = 'innodb_rows_deleted', Value, 1)
+-- let $innodb_rows_inserted_orig = query_get_value(SHOW STATUS WHERE variable_name = 'innodb_rows_inserted', Value, 1)
+-- let $innodb_rows_updated_orig = query_get_value(SHOW STATUS WHERE variable_name = 'innodb_rows_updated', Value, 1)
+
#
# Small basic test with ignore
#
@@ -1344,9 +1356,14 @@ drop table t1;
# uses previous ones(pages_created, rows_deleted, ...).
show status like "Innodb_buffer_pool_pages_total";
show status like "Innodb_page_size";
-show status like "Innodb_rows_deleted";
-show status like "Innodb_rows_inserted";
-show status like "Innodb_rows_updated";
+-- let $innodb_rows_deleted = query_get_value(SHOW STATUS WHERE variable_name = 'innodb_rows_deleted', Value, 1)
+-- let $innodb_rows_inserted = query_get_value(SHOW STATUS WHERE variable_name = 'innodb_rows_inserted', Value, 1)
+-- let $innodb_rows_updated = query_get_value(SHOW STATUS WHERE variable_name = 'innodb_rows_updated', Value, 1)
+-- disable_query_log
+-- eval SELECT $innodb_rows_deleted - $innodb_rows_deleted_orig AS innodb_rows_deleted
+-- eval SELECT $innodb_rows_inserted - $innodb_rows_inserted_orig AS innodb_rows_inserted
+-- eval SELECT $innodb_rows_updated - $innodb_rows_updated_orig AS innodb_rows_updated
+-- enable_query_log
# Test for row locks InnoDB status variables.
show status like "Innodb_row_lock_waits";
@@ -1365,6 +1382,8 @@ set global innodb_sync_spin_loops=20;
show variables like "innodb_sync_spin_loops";
# Test for innodb_thread_concurrency variable
+# save the original value so we can restore it at the end
+-- let $innodb_thread_concurrency_orig = query_get_value(SHOW VARIABLES WHERE variable_name = 'innodb_thread_concurrency', Value, 1)
show variables like "innodb_thread_concurrency";
set global innodb_thread_concurrency=1001;
show variables like "innodb_thread_concurrency";
@@ -1372,6 +1391,10 @@ set global innodb_thread_concurrency=0;
show variables like "innodb_thread_concurrency";
set global innodb_thread_concurrency=16;
show variables like "innodb_thread_concurrency";
+# restore the orginal value, this way the test can be run multiple times
+-- disable_query_log
+-- eval set global innodb_thread_concurrency = $innodb_thread_concurrency_orig
+-- enable_query_log
# Test for innodb_concurrency_tickets variable
show variables like "innodb_concurrency_tickets";