Drupal\system\Tests\Database tests + closely related tests do not pass on SQLite.

For multiple reasons, in prioritized order:

  1. SQLite: StatementPrefetch is not used and dead code due to logic error.

    sqlite\Connection extends Database\Connection. Its constructor intends to override $statementClass, but only does so after calling the parent constructor. The parent constructor immediately sets the PDO::ATTR_STATEMENT_CLASS attribute on the connection.

    In turn, SQLite uses the regular Drupal\Core\Database\Statement class. None of the custom SQLite code - including StatementPrefetch - is ever called.

    In addition, the former StatementPrefetch approach is no longer compatible with PHP core. PDO immediately throws an exception stating that a "user-supplied statement class must derive from \PDOStatement."

    However, #2304461: KernelTestBaseNG™ proves that the workaround is no longer necessary and obsolete. SQLite works perfectly fine with the regular Statement class.

    The only workaround that is still required is the expansion of numeric values in the SQL statement, since http://bugs.php.net/bug.php?id=45259 is still unresolved.

    But that can be easily resolved by moving the former code from Statement::getStatement() into a driver-specific override of Connection::expandArguments().

    → Expand the arguments in the SQLite Connection class already. Remove all other workarounds (dead code).

    New coverage is added to Database tests.

  2. SQLite Insert query does not account for INSERT FROM ... SELECT.

    The driver-specific optimization for DEFAULT VALUES incorrectly kicks-in, because $this->insertFields is empty.

    → Fix Insert query to account for a non-empty $this->fromQuery.

    Covered by InsertTest.

  3. SQLite REGEXP user function exists, but is wrongly implemented.

    The current user function was implemented after SQLite's native regexp(subject, pattern) function, but the string REGEXP pattern SQL operator results in regexp(pattern, subject) (reversed arguments).

    → Fix the arguments.

    Covered by SelectTest::testRegexCondition().

  4. SQLite does not interpret '\_' as a string literal in LIKE without an ESCAPE '\' postfix.

    At the same time, MySQL breaks with LIKE ... ESCAPE '\'.

    All SELECT queries using LIKE are required to use the Select query builder, which handles the situation via Connection::mapConditionOperator() already.

    However, Config\DatabaseStorage::listAll() does not use the Select query builder.

    → Use a proper Select query builder in Config\DatabaseStorage::listAll().

    Covered by Database BasicSyntaxTest + Config DatabaseStorageTest.

  5. SQLite does not natively support CONCAT_WS().

    Used by Views, also in D8.

    CONCAT_WS() is not ANSI SQL, but is supported by MySQL + PostgreSQL, and can be easily supported in SQLite.

    New coverage is added to Database tests.

  6. SQLite's date/calendar handling is limited.

    SQLite does not support advanced date/calendar operations (such as identifying 2000-01-01 as the 52nd week of 1999).

    → The affected test of Views won't ever pass on SQLite and needs to be wrapped into a database driver condition.

Proposed solution

  1. Make qa.drupal.org testbots additionally execute all Database tests against SQLite when testing Drupal core.
  2. Add the corresponding fixes.

Why the changes to run-tests.sh?

  1. The approach was discussed in recent meetings for modernizing the testbot already.

  2. It's the Database component that claims to support multiple backends, so proving that claim means to run only the Database tests against more than one backend — a.k.a. explicit test coverage. (1 min 13 sec)

  3. run-tests.sh is adjusted to check whether it is executed on a qa.drupal.org/PIFR testbot and asked to run the full Drupal core test suite (--all).

  4. Only if both conditions are met, Database tests are executed against SQLite prior to the actual core test suite (which still runs against MySQL).

  5. Test failures in SQLite do NOT affect the final test result. For now, test results are only visible in the test review log and not recorded (i.e., --keep-results is explicitly disabled).

Major milestone.

This is how backend-specific component testing is supposed to work and how it's done everywhere else. That's why the application should have total control over the CI test/build script and why the same approach is found in Travis-CI (working example).

