From 04aa2fd6c678890a577772e4f2280b79f77d7374 Mon Sep 17 00:00:00 2001 From: Eloy Lafuente Date: Tue, 1 Dec 2009 14:27:39 +0000 Subject: [PATCH] MDL-21015 - prevent dead end under uncontrolled situations where cleanup doesn't happen on destruct --- lib/simpletestlib.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/simpletestlib.php b/lib/simpletestlib.php index b14513e9d1..29412f4a3e 100644 --- a/lib/simpletestlib.php +++ b/lib/simpletestlib.php @@ -543,11 +543,15 @@ class UnitTestCaseUsingDatabase extends UnitTestCase { */ protected function create_test_table($tablename, $installxmlfile) { global $CFG; + $dbman = $this->testdb->get_manager(); if (isset($this->tables[$tablename])) { debugging('You are attempting to create test table ' . $tablename . ' again. It already exists. Please review your code immediately.', DEBUG_DEVELOPER); return; } - $dbman = $this->testdb->get_manager(); + if ($dbman->table_exists($tablename)) { + debugging('This table ' . $tablename . ' already exists from a previous execution. If the error persists you will need to review your code to ensure it is being created only once.', DEBUG_DEVELOPER); + $dbman->drop_table(new xmldb_table($tablename)); + } $dbman->install_one_table_from_xmldb_file($CFG->dirroot . '/' . $installxmlfile . '/db/install.xml', $tablename); $this->tables[$tablename] = 1; } -- 2.39.5