From: Max Semenik Date: Tue, 16 Feb 2010 12:12:29 +0000 (+0000) Subject: Switched tests to portable table duplication X-Git-Tag: 1.31.0-rc.0~37728 X-Git-Url: http://git.cyclocoop.org/%28?a=commitdiff_plain;h=e7333fa643bf86bb01350b48274fb570ea20d50a;p=lhc%2Fweb%2Fwiklou.git Switched tests to portable table duplication --- diff --git a/maintenance/tests/MediaWiki_Setup.php b/maintenance/tests/MediaWiki_Setup.php index c0fba273f5..e7acc338b5 100644 --- a/maintenance/tests/MediaWiki_Setup.php +++ b/maintenance/tests/MediaWiki_Setup.php @@ -12,31 +12,11 @@ abstract class MediaWiki_Setup extends PHPUnit_Framework_TestCase { $db->tablePrefix( 'parsertest_' ); if( $db->isOpen() ) { - if ( !( strcmp( $db->getServerVersion(), '4.1' ) < 0 and $db->getType() == 'mysql' ) ) { - # Database that supports CREATE TABLE ... LIKE - foreach ( $tables as $tbl ) { - $newTableName = $db->tableName( $tbl ); - $tableName = $oldTableNames[$tbl]; - $db->query( "CREATE TEMPORARY TABLE $newTableName (LIKE $tableName)" ); - } - } else { - # Hack for MySQL versions < 4.1, which don't support - # "CREATE TABLE ... LIKE". Note that - # "CREATE TEMPORARY TABLE ... SELECT * FROM ... LIMIT 0" - # would not create the indexes we need.... - foreach ( $tables as $tbl ) { - $res = $db->query( "SHOW CREATE TABLE $tbl" ); - $row = $db->fetchRow($res); - $create = $row[1]; - $create_tmp = preg_replace( '/CREATE TABLE `(.*?)`/', 'CREATE TEMPORARY TABLE `' - . $wgDBprefix . '\\1`', $create ); - if ($create === $create_tmp) { - # Couldn't do replacement - wfDie( "could not create temporary table $tbl" ); - } - $db->query( $create_tmp ); - } - + foreach ( $tables as $tbl ) { + $newTableName = $db->tableName( $tbl ); + $tableName = $oldTableNames[$tbl]; + $db->query( "DROP TABLE IF EXISTS $newTableName", __METHOD__ ); + $db->duplicateTableStructure( $tableName, $newTableName, __METHOD__ ); } return $db; } else { diff --git a/maintenance/tests/SearchMySQLTest.php b/maintenance/tests/SearchMySQLTest.php index f54bbe9733..526f621635 100644 --- a/maintenance/tests/SearchMySQLTest.php +++ b/maintenance/tests/SearchMySQLTest.php @@ -7,7 +7,7 @@ class SearchMySQLTest extends SearchEngineTest { function setUp() { $GLOBALS['wgContLang'] = new Language; $this->db = $this->buildTestDatabase( - array( 'page', 'revision', 'text', 'searchindex' ) ); + array( 'page', 'revision', 'text', 'searchindex', 'user' ) ); if( $this->db ) { $this->insertSearchData(); }