From b6905779bd13f9ec0a51cbc2093bb51fd6d37b46 Mon Sep 17 00:00:00 2001 From: Max Semenik Date: Wed, 15 Jun 2011 17:59:02 +0000 Subject: [PATCH] Also check indexes in SQLite upgrade tests --- .../includes/db/DatabaseSqliteTest.php | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/phpunit/includes/db/DatabaseSqliteTest.php b/tests/phpunit/includes/db/DatabaseSqliteTest.php index 4995c969f8..f34e862c4b 100644 --- a/tests/phpunit/includes/db/DatabaseSqliteTest.php +++ b/tests/phpunit/includes/db/DatabaseSqliteTest.php @@ -174,7 +174,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase { $this->assertEquals( array_keys( $currentCols ), array_keys( $cols ), - "Mismatching columns for table $table $versions" + "Mismatching columns for table \"$table\" $versions" ); foreach ( $currentCols as $name => $column ) { $fullName = "$table.$name"; @@ -196,6 +196,13 @@ class DatabaseSqliteTest extends MediaWikiTestCase { ); } } + $currentIndexes = $this->getIndexes( $currentDB, $table ); + $indexes = $this->getIndexes( $db, $table ); + $this->assertEquals( + array_keys( $currentIndexes ), + array_keys( $indexes ), + "mismatching indexes for table \"$table\" $versions" + ); } $db->close(); } @@ -245,4 +252,21 @@ class DatabaseSqliteTest extends MediaWikiTestCase { ksort( $cols ); return $cols; } + + private function getIndexes( $db, $table ) { + $indexes = array(); + $res = $db->query( "PRAGMA index_list($table)" ); + $this->assertNotNull( $res ); + foreach ( $res as $index ) { + $res2 = $db->query( "PRAGMA index_info({$index->name})" ); + $this->assertNotNull( $res2 ); + $index->columns = array(); + foreach ( $res2 as $col ) { + $index->columns[] = $col; + } + $indexes[$index->name] = $index; + } + ksort( $indexes ); + return $indexes; + } } -- 2.20.1