diff --git a/tests/dbal/write_test.php b/tests/dbal/write_test.php index 6e76e08802..f94aebd85b 100644 --- a/tests/dbal/write_test.php +++ b/tests/dbal/write_test.php @@ -77,6 +77,13 @@ class phpbb_dbal_write_test extends phpbb_database_test_case { $db = $this->new_dbal(); + $is_myisam = false; + if ($db->get_sql_layer() === 'mysqli') + { + $table_status = $db->get_table_status('phpbb_config'); + $is_myisam = isset($table_status['Engine']) && $table_status['Engine'] === 'MyISAM'; + } + $db->sql_transaction('begin'); $sql = "DELETE FROM phpbb_config @@ -92,8 +99,21 @@ class phpbb_dbal_write_test extends phpbb_database_test_case $rows = $db->sql_fetchrowset($result); $db->sql_freeresult($result); - $this->assertEquals(2, count($rows)); - $this->assertEquals('config1', $rows[0]['config_name']); + if (!$is_myisam) + { + $this->assertEquals(2, count($rows)); + $this->assertEquals('config1', $rows[0]['config_name']); + } + else + { + // Rollback does not work on MyISAM + $this->assertEquals(1, count($rows)); + $this->assertEquals('config2', $rows[0]['config_name']); + + // Restore deleted config value on MyISAM + $sql = "INSERT INTO phpbb_config (config_name, config_value, is_dynamic) VALUES ('config1', 'foo', 0)"; + $db->sql_query($sql); + } $db->sql_transaction('begin');