Once we fully migrated to PHPUnit, the executed operation will look like this:

$ DRUPAL_DATABASE=sqlite://localhost/build/db.sqlite phpunit -c core --group Database

(Unlike run-tests.sh, this will run all tests tagged with @group Database; i.e., including Database backend tests of other components.)

Why a single issue?

As soon as you swap out the Database driver, all errors are exposed.

Files: 
CommentFileSizeAuthor
#53 interdiff-2318191-47-53.txt0 bytesbabruix
#53 2318191-53.patch41.84 KBbabruix
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 85,126 pass(es).
[ View ]
#47 sqlite.47.patch41.87 KBcilefen
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 84,322 pass(es).
[ View ]
#47 interdiff-45-47.txt404 bytescilefen
#45 sqlite.45.patch41.35 KBcilefen
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Failed to run tests: PHP Fatal error encountered during run_tests.sh. See review log for details..
[ View ]
#45 interdiff-40-45.txt572 bytescilefen
#40 sqlite.40.patch41.43 KBcilefen
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Failed to run tests: failed during invocation of run-tests.sh.
[ View ]
#27 sqlite.27.patch45.52 KBsun
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch sqlite.27.patch. Unable to apply patch. See the log in the details link for more information.
[ View ]
#22 sqlite.22.patch45.54 KBsun
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch sqlite.22.patch. Unable to apply patch. See the log in the details link for more information.
[ View ]
#18 sqlite.18.patch43.07 KBsun
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 77,142 pass(es).
[ View ]
#9 sqlite.9.head-fail.patch2.51 KBsun
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] 75,260 pass(es), 5 fail(s), and 0 exception(s).
[ View ]
#9 sqlite.9.head-pass.patch37.33 KBsun
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch sqlite.9.head-pass.patch. Unable to apply patch. See the log in the details link for more information.
[ View ]
#9 sqlite.9.patch34.81 KBsun
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 75,203 pass(es).
[ View ]
#6 sqlite.6.patch17.12 KBsun
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] 75,261 pass(es), 0 fail(s), and 1 exception(s).
[ View ]
#1 sqlite.1.patch15.73 KBsun
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Drupal installation failed.
[ View ]
sqlite.0.patch1.78 KBsun
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] 75,258 pass(es), 5 fail(s), and 1 exception(s).
[ View ]

Comments

sun’s picture

StatusFileSize
new15.73 KB
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Drupal installation failed.
[ View ]

The initial patch should fail (tested locally).

Attached patch should pass. (still contains the temporary change to Database tests)

Status:Needs review» Needs work

The last submitted patch, 1: sqlite.1.patch, failed testing.

The last submitted patch, 1: sqlite.1.patch, failed testing.

The last submitted patch, 1: sqlite.1.patch, failed testing.

The last submitted patch, sqlite.0.patch, failed testing.

sun’s picture

Status:Needs work» Needs review
StatusFileSize
new17.12 KB
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] 75,261 pass(es), 0 fail(s), and 1 exception(s).
[ View ]
$ cd sites/default/files/checkout
$ drush si -y --db-url=mysql://drupaltestbot-my:D5rQ4m5HS9UI@localhost/drupaltestbotmysql  --account-name=admin --account-pass=drupal --account-mail=admin@example.com 2>&1

You are about to create a /var/lib/drupaltestbot/sites/default/files/checkout/sites/default/settings.php file and empty any Config directories and DROP all tables in your 'drupaltestbotmysql' database. Do you want to continue? (y/n): y
Starting Drupal installation. This takes a few seconds ...                  [ok]
The "system_menu_block:footer" plugin does not exist.                    [error]].

Looks like MySQL isn't happy about LIKE ... ESCAPE '\'.

sun’s picture

Issue summary:View changes

Updating issue summary accordingly.

Status:Needs review» Needs work

The last submitted patch, 6: sqlite.6.patch, failed testing.

sun’s picture

