Skip to content

Managed PHPUnit ignores MySQL database contract and runs SQLite #1986

Description

@chubes4

Problem

A Homeboy WordPress component declares extensions.wordpress.database_type: mysql, but the WP Codebox managed wordpress.phpunit runtime still boots WordPress's SQLite integration. MySQL/InnoDB-specific integration tests then execute against SQLite and fail for the wrong reason.

The affected tests intentionally require transactional InnoDB and fail closed when that storage guarantee is unavailable. The runtime produced 46 discovered tests, but 32 failed on SQLite schema/transaction behavior despite the component's MySQL contract.

Representative evidence:

/internal/shared/sqlite-database-integration/wp-includes/database/sqlite/class-wp-pdo-mysql-on-sqlite.php
SQLSTATE[HY000]: General error: 1 no such table: _wp_sqlite_mysql_information_schema_tmp_tables

Expected

A managed PHPUnit recipe either:

  • provisions the declared MySQL database backend, or
  • rejects the unsupported database contract before executing tests.

It must not silently substitute SQLite for tests whose declared backend is MySQL.

Environment

  • WP Codebox 0.12.14
  • runtime provider: wp-codebox-runtime-playground
  • WordPress component contract: database_type: mysql
  • failure phase: run_workloads
  • PHP 8.3.31

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions