#At file:///Users/malff/BZR_TREE/mysql-5.5-bug11830755/ based on revid:jon.hauglid@stripped
3377 Marc Alff 2011-03-08
Bug#11830755 - UNIT TESTS PFS_INSTR AND PFS_INSTR_CLASS CRASH IN MUTEX CALLS ON WINDOWS
Before this fix, two performance schema unit tests crashed on windows.
The problem was a missing initialization to PFS_atomics,
which caused the crash only for platform not compiled with native atomics.
This fix adds the missing initialization in the unit tests.
No production code was changed, this is a unit test bug only.
modified:
storage/perfschema/unittest/pfs-t.cc
storage/perfschema/unittest/pfs_instr-oom-t.cc
storage/perfschema/unittest/pfs_instr-t.cc
storage/perfschema/unittest/pfs_instr_class-oom-t.cc
storage/perfschema/unittest/pfs_instr_class-t.cc
storage/perfschema/unittest/pfs_timer-t.cc
=== modified file 'storage/perfschema/unittest/pfs-t.cc'
--- a/storage/perfschema/unittest/pfs-t.cc 2010-11-16 08:36:42 +0000
+++ b/storage/perfschema/unittest/pfs-t.cc 2011-03-08 12:42:00 +0000
@@ -1205,6 +1205,8 @@ void test_enabled()
void do_all_tests()
{
+ /* Using initialize_performance_schema(), no partial init needed. */
+
test_bootstrap();
test_bad_registration();
test_init_disabled();
=== modified file 'storage/perfschema/unittest/pfs_instr-oom-t.cc'
--- a/storage/perfschema/unittest/pfs_instr-oom-t.cc 2010-11-16 08:36:42 +0000
+++ b/storage/perfschema/unittest/pfs_instr-oom-t.cc 2011-03-08 12:42:00 +0000
@@ -199,7 +199,11 @@ void test_oom()
void do_all_tests()
{
+ PFS_atomic::init();
+
test_oom();
+
+ PFS_atomic::cleanup();
}
int main(int, char **)
=== modified file 'storage/perfschema/unittest/pfs_instr-t.cc'
--- a/storage/perfschema/unittest/pfs_instr-t.cc 2010-11-16 08:36:42 +0000
+++ b/storage/perfschema/unittest/pfs_instr-t.cc 2011-03-08 12:42:00 +0000
@@ -400,10 +400,14 @@ void test_per_thread_wait()
void do_all_tests()
{
+ PFS_atomic::init();
+
test_no_instruments();
test_no_instances();
test_with_instances();
test_per_thread_wait();
+
+ PFS_atomic::cleanup();
}
int main(int, char **)
=== modified file 'storage/perfschema/unittest/pfs_instr_class-oom-t.cc'
--- a/storage/perfschema/unittest/pfs_instr_class-oom-t.cc 2010-11-16 08:36:42 +0000
+++ b/storage/perfschema/unittest/pfs_instr_class-oom-t.cc 2011-03-08 12:42:00 +0000
@@ -47,7 +47,11 @@ void test_oom()
void do_all_tests()
{
+ PFS_atomic::init();
+
test_oom();
+
+ PFS_atomic::cleanup();
}
int main(int, char **)
=== modified file 'storage/perfschema/unittest/pfs_instr_class-t.cc'
--- a/storage/perfschema/unittest/pfs_instr_class-t.cc 2010-11-16 08:36:42 +0000
+++ b/storage/perfschema/unittest/pfs_instr_class-t.cc 2011-03-08 12:42:00 +0000
@@ -554,6 +554,8 @@ void test_instruments_reset()
void do_all_tests()
{
+ PFS_atomic::init();
+
test_no_registration();
test_mutex_registration();
test_rwlock_registration();
@@ -562,6 +564,8 @@ void do_all_tests()
test_file_registration();
test_table_registration();
test_instruments_reset();
+
+ PFS_atomic::cleanup();
}
int main(int, char **)
=== modified file 'storage/perfschema/unittest/pfs_timer-t.cc'
--- a/storage/perfschema/unittest/pfs_timer-t.cc 2010-07-15 23:44:45 +0000
+++ b/storage/perfschema/unittest/pfs_timer-t.cc 2011-03-08 12:42:00 +0000
@@ -105,7 +105,11 @@ void test_timers()
void do_all_tests()
{
+ PFS_atomic::init();
+
test_timers();
+
+ PFS_atomic::cleanup();
}
int main(int, char **)
Attachment: [text/bzr-bundle] bzr/marc.alff@oracle.com-20110308124200-94sl2jmraho7yxzp.bundle
| Thread |
|---|
| • bzr commit into mysql-5.5 branch (marc.alff:3377) Bug#11830755 | Marc Alff | 8 Mar |