Status:Needs work» Needs review
StatusFileSize
new34.81 KB
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 75,203 pass(es).
[ View ]
new37.33 KB
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch sqlite.9.head-pass.patch. Unable to apply patch. See the log in the details link for more information.
[ View ]
new2.51 KB
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] 75,260 pass(es), 5 fail(s), and 0 exception(s).
[ View ]

Once more, complete set.

sun’s picture

Issue summary:View changes

Status:Needs review» Needs work

The last submitted patch, 9: sqlite.9.head-fail.patch, failed testing.

sun’s picture

Status:Needs work» Needs review

sun queued 9: sqlite.9.patch for re-testing.

The last submitted patch, 9: sqlite.9.head-pass.patch, failed testing.

moshe weitzman queued 9: sqlite.9.patch for re-testing.

dcrocks’s picture

I use SQLite all the time and this patch appears to fix at least one of my problems(#2267563: Uncaught SQLite failure breaks responsive images). I don't know what the exact failure was, or what in this patch fixes it, but the failing behavior I was seeing stopped after applying this patch.

sun’s picture

Issue summary:View changes
StatusFileSize
new43.07 KB
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 77,142 pass(es).
[ View ]

New approach, single patch, full SQLite test coverage (on testbots).

sun’s picture

Issue summary:View changes

Adjusting proposed solution in issue summary accordingly.

sun’s picture

And we have real results:

Running Database tests for SQLite.
  ./core/scripts/run-tests.sh --concurrency 8 --php /usr/bin/php --url http://ec2-54-205-14-237.compute-1.amazonaws.com/checkout --dburl sqlite://localhost/build/db.sqlite Database

Drupal test run
---------------

Tests to be run:
  ...

Drupal\system\Tests\Database\DatabaseExceptionWrapperTest      0 passes             1 exceptions
Drupal\system\Tests\Database\ConnectionUnitTest               30 passes
Drupal\system\Tests\Database\CaseSensitivityTest               4 passes
Drupal\system\Tests\Database\InsertLobTest                     7 passes
Drupal\system\Tests\Database\DeleteTruncateTest               12 passes
Drupal\system\Tests\Database\InsertDefaultsTest               10 passes
Drupal\system\Tests\Database\ConnectionTest                   22 passes
Drupal\system\Tests\Database\InvalidDataTest                   4 passes
Drupal\system\Tests\Database\NextIdTest                        4 passes
Drupal\system\Tests\Database\BasicSyntaxTest                  20 passes
Drupal\system\Tests\Database\AlterTest                        34 passes
Drupal\system\Tests\Database\RangeQueryTest                    4 passes
Drupal\system\Tests\Database\QueryTest                         7 passes
Drupal\system\Tests\Database\FetchTest                        41 passes
Drupal\system\Tests\Database\SelectCloneTest                   4 passes
Drupal\system\Tests\Database\InsertTest                       30 passes
Drupal\system\Tests\Database\LoggingTest                      24 passes
Drupal\system\Tests\Database\RegressionTest                   15 passes
Drupal\system\Tests\Database\SelectOrderedTest                17 passes
Drupal\system\Tests\Database\MergeTest                        52 passes
Drupal\system\Tests\Database\SerializeQueryTest                3 passes
Drupal\system\Tests\Database\SelectSubqueryTest               19 passes
Drupal\system\Tests\Database\TaggingTest                      28 passes
Drupal\system\Tests\Database\TransactionTest                  55 passes
Drupal\system\Tests\Database\SelectComplexTest                94 passes
Drupal\system\Tests\Database\UpdateLobTest                     7 passes
Drupal\system\Tests\Database\UpdateComplexTest                35 passes
Drupal\system\Tests\Database\TemporaryQueryTest                7 passes
Drupal\system\Tests\Database\SelectTest                      106 passes
Drupal\system\Tests\Database\UpdateTest                       35 passes
Drupal\system\Tests\Database\SelectTableSortDefaultTest       30 passes
Drupal\system\Tests\Database\SchemaTest                      639 passes
Drupal\system\Tests\Database\SelectPagerDefaultTest           22 passes

Test run duration: 1 min 13 sec
dcrocks’s picture

Created new clone of D8.0, applied patch, and installed. Everything went cleanly. Tried responsive images and everything works properly. Only thing missing is a code review, else I think this is RTBC.

sun’s picture

Issue summary:View changes
StatusFileSize
new45.54 KB
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch sqlite.22.patch. Unable to apply patch. See the log in the details link for more information.
[ View ]

Fixed DatabaseExceptionWrapperTest to account for MySQL/SQLite differences (see new/last commit in serial).

Clarified run-tests.sh changes in issue summary.

This should fully pass against both backends and thus RTBC.

sun’s picture

Passed, as promised:

Running Database tests for SQLite.
  ./core/scripts/run-tests.sh --concurrency 8 --php /usr/bin/php --url http://ec2-54-81-6-139.compute-1.amazonaws.com/checkout --dburl sqlite://localhost/build/db.sqlite Database

...

Test summary
------------

Drupal\system\Tests\Database\DatabaseExceptionWrapperTest      2 passes
Drupal\system\Tests\Database\ConnectionUnitTest               30 passes
Drupal\system\Tests\Database\CaseSensitivityTest               4 passes
Drupal\system\Tests\Database\InsertLobTest                     7 passes
Drupal\system\Tests\Database\DeleteTruncateTest               12 passes
Drupal\system\Tests\Database\ConnectionTest                   22 passes
Drupal\system\Tests\Database\InsertDefaultsTest               10 passes
Drupal\system\Tests\Database\InvalidDataTest                   4 passes
Drupal\system\Tests\Database\NextIdTest                        4 passes
Drupal\system\Tests\Database\BasicSyntaxTest                  20 passes
Drupal\system\Tests\Database\RangeQueryTest                    4 passes
Drupal\system\Tests\Database\AlterTest                        34 passes
Drupal\system\Tests\Database\QueryTest                         7 passes
Drupal\system\Tests\Database\SelectCloneTest                   4 passes
Drupal\system\Tests\Database\FetchTest                        41 passes
Drupal\system\Tests\Database\LoggingTest                      24 passes
Drupal\system\Tests\Database\InsertTest                       30 passes
Drupal\system\Tests\Database\RegressionTest                   15 passes
Drupal\system\Tests\Database\SelectOrderedTest                17 passes
Drupal\system\Tests\Database\MergeTest                        52 passes
Drupal\system\Tests\Database\SerializeQueryTest                3 passes
Drupal\system\Tests\Database\SelectSubqueryTest               19 passes
Drupal\system\Tests\Database\TaggingTest                      28 passes
Drupal\system\Tests\Database\TransactionTest                  55 passes
Drupal\system\Tests\Database\SelectComplexTest                94 passes
Drupal\system\Tests\Database\UpdateLobTest                     7 passes
Drupal\system\Tests\Database\UpdateComplexTest                35 passes
Drupal\system\Tests\Database\TemporaryQueryTest                7 passes
Drupal\system\Tests\Database\SelectTest                      106 passes
Drupal\system\Tests\Database\UpdateTest                       35 passes
Drupal\system\Tests\Database\SelectTableSortDefaultTest       30 passes
Drupal\system\Tests\Database\SchemaTest                      639 passes
Drupal\system\Tests\Database\SelectPagerDefaultTest           22 passes

Test run duration: 1 min 13 sec
dcrocks’s picture

Status:Needs review» Reviewed & tested by the community

I would like to see this go in sooner rather than later.

sun’s picture

Issue summary:View changes

Status:Reviewed & tested by the community» Needs work

The last submitted patch, 22: sqlite.22.patch, failed testing.

sun’s picture

Status:Needs work» Reviewed & tested by the community
StatusFileSize
new45.52 KB
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Unable to apply patch sqlite.27.patch. Unable to apply patch. See the log in the details link for more information.
[ View ]

Rebased.

dcrocks’s picture

#27 installed cleanly on a new D8.0 clone and still solves my problem.

webchick’s picture

Status:Reviewed & tested by the community» Needs work

Hm. There's a lot going on in this patch. I would be more comfortable committing it if we could isolate it to only the changes required to get DB tests passing on SQLite, and boot at least:

- Make qa.drupal.org testbots additionally execute all Database tests against SQLite when testing Drupal core.
- In addition, the former StatementPrefetch approach is no longer compatible with PHP core.

...to separate sub-issues to discuss/commit on their own. Removing core/lib/Drupal/Core/Database/StatementPrefetch.php probably needs eyeballing from at least Larry, and that drastic of a change to how testbot tests core needs eyeballing from probably lots of people.

dcrocks’s picture

attiks’s picture

Issue tags:+Needs reroll

#29 This patch solves a lot of problems, so it would be nice to get this in soon.

Status:Needs work» Needs review

dcrocks queued 27: sqlite.27.patch for re-testing.

dcrocks’s picture

Given there are uncaught errors in D8 without this, I don't see how D8 can go beta.

Status:Needs review» Needs work

The last submitted patch, 27: sqlite.27.patch, failed testing.

dcrocks’s picture

Priority:Normal» Major

I'd like to make this critical but more importantly it needs attention. I don't see how D8 can go beta with uncaught failures in the SQlite environment.

dcrocks’s picture

dcrocks’s picture

#2349789: Responsive Image Mappings are not listed with sqlite has a patch for DatabaseStorage.php that is almost identical to the one in this patch that addresses my issue (#2267563] as well. Given there has been no progress here, and that a re-roll is needed here in any case, can someone review that issue's patch and possibly we can get it committed more quickly. Given that D8.0 beta has uncaught data failures with SQLite I'd like to mark this as critical but I somehow feel that would get stomped on rapidly.

dcrocks’s picture

tstoeckler’s picture

Priority:Major» Critical

Because of 4. in the issue summary Sqlite does not work *at all* for config names with an underscore. Try that with a module like "file_entity"...

This is certainly critical as it renders the site *heavily* unusable.

Edit: ahh that was fixed with #2349789: Responsive Image Mappings are not listed with sqlite. still I think this should be critical

cilefen’s picture

Status:Needs work» Needs review
Issue tags:-Needs reroll
StatusFileSize
new41.43 KB
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Failed to run tests: failed during invocation of run-tests.sh.
[ View ]

Reroll of #27.

Status:Needs review» Needs work

The last submitted patch, 40: sqlite.40.patch, failed testing.

Status:Needs work» Needs review

cilefen queued 40: sqlite.40.patch for re-testing.

Status:Needs review» Needs work

The last submitted patch, 40: sqlite.40.patch, failed testing.

dcrocks’s picture

I can't find UnitTestBase anywhere in drupal 8. Shouldn't

class DatabaseExceptionWrapperTest extends KernelTestBase {

remain the same in "DatabaseExceptionWrapperTest.php"?

cilefen’s picture

Status:Needs work» Needs review
StatusFileSize
new572 bytes
new41.35 KB
FAILED: [[SimpleTest]]: [PHP 5.4 MySQL] Failed to run tests: PHP Fatal error encountered during run_tests.sh. See review log for details..
[ View ]

Thank you @dcrocks.

Status:Needs review» Needs work

The last submitted patch, 45: sqlite.45.patch, failed testing.

cilefen’s picture

Status:Needs work» Needs review
StatusFileSize
new404 bytes
new41.87 KB
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 84,322 pass(es).
[ View ]

Status:Needs review» Needs work

The last submitted patch, 47: sqlite.47.patch, failed testing.

Status:Needs work» Needs review

cilefen queued 47: sqlite.47.patch for re-testing.

dcrocks’s picture

Got a current clone of D8, patch installed cleanly, installed D8 on OS X 10.10 without any errors. Will try other tests soon.

chx’s picture

> the workaround is no longer necessary and obsolete. SQLite works perfectly fine with the regular Statement class.

[citation needed]. Brief testing showed this to be correct but I do not think we should dismiss this easily. Reminder:

the PDO SQLite driver only closes SELECT statements when the PDOStatement destructor is called and SQLite does not allow data change (INSERT, UPDATE etc) on a table which has open SELECT statements

I look at https://github.com/php/php-src/blame/master/ext/pdo_sqlite/sqlite_statem... and on and I see zero changes in a decade or so to the functionality of this driver. Did SQLite change behaviors? WAL doesn't seem to be the default. I am a bit baffled about what's changed and when. I will ask Damien to look at the issue.

Edit: Damien claims my testing was incorrect.

chx’s picture

Here's a test script

<?php
$p
= new PDO('sqlite:x');
for (
$i = 0; $i< 1e5; $i++) $p->query('INSERT INTO a (a) VALUES (1)');
$stmt = $p->prepare('SELECT * FROM a');
$stmt->execute();
for (
$i = 0; $i< 1e5; $i++) $p->query('INSERT INTO a (a) VALUES (1)');
?>

it ends. I tried many inserts just to try to kick the optimizer out but no success.

babruix’s picture

StatusFileSize
new41.84 KB
PASSED: [[SimpleTest]]: [PHP 5.4 MySQL] 85,126 pass(es).
[ View ]
new0 bytes

Re-rolled.

webchick’s picture

Title:Database tests fail on SQLite» [meta] Database tests fail on SQLite
Issue tags:+Triaged D8 critical
Related issues:+#2267715: [meta] Drupal.org (websites/infra) blockers to a Drupal 8 release, +#697220: Run tests on all supported database servers/engines

We had a branch maintainer call and agreed to keep this critical. Unlike the PostgreSQL issues, we actually need SQLite for various things (e.g. testbot) so we do need to fix this.

However, it'd probably be way easier to make faster progress if the individual issues were split out into finite sub-issues each on one thing. So turning this one into a "meta" issue.

Also adding related infrastructure issues that will help ensure we don't keep introducing these regressions in the future.

Cottser’s picture

Assigned:sun» Unassigned
daffie’s picture

Created #2427311: SQLite does not natively support CONCAT_WS() a sub-issue for CONCAT_WS.

daffie’s picture

amateescu’s picture

Let's mark the sub-issues major, there's no point in opening a bunch of criticals just because the patch here is too big.

daffie’s picture

Part 4 from the issue summary no longer applies. It is fixed in #2349789: Responsive Image Mappings are not listed with sqlite. If I am wrong please let me know.

daffie’s picture

daffie’s picture

daffie’s picture

daffie’s picture

If you apply the patch from the open sub-issues and you run the command:
php ./scripts/run-tests.sh --dburl sqlite://localhost/sqlite/db.sqlite Database
All the tests passes.

Drupal test run
---------------

Tests to be run:
  - Drupal\system\Tests\Database\AlterTest
  - Drupal\system\Tests\Database\BasicSyntaxTest
  - Drupal\system\Tests\Database\CaseSensitivityTest
  - Drupal\system\Tests\Database\ConnectionTest
  - Drupal\system\Tests\Database\ConnectionUnitTest
  - Drupal\system\Tests\Database\DatabaseExceptionWrapperTest
  - Drupal\system\Tests\Database\DeleteTruncateTest
  - Drupal\system\Tests\Database\FetchTest
  - Drupal\system\Tests\Database\InsertDefaultsTest
  - Drupal\system\Tests\Database\InsertLobTest
  - Drupal\system\Tests\Database\InsertTest
  - Drupal\system\Tests\Database\InvalidDataTest
  - Drupal\system\Tests\Database\LoggingTest
  - Drupal\system\Tests\Database\MergeTest
  - Drupal\system\Tests\Database\NextIdTest
  - Drupal\system\Tests\Database\QueryTest
  - Drupal\system\Tests\Database\RangeQueryTest
  - Drupal\system\Tests\Database\RegressionTest
  - Drupal\system\Tests\Database\SchemaTest
  - Drupal\system\Tests\Database\SelectCloneTest
  - Drupal\system\Tests\Database\SelectComplexTest
  - Drupal\system\Tests\Database\SelectOrderedTest
  - Drupal\system\Tests\Database\SelectPagerDefaultTest
  - Drupal\system\Tests\Database\SelectSubqueryTest
  - Drupal\system\Tests\Database\SelectTableSortDefaultTest
  - Drupal\system\Tests\Database\SelectTest
  - Drupal\system\Tests\Database\SerializeQueryTest
  - Drupal\system\Tests\Database\TaggingTest
  - Drupal\system\Tests\Database\TemporaryQueryTest
  - Drupal\system\Tests\Database\TransactionTest
  - Drupal\system\Tests\Database\UpdateComplexTest
  - Drupal\system\Tests\Database\UpdateLobTest
  - Drupal\system\Tests\Database\UpdateTest

Test run started:
  Wednesday, February 18, 2015 - 12:07

Test summary
------------

Drupal\system\Tests\Database\AlterTest                        34 passes
Drupal\system\Tests\Database\BasicSyntaxTest                  20 passes
Drupal\system\Tests\Database\CaseSensitivityTest               4 passes
Drupal\system\Tests\Database\ConnectionTest                   22 passes
Drupal\system\Tests\Database\ConnectionUnitTest               28 passes
Drupal\system\Tests\Database\DatabaseExceptionWrapperTest      2 passes
Drupal\system\Tests\Database\DeleteTruncateTest               12 passes
Drupal\system\Tests\Database\FetchTest                        41 passes
Drupal\system\Tests\Database\InsertDefaultsTest               10 passes
Drupal\system\Tests\Database\InsertLobTest                     7 passes
Drupal\system\Tests\Database\InsertTest                       30 passes
Drupal\system\Tests\Database\InvalidDataTest                   4 passes
Drupal\system\Tests\Database\LoggingTest                      24 passes
Drupal\system\Tests\Database\MergeTest                        52 passes
Drupal\system\Tests\Database\NextIdTest                        4 passes
Drupal\system\Tests\Database\QueryTest                        15 passes
Drupal\system\Tests\Database\RangeQueryTest                    4 passes
Drupal\system\Tests\Database\RegressionTest                   15 passes
Drupal\system\Tests\Database\SchemaTest                      649 passes
Drupal\system\Tests\Database\SelectCloneTest                   4 passes
Drupal\system\Tests\Database\SelectComplexTest                94 passes
Drupal\system\Tests\Database\SelectOrderedTest                17 passes
Drupal\system\Tests\Database\SelectPagerDefaultTest           22 passes
Drupal\system\Tests\Database\SelectSubqueryTest               19 passes
Drupal\system\Tests\Database\SelectTableSortDefaultTest       30 passes
Drupal\system\Tests\Database\SelectTest                      106 passes
Drupal\system\Tests\Database\SerializeQueryTest                3 passes
Drupal\system\Tests\Database\TaggingTest                      28 passes
Drupal\system\Tests\Database\TemporaryQueryTest                7 passes
Drupal\system\Tests\Database\TransactionTest                  55 passes
Drupal\system\Tests\Database\UpdateComplexTest                35 passes
Drupal\system\Tests\Database\UpdateLobTest                     7 passes
Drupal\system\Tests\Database\UpdateTest                       35 passes

Test run duration: 25 min 28 sec

daffie’s picture

In the patch there is also an update to the run-tests.sh script for adding the SQLite database tests to the script. Is that something we want to add in this issue or move to a followup issue or do not do that at all?

Cottser’s picture

Status:Needs review» Active

Setting to active since it seems the patch on this issue is being chunked out, and usually metas stay at active until resolved.

Edit: Also woah, lots of action on the sub-issues. Thanks @daffie!

dawehner’s picture

Title:[meta] Database tests fail on SQLite» [meta] Tests fail on SQLite

Let's be honest, we should fix all failures, not just the database related ones.