From 0f18f3fa6ff3761ca2bdc0f61a2b0ab9c1553ca9 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Tue, 20 May 2014 18:01:32 +0800 Subject: [PATCH] MDL-45606 Unit test fix for MySQL and added a comment about the removed code. --- lib/phpunit/classes/util.php | 3 +++ question/engine/tests/questionusage_autosave_test.php | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/lib/phpunit/classes/util.php b/lib/phpunit/classes/util.php index 19e8a95253c..a03f98231bc 100644 --- a/lib/phpunit/classes/util.php +++ b/lib/phpunit/classes/util.php @@ -106,6 +106,9 @@ class phpunit_util extends testing_util { // Stop any message redirection. phpunit_util::stop_phpmailer_redirection(); + // We used to call gc_collect_cycles here to ensure desctructors were called between tests. + // This accounted for 25% of the total time running phpunit - so we removed it. + // Show any unhandled debugging messages, the runbare() could already reset it. self::display_debugging_messages(); self::reset_debugging(); diff --git a/question/engine/tests/questionusage_autosave_test.php b/question/engine/tests/questionusage_autosave_test.php index 14315408c79..e846bc5ff99 100644 --- a/question/engine/tests/questionusage_autosave_test.php +++ b/question/engine/tests/questionusage_autosave_test.php @@ -685,4 +685,10 @@ class question_usage_autosave_test extends qbehaviour_walkthrough_test_base { $this->delete_quba(); } + + protected function tearDown() { + // This test relies on the destructor for the second DB connection being called before running the next test. + // Without this change - there will be unit test failures on "some" DBs (MySQL). + gc_collect_cycles(); + } } -- 2.43.0