mirror of
https://github.com/dolthub/dolt.git
synced 2026-05-04 19:41:26 -05:00
mv tests to binlogreplication/
This commit is contained in:
@@ -0,0 +1,211 @@
|
||||
// Copyright 2025 Dolthub, Inc.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package binlogreplication_test
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
gms "github.com/dolthub/go-mysql-server"
|
||||
"github.com/dolthub/go-mysql-server/enginetest"
|
||||
"github.com/dolthub/go-mysql-server/enginetest/queries"
|
||||
"github.com/dolthub/go-mysql-server/sql"
|
||||
"github.com/dolthub/go-mysql-server/sql/types"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"github.com/dolthub/dolt/go/libraries/doltcore/sqle/binlogreplication"
|
||||
doltenginetest "github.com/dolthub/dolt/go/libraries/doltcore/sqle/enginetest"
|
||||
)
|
||||
|
||||
var (
|
||||
binlogInsertStmts = parseBinlogTestFile("binlog_insert.txt")
|
||||
binlogUpdateStmts = parseBinlogTestFile("binlog_update.txt")
|
||||
binlogDeleteStmts = parseBinlogTestFile("binlog_delete.txt")
|
||||
binlogFormatDescStmts = parseBinlogTestFile("binlog_format_desc.txt")
|
||||
binlogTransactionMultiOps = parseBinlogTestFile("binlog_transaction_multi_ops.txt")
|
||||
binlogNoFormatDescStmts = parseBinlogTestFile("binlog_no_format_desc.txt")
|
||||
)
|
||||
|
||||
// binlogScripts contains test cases for the BINLOG statement. To add tests: add a @test to binlog_maker.bats, generate
|
||||
// the .txt file with BINLOG statements, then add a test case here with the corresponding setup.
|
||||
var binlogScripts = []queries.ScriptTest{
|
||||
{
|
||||
Name: "SET collation variables with numeric IDs from binlog",
|
||||
Assertions: []queries.ScriptTestAssertion{
|
||||
// TODO: lc_time_names no-op
|
||||
{Query: "SET @@session.lc_time_names=0", Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: "SELECT @@session.lc_time_names", Expected: []sql.Row{{"0"}}},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "BINLOG requires FORMAT_DESCRIPTION_EVENT first",
|
||||
SetUpScript: []string{
|
||||
"CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100))",
|
||||
},
|
||||
Assertions: []queries.ScriptTestAssertion{
|
||||
{Query: binlogNoFormatDescStmts[0], ExpectedErr: sql.ErrNoFormatDescriptionEventBeforeBinlogStatement},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "BINLOG with simple INSERT",
|
||||
SetUpScript: []string{
|
||||
"CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100))",
|
||||
},
|
||||
Assertions: []queries.ScriptTestAssertion{
|
||||
{Query: binlogInsertStmts[0], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogInsertStmts[1], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogInsertStmts[2], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{
|
||||
Query: "SELECT * FROM users ORDER BY id",
|
||||
Expected: []sql.Row{
|
||||
{1, "Alice", "alice@example.com"},
|
||||
{2, "Bob", "bob@example.com"},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "BINLOG with UPDATE",
|
||||
SetUpScript: []string{
|
||||
"CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100))",
|
||||
"INSERT INTO users VALUES (1, 'Alice', 'alice@example.com')",
|
||||
"INSERT INTO users VALUES (2, 'Bob', 'bob@example.com')",
|
||||
},
|
||||
Assertions: []queries.ScriptTestAssertion{
|
||||
{Query: binlogUpdateStmts[0], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogUpdateStmts[1], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{
|
||||
Query: "SELECT name FROM users WHERE id = 1",
|
||||
Expected: []sql.Row{
|
||||
{"Alice Smith"},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "BINLOG with DELETE",
|
||||
SetUpScript: []string{
|
||||
"CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100))",
|
||||
"INSERT INTO users VALUES (1, 'Alice', 'alice@example.com')",
|
||||
"INSERT INTO users VALUES (2, 'Bob', 'bob@example.com')",
|
||||
},
|
||||
Assertions: []queries.ScriptTestAssertion{
|
||||
{Query: binlogDeleteStmts[0], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogDeleteStmts[1], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{
|
||||
Query: "SELECT COUNT(*) FROM users",
|
||||
Expected: []sql.Row{
|
||||
{1},
|
||||
},
|
||||
},
|
||||
{
|
||||
Query: "SELECT id FROM users",
|
||||
Expected: []sql.Row{
|
||||
{1},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "BINLOG with FORMAT_DESCRIPTION only",
|
||||
Assertions: []queries.ScriptTestAssertion{
|
||||
{Query: binlogFormatDescStmts[0], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "BINLOG transaction with multiple INSERT UPDATE DELETE",
|
||||
SetUpScript: []string{
|
||||
"CREATE TABLE multi_op_test (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), value DECIMAL(10,2), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP)",
|
||||
},
|
||||
Assertions: []queries.ScriptTestAssertion{
|
||||
{Query: binlogTransactionMultiOps[0], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogTransactionMultiOps[1], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogTransactionMultiOps[2], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogTransactionMultiOps[3], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogTransactionMultiOps[4], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{Query: binlogTransactionMultiOps[5], Expected: []sql.Row{{types.OkResult{}}}},
|
||||
{
|
||||
Query: "SELECT COUNT(*) FROM multi_op_test",
|
||||
Expected: []sql.Row{
|
||||
{2},
|
||||
},
|
||||
},
|
||||
{
|
||||
Query: "SELECT value FROM multi_op_test WHERE id = 1",
|
||||
Expected: []sql.Row{
|
||||
{"109.99"},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
Name: "BINLOG with invalid base64",
|
||||
Assertions: []queries.ScriptTestAssertion{
|
||||
{
|
||||
Query: "BINLOG 'not-valid-base64!!!'",
|
||||
ExpectedErr: sql.ErrBase64DecodeError,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// parseBinlogTestFile parses BINLOG statements from a testdata file. The file is pre-filtered by binlog_maker.bats to
|
||||
// contain only BINLOG statements.
|
||||
func parseBinlogTestFile(filename string) []string {
|
||||
_, sourceFile, _, _ := runtime.Caller(0)
|
||||
sourceDir := filepath.Dir(sourceFile)
|
||||
|
||||
testdataPath := filepath.Join(sourceDir, "testdata", filename)
|
||||
|
||||
data, err := os.ReadFile(testdataPath)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
content := strings.TrimSpace(string(data))
|
||||
if content == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
parts := strings.Split(content, "BINLOG '")
|
||||
var stmts []string
|
||||
for i, part := range parts {
|
||||
if i == 0 && part == "" {
|
||||
continue
|
||||
}
|
||||
stmts = append(stmts, "BINLOG '"+part)
|
||||
}
|
||||
return stmts
|
||||
}
|
||||
|
||||
// TestBinlog tests the BINLOG statement functionality using the Dolt engine.
|
||||
func TestBinlog(t *testing.T) {
|
||||
harness := doltenginetest.NewDoltEnginetestHarness(t)
|
||||
engine, err := harness.NewEngine(t)
|
||||
require.NoError(t, err)
|
||||
|
||||
binlogConsumer := binlogreplication.DoltBinlogConsumer
|
||||
binlogConsumer.SetEngine(engine.(*gms.Engine))
|
||||
engine.EngineAnalyzer().Catalog.BinlogConsumer = binlogConsumer
|
||||
|
||||
for _, script := range binlogScripts {
|
||||
t.Run(script.Name, func(t *testing.T) {
|
||||
enginetest.TestScript(t, harness, script)
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -63,9 +63,15 @@ type binlogReplicaApplier struct {
|
||||
filters *filterConfiguration
|
||||
engine *gms.Engine
|
||||
|
||||
// TODO: MariaDB stores this state per-connection at thd->rgi_fake->m_table_map.
|
||||
// See https://github.com/MariaDB/server/blob/mariadb-11.4.8/sql/sql_binlog.cc#L270-L271
|
||||
// See https://github.com/MariaDB/server/blob/mariadb-11.4.8/sql/rpl_rli.h#L811
|
||||
// TODO: BINLOG statement state should be per-connection, not global.
|
||||
// Currently, DoltBinlogConsumer is a global singleton shared across all SQL connections,
|
||||
// meaning concurrent BINLOG statements from different connections will corrupt each other's
|
||||
// table map and format state.
|
||||
//
|
||||
// MariaDB solves this with per-thread state: thd->rgi_fake->m_table_map
|
||||
// See: https://github.com/MariaDB/server/blob/mariadb-11.4.8/sql/sql_binlog.cc#L270-L271
|
||||
// This is separate from the replication applier (which IS correctly single-threaded).
|
||||
// Test case: Execute BINLOG statements concurrently from two connections and verify no corruption.
|
||||
format *mysql.BinlogFormat
|
||||
tableMapsById map[uint64]*mysql.TableMap
|
||||
|
||||
|
||||
+2
-1
@@ -12,7 +12,7 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package enginetest
|
||||
package binlogreplication
|
||||
|
||||
import (
|
||||
"os"
|
||||
@@ -201,3 +201,4 @@ func parseBinlogTestFile(filename string) []string {
|
||||
}
|
||||
return stmts
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,12 +1,12 @@
|
||||
BINLOG '
|
||||
duQIaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
MvgKaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
ZwAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
|
||||
CgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgFEz80A
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgHkFQ9g
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
duQIaRMBAAAANgAAAO0BAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAZ21DS1
|
||||
duQIaRkBAAAAOgAAACcCAAAAABIAAAAAAAEAAwf4AgAAAANCb2IPYm9iQGV4YW1wbGUuY29t1lLm
|
||||
VQ==
|
||||
MvgKaRMBAAAANgAAAHwCAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAZndzVD
|
||||
MvgKaRkBAAAAOgAAALYCAAAAABIAAAAAAAEAAwf4AgAAAANCb2IPYm9iQGV4YW1wbGUuY29t9VcE
|
||||
AQ==
|
||||
'/*!*/;
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
BINLOG '
|
||||
duQIaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
MvgKaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
ZwAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
|
||||
CgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgFEz80A
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgHkFQ9g
|
||||
'/*!*/;
|
||||
@@ -0,0 +1,17 @@
|
||||
BINLOG '
|
||||
MfgKaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
ZwAAAAAAAAAAAAAAAAAx+AppEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
|
||||
CgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgHdTczf
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
MvgKaRMBAAAANgAAAE0DAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAYqUfHw
|
||||
MvgKaRcBAAAAPgAAAIsDAAAAABIAAAAAAAEAAwf4AQAAAAVBbGljZRFhbGljZUBleGFtcGxlLmNv
|
||||
beY3d7I=
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
MvgKaRMBAAAANgAAAFcEAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAb/q0rI
|
||||
MvgKaRcBAAAAOgAAAJEEAAAAABIAAAAAAAEAAwf4AgAAAANCb2IPYm9iQGV4YW1wbGUuY29t2z2A
|
||||
QA==
|
||||
'/*!*/;
|
||||
+12
-23
@@ -67,30 +67,23 @@ teardown_file() {
|
||||
fi
|
||||
}
|
||||
|
||||
setup() {
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root -e "CREATE DATABASE IF NOT EXISTS mydb;"
|
||||
}
|
||||
|
||||
extract_binlog_to_file() {
|
||||
local binlog_file="$1"
|
||||
local output_file="$2"
|
||||
local database="${3:-}"
|
||||
|
||||
# Extract only BINLOG statements from mariadb-binlog output
|
||||
# This filters out SET commands, DELIMITER, comments, etc.
|
||||
if [ -n "$database" ]; then
|
||||
mariadb-binlog --database="$database" "$binlog_file" | \
|
||||
awk '/^BINLOG /{flag=1} flag{print} /'\''\/\*!\*\/;$/{flag=0}' > "$output_file"
|
||||
else
|
||||
mariadb-binlog "$binlog_file" | \
|
||||
awk '/^BINLOG /{flag=1} flag{print} /'\''\/\*!\*\/;$/{flag=0}' > "$output_file"
|
||||
fi
|
||||
mariadb-binlog --database="mydb" "$binlog_file" | \
|
||||
awk '/^BINLOG /{flag=1} flag{print} /'\''\/\*!\*\/;$/{flag=0}' > "$output_file"
|
||||
|
||||
[ -f "$output_file" ]
|
||||
[ -s "$output_file" ]
|
||||
}
|
||||
|
||||
@test "binlog_maker: simple INSERT with row events" {
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root <<SQL
|
||||
DROP DATABASE IF EXISTS mydb;
|
||||
CREATE DATABASE mydb;
|
||||
USE mydb;
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root mydb <<SQL
|
||||
CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100));
|
||||
INSERT INTO users VALUES (1, 'Alice', 'alice@example.com');
|
||||
INSERT INTO users VALUES (2, 'Bob', 'bob@example.com');
|
||||
@@ -102,8 +95,7 @@ SQL
|
||||
}
|
||||
|
||||
@test "binlog_maker: UPDATE with row events" {
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root <<SQL
|
||||
USE mydb;
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root mydb <<SQL
|
||||
UPDATE users SET name = 'Alice Smith' WHERE id = 1;
|
||||
SQL
|
||||
|
||||
@@ -113,8 +105,7 @@ SQL
|
||||
}
|
||||
|
||||
@test "binlog_maker: DELETE with row events" {
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root <<SQL
|
||||
USE mydb;
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root mydb <<SQL
|
||||
DELETE FROM users WHERE id = 2;
|
||||
SQL
|
||||
|
||||
@@ -135,8 +126,7 @@ SQL
|
||||
|
||||
@test "binlog_maker: TABLE_MAP without FORMAT_DESCRIPTION (for error test)" {
|
||||
# Create a new operation to get TABLE_MAP
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root <<SQL
|
||||
USE mydb;
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root mydb <<SQL
|
||||
INSERT INTO users VALUES (100, 'Test', 'test@example.com');
|
||||
SQL
|
||||
|
||||
@@ -144,7 +134,7 @@ SQL
|
||||
|
||||
# Extract BINLOG statements but skip the FORMAT_DESCRIPTION to simulate error condition
|
||||
# Skip the first BINLOG statement (FORMAT_DESCRIPTION), keep the rest
|
||||
mariadb-binlog "$MARIADB_BINLOG_DIR/mariadb-bin.000005" | \
|
||||
mariadb-binlog --database=mydb "$MARIADB_BINLOG_DIR/mariadb-bin.000005" | \
|
||||
awk '/^BINLOG /{flag=1} flag{print} /'\''\/\*!\*\/;$/{flag=0}' | \
|
||||
awk 'BEGIN{first=1} /^BINLOG /{if(first){skip=1;first=0}else{skip=0}} !skip{print}' > "$TEST_DIR/binlog_no_format_desc.txt"
|
||||
|
||||
@@ -153,8 +143,7 @@ SQL
|
||||
}
|
||||
|
||||
@test "binlog_maker: transaction with multiple INSERT UPDATE DELETE" {
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root <<SQL
|
||||
USE mydb;
|
||||
mariadb --socket="$MARIADB_SOCKET" -u root mydb <<SQL
|
||||
DROP TABLE IF EXISTS multi_op_test;
|
||||
CREATE TABLE multi_op_test (
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
BINLOG '
|
||||
MvgKaRMBAAAANgAAAJgCAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAZ9BZ4d
|
||||
MvgKaRcBAAAAPAAAANQCAAAAABIAAAAAAAEAAwf4ZAAAAARUZXN0EHRlc3RAZXhhbXBsZS5jb225
|
||||
3zLU
|
||||
'/*!*/;
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
BINLOG '
|
||||
MvgKaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
ZwAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
|
||||
CgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgHkFQ9g
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
MvgKaRMBAAAAQAAAAJ4EAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOwfA6TQ==
|
||||
MvgKaRcBAAAANQAAANMEAAAAABYAAAAAAAEABA/wAQAAAAVJdGVtMYAAAGNjaQr4Mo7phU4=
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
MvgKaRMBAAAAQAAAAGoFAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOBVHCeQ==
|
||||
MvgKaRcBAAAANQAAAJ8FAAAAABYAAAAAAAEABA/wAgAAAAVJdGVtMoAAAJUyaQr4Mtiz1XQ=
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
MvgKaRMBAAAAQAAAADUGAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOIZEfZA==
|
||||
MvgKaRcBAAAANQAAAGoGAAAAABYAAAAAAAEABA/wAwAAAAVJdGVtM4AAAEsZaQr4MlynuVg=
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
MvgKaRMBAAAAQAAAAPsGAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOKRGYYw==
|
||||
MvgKaRgBAAAAcgAAAG0HAAAAABYAAAAAAAEABA8P8AEAAAAFSXRlbTGAAABjY2kK+DLwAQAAAAVJ
|
||||
dGVtMYAAAG1jaQr4MvACAAAABUl0ZW0ygAAAlTJpCvgy8AIAAAAFSXRlbTKAAACkLWkK+DLWpvgi
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
MvgKaRMBAAAAQAAAAOoHAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOyigNVA==
|
||||
MvgKaRkBAAAANQAAAB8IAAAAABYAAAAAAAEABA/wAwAAAAVJdGVtM4AAAEsZaQr4MvJ5Lls=
|
||||
'/*!*/;
|
||||
+5
-5
@@ -1,12 +1,12 @@
|
||||
BINLOG '
|
||||
duQIaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
MvgKaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
ZwAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
|
||||
CgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgFEz80A
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgHkFQ9g
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
duQIaRMBAAAANgAAAC4CAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAY3DTV/
|
||||
duQIaRgBAAAAYgAAAJACAAAAABIAAAAAAAEAAwcH+AEAAAAFQWxpY2URYWxpY2VAZXhhbXBsZS5j
|
||||
b234AQAAAAtBbGljZSBTbWl0aBFhbGljZUBleGFtcGxlLmNvbU4BbNI=
|
||||
MvgKaRMBAAAANgAAAL0CAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAan/UU3
|
||||
MvgKaRgBAAAAYgAAAB8DAAAAABIAAAAAAAEAAwcH+AEAAAAFQWxpY2URYWxpY2VAZXhhbXBsZS5j
|
||||
b234AQAAAAtBbGljZSBTbWl0aBFhbGljZUBleGFtcGxlLmNvbVeVJ0U=
|
||||
'/*!*/;
|
||||
@@ -98,7 +98,7 @@ func TestSingleQuery(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestSchemaOverrides(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunSchemaOverridesTest(t, harness)
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ func TestSchemaOverrides(t *testing.T) {
|
||||
func TestSchemaOverridesWithAdaptiveEncoding(t *testing.T) {
|
||||
defer func() { schema.UseAdaptiveEncoding = false }()
|
||||
schema.UseAdaptiveEncoding = true
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunSchemaOverridesTest(t, harness)
|
||||
}
|
||||
|
||||
@@ -188,7 +188,7 @@ func newUpdateResult(matched, updated int) gmstypes.OkResult {
|
||||
}
|
||||
|
||||
func TestAutoIncrementTrackerLockMode(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunAutoIncrementTrackerLockModeTest(t, harness)
|
||||
}
|
||||
|
||||
@@ -427,7 +427,7 @@ func TestSingleScriptPrepared(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestVersionedQueries(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
defer h.Close()
|
||||
|
||||
RunVersionedQueriesTest(t, h)
|
||||
@@ -444,23 +444,23 @@ func TestAnsiQuotesSqlModePrepared(t *testing.T) {
|
||||
// Tests of choosing the correct execution plan independent of result correctness. Mostly useful for confirming that
|
||||
// the right indexes are being used for joining tables.
|
||||
func TestQueryPlans(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunQueryTestPlans(t, harness)
|
||||
}
|
||||
|
||||
func TestIntegrationQueryPlans(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
defer harness.Close()
|
||||
enginetest.TestIntegrationPlans(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltDiffQueryPlans(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t).WithParallelism(2) // want Exchange nodes
|
||||
harness := NewDoltEnginetestHarness(t).WithParallelism(2) // want Exchange nodes
|
||||
RunDoltDiffQueryPlansTest(t, harness)
|
||||
}
|
||||
|
||||
func TestBranchPlans(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunBranchPlanTests(t, harness)
|
||||
}
|
||||
|
||||
@@ -471,7 +471,7 @@ func TestQueryErrors(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestInfoSchema(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunInfoSchemaTests(t, h)
|
||||
}
|
||||
|
||||
@@ -540,12 +540,12 @@ func TestIgnoreIntoWithDuplicateUniqueKeyKeylessPrepared(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestInsertIntoErrors(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunInsertIntoErrorsTest(t, h)
|
||||
}
|
||||
|
||||
func TestGeneratedColumns(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunGeneratedColumnTests(t, harness)
|
||||
}
|
||||
|
||||
@@ -744,7 +744,7 @@ func TestJoinOps(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestJoinPlanning(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
defer h.Close()
|
||||
enginetest.TestJoinPlanning(t, h)
|
||||
}
|
||||
@@ -822,12 +822,12 @@ func TestRowLimit(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestBranchDdl(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunBranchDdlTest(t, h)
|
||||
}
|
||||
|
||||
func TestBranchDdlPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunBranchDdlTestPrepared(t, h)
|
||||
}
|
||||
|
||||
@@ -940,7 +940,7 @@ func TestAdaptiveEncoding(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDropDatabase(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDropEngineTest(t, h)
|
||||
}
|
||||
|
||||
@@ -963,12 +963,12 @@ func TestForeignKeys(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestForeignKeyBranches(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunForeignKeyBranchesTest(t, h)
|
||||
}
|
||||
|
||||
func TestForeignKeyBranchesPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunForeignKeyBranchesPreparedTest(t, h)
|
||||
}
|
||||
|
||||
@@ -1027,17 +1027,17 @@ func TestViews(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestBranchViews(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunBranchViewsTest(t, h)
|
||||
}
|
||||
|
||||
func TestBranchViewsPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunBranchViewsPreparedTest(t, h)
|
||||
}
|
||||
|
||||
func TestVersionedViews(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunVersionedViewsTest(t, h)
|
||||
}
|
||||
|
||||
@@ -1109,7 +1109,7 @@ func TestAlterTable(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestVariables(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunVariableTest(t, h)
|
||||
}
|
||||
|
||||
@@ -1141,12 +1141,6 @@ func TestLoadDataErrors(t *testing.T) {
|
||||
enginetest.TestLoadDataErrors(t, h)
|
||||
}
|
||||
|
||||
func TestBinlog(t *testing.T) {
|
||||
harness := newDoltHarness(t)
|
||||
defer harness.Close()
|
||||
RunBinlogTests(t, harness)
|
||||
}
|
||||
|
||||
func TestSelectIntoFile(t *testing.T) {
|
||||
h := newDoltHarness(t)
|
||||
defer h.Close()
|
||||
@@ -1176,17 +1170,17 @@ func TestRollbackTriggers(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestStoredProcedures(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunStoredProceduresTest(t, h)
|
||||
}
|
||||
|
||||
func TestDoltStoredProcedures(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltStoredProceduresTest(t, h)
|
||||
}
|
||||
|
||||
func TestDoltStoredProceduresPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltStoredProceduresPreparedTest(t, h)
|
||||
}
|
||||
|
||||
@@ -1197,37 +1191,37 @@ func TestEvents(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCallAsOf(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunCallAsOfTest(t, h)
|
||||
}
|
||||
|
||||
func TestLargeJsonObjects(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunLargeJsonObjectsTest(t, harness)
|
||||
}
|
||||
|
||||
func TestTransactions(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunTransactionTests(t, h, false)
|
||||
}
|
||||
|
||||
func TestTransactionsPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunTransactionTests(t, h, true)
|
||||
}
|
||||
|
||||
func TestBranchTransactions(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunBranchTransactionTest(t, h)
|
||||
}
|
||||
|
||||
func TestMultiDbTransactions(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunMultiDbTransactionsTest(t, h)
|
||||
}
|
||||
|
||||
func TestMultiDbTransactionsPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunMultiDbTransactionsPreparedTest(t, h)
|
||||
}
|
||||
|
||||
@@ -1238,27 +1232,27 @@ func TestConcurrentTransactions(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltScripts(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltScriptsTest(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltTempTableScripts(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltTempTableScripts(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltRevisionDbScripts(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltRevisionDbScriptsTest(t, h)
|
||||
}
|
||||
|
||||
func TestDoltRevisionDbScriptsPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltRevisionDbScriptsPreparedTest(t, h)
|
||||
}
|
||||
|
||||
func TestDoltDdlScripts(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltDdlScripts(t, harness)
|
||||
}
|
||||
|
||||
@@ -1275,12 +1269,12 @@ func TestDescribeTableAsOf(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestShowCreateTable(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunShowCreateTableTests(t, h)
|
||||
}
|
||||
|
||||
func TestShowCreateTablePrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunShowCreateTablePreparedTests(t, h)
|
||||
}
|
||||
|
||||
@@ -1298,17 +1292,17 @@ func TestViewsWithAsOfPrepared(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltMerge(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltMergeTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltMergePrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltMergePreparedTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltRebase(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltRebaseTests(t, h)
|
||||
}
|
||||
|
||||
@@ -1318,49 +1312,49 @@ func TestDoltRebasePrepared(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltRevert(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltRevertTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltRevertPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltRevertPreparedTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltAutoIncrement(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltAutoIncrementTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltAutoIncrementPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltAutoIncrementPreparedTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltConflictsTableNameTable(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltConflictsTableNameTableTests(t, h)
|
||||
}
|
||||
|
||||
// tests new format behavior for keyless merges that create CVs and conflicts
|
||||
func TestKeylessDoltMergeCVsAndConflicts(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunKeylessDoltMergeCVsAndConflictsTests(t, h)
|
||||
}
|
||||
|
||||
// eventually this will be part of TestDoltMerge
|
||||
func TestDoltMergeArtifacts(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltMergeArtifacts(t, h)
|
||||
}
|
||||
|
||||
func TestDoltPreviewMergeConflicts(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltPreviewMergeConflictsTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltPreviewMergeConflictsPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltPreviewMergeConflictsPreparedTests(t, h)
|
||||
}
|
||||
|
||||
@@ -1380,7 +1374,7 @@ func TestOldFormatMergeConflictsAndCVs(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltReset(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltResetTest(t, h)
|
||||
}
|
||||
|
||||
@@ -1396,32 +1390,32 @@ func TestDoltGC(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltCheckout(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltCheckoutTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltCheckoutPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltCheckoutPreparedTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltBranch(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltBranchTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltTag(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltTagTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltRemote(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltRemoteTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltUndrop(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltUndropTests(t, h)
|
||||
}
|
||||
|
||||
@@ -1494,12 +1488,12 @@ func TestBackupsSystemTable(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestHistorySystemTable(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t).WithParallelism(2)
|
||||
harness := NewDoltEnginetestHarness(t).WithParallelism(2)
|
||||
RunHistorySystemTableTests(t, harness)
|
||||
}
|
||||
|
||||
func TestHistorySystemTablePrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t).WithParallelism(2)
|
||||
harness := NewDoltEnginetestHarness(t).WithParallelism(2)
|
||||
RunHistorySystemTableTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
@@ -1517,177 +1511,177 @@ func TestBrokenHistorySystemTablePrepared(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltBranchesSystemTable(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltBranchesSystemTableTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltBranchesSystemTablePrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltBranchesSystemTableTestsPrepared(t, h)
|
||||
}
|
||||
|
||||
func TestUnscopedDiffSystemTable(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunUnscopedDiffSystemTableTests(t, h)
|
||||
}
|
||||
|
||||
func TestUnscopedDiffSystemTablePrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunUnscopedDiffSystemTableTestsPrepared(t, h)
|
||||
}
|
||||
|
||||
func TestColumnDiffSystemTable(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunColumnDiffSystemTableTests(t, h)
|
||||
}
|
||||
|
||||
func TestColumnDiffSystemTablePrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunColumnDiffSystemTableTestsPrepared(t, h)
|
||||
}
|
||||
|
||||
func TestStatBranchTests(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunStatBranchTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDiffTableFunction(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDiffTableFunctionTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDiffTableFunctionPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDiffTableFunctionTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestDiffStatTableFunction(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDiffStatTableFunctionTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDiffStatTableFunctionPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDiffStatTableFunctionTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestDiffSummaryTableFunction(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDiffSummaryTableFunctionTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDiffSummaryTableFunctionPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDiffSummaryTableFunctionTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestPatchTableFunction(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltPatchTableFunctionTests(t, harness)
|
||||
}
|
||||
|
||||
func TestPatchTableFunctionPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltPatchTableFunctionTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestLogTableFunction(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunLogTableFunctionTests(t, harness)
|
||||
}
|
||||
|
||||
func TestLogTableFunctionPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunLogTableFunctionTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestBranchStatusTableFunction(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunBranchStatusTableFunctionTests(t, harness)
|
||||
}
|
||||
|
||||
func TestBranchStatusTableFunctionPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunBranchStatusTableFunctionTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltReflog(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltReflogTests(t, h)
|
||||
}
|
||||
|
||||
func TestDoltReflogPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltReflogTestsPrepared(t, h)
|
||||
}
|
||||
|
||||
func TestCommitDiffSystemTable(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunCommitDiffSystemTableTests(t, harness)
|
||||
}
|
||||
|
||||
func TestCommitDiffSystemTablePrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunCommitDiffSystemTableTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestDiffSystemTable(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltDiffSystemTableTests(t, h)
|
||||
}
|
||||
|
||||
func TestDiffSystemTablePrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltDiffSystemTableTestsPrepared(t, h)
|
||||
}
|
||||
|
||||
func TestNonlocalTable(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunNonlocalTableTests(t, h)
|
||||
}
|
||||
|
||||
func TestNonlocalTablePrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunNonlocalTableTestsPrepared(t, h)
|
||||
}
|
||||
|
||||
func TestSchemaDiffTableFunction(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunSchemaDiffTableFunctionTests(t, harness)
|
||||
}
|
||||
|
||||
func TestSchemaDiffTableFunctionPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunSchemaDiffTableFunctionTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltDatabaseCollationDiffs(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltDatabaseCollationDiffsTests(t, harness)
|
||||
}
|
||||
|
||||
func TestQueryDiff(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunQueryDiffTests(t, harness)
|
||||
}
|
||||
|
||||
func TestSystemTableIndexes(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunSystemTableIndexesTests(t, harness)
|
||||
}
|
||||
|
||||
func TestSystemTableIndexesPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunSystemTableIndexesTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestSystemTableFunctionIndexes(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunSystemTableFunctionIndexesTests(t, harness)
|
||||
}
|
||||
|
||||
func TestSystemTableFunctionIndexesPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunSystemTableFunctionIndexesTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
@@ -1704,7 +1698,7 @@ func TestAddDropPks(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestAddAutoIncrementColumn(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunAddAutoIncrementColumnTests(t, h)
|
||||
}
|
||||
|
||||
@@ -1740,22 +1734,22 @@ func TestTypesOverWire(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltCherryPick(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltCherryPickTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltCherryPickPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltCherryPickTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltCommit(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltCommitTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltCommitPrepared(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltCommitTestsPrepared(t, harness)
|
||||
}
|
||||
|
||||
@@ -1766,19 +1760,19 @@ func TestQueriesPrepared(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestStatsHistograms(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunStatsHistogramTests(t, h)
|
||||
}
|
||||
|
||||
// TestStatsIO force a provider reload in-between setup and assertions that
|
||||
// forces a round trip of the statistics table before inspecting values.
|
||||
func TestStatsStorage(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunStatsStorageTests(t, h)
|
||||
}
|
||||
|
||||
func TestJoinStats(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunJoinStatsTests(t, h)
|
||||
}
|
||||
|
||||
@@ -1797,12 +1791,12 @@ func TestSpatialQueriesPrepared(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestPreparedStatistics(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunPreparedStatisticsTests(t, h)
|
||||
}
|
||||
|
||||
func TestVersionedQueriesPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunVersionedQueriesPreparedTests(t, h)
|
||||
}
|
||||
|
||||
@@ -1892,7 +1886,7 @@ func TestInsertIgnoreScriptsPrepared(t *testing.T) {
|
||||
|
||||
func TestInsertErrorScriptsPrepared(t *testing.T) {
|
||||
skipPreparedTests(t)
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
defer h.Close()
|
||||
h = h.WithSkippedQueries([]string{
|
||||
"create table bad (vb varbinary(65535))",
|
||||
@@ -1973,17 +1967,17 @@ func TestDatabaseCollationWire(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestAddDropPrimaryKeys(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunAddDropPrimaryKeysTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltVerifyConstraints(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltVerifyConstraintsTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltStorageFormat(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
RunDoltStorageFormatTests(t, h)
|
||||
}
|
||||
|
||||
@@ -2000,13 +1994,13 @@ func TestDoltStorageFormatPrepared(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestThreeWayMergeWithSchemaChangeScripts(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
|
||||
RunThreeWayMergeWithSchemaChangeScripts(t, h)
|
||||
}
|
||||
|
||||
func TestThreeWayMergeWithSchemaChangeScriptsPrepared(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
|
||||
RunThreeWayMergeWithSchemaChangeScriptsPrepared(t, h)
|
||||
}
|
||||
@@ -2152,7 +2146,7 @@ func TestStatsAutoRefreshConcurrency(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltWorkspace(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
RunDoltWorkspaceTests(t, harness)
|
||||
}
|
||||
|
||||
@@ -2163,13 +2157,13 @@ func TestDoltHelpSystemTable(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltStash(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
defer harness.Close()
|
||||
RunDoltStashSystemTableTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltRm(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
defer harness.Close()
|
||||
RunDoltRmTests(t, harness)
|
||||
}
|
||||
@@ -2181,19 +2175,19 @@ func TestTimeQueries(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestDoltQueryCatalogSystemTable(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
defer harness.Close()
|
||||
RunDoltQueryCatalogTests(t, harness)
|
||||
}
|
||||
|
||||
func TestDoltTestsSystemTable(t *testing.T) {
|
||||
harness := newDoltEnginetestHarness(t)
|
||||
harness := NewDoltEnginetestHarness(t)
|
||||
defer harness.Close()
|
||||
RunDoltTestsTableTests(t, harness)
|
||||
}
|
||||
|
||||
func TestBranchActivity(t *testing.T) {
|
||||
h := newDoltEnginetestHarness(t)
|
||||
h := NewDoltEnginetestHarness(t)
|
||||
defer h.Close()
|
||||
RunBranchActivityTests(t, h)
|
||||
}
|
||||
|
||||
@@ -22,8 +22,6 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/dolthub/dolt/go/libraries/doltcore/sqle/binlogreplication"
|
||||
gms "github.com/dolthub/go-mysql-server"
|
||||
"github.com/dolthub/go-mysql-server/enginetest"
|
||||
"github.com/dolthub/go-mysql-server/enginetest/queries"
|
||||
"github.com/dolthub/go-mysql-server/enginetest/scriptgen/setup"
|
||||
@@ -2149,17 +2147,3 @@ func RunBranchActivityTests(t *testing.T, harness DoltEnginetestHarness) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func RunBinlogTests(t *testing.T, harness DoltEnginetestHarness) {
|
||||
engine, err := harness.NewEngine(t)
|
||||
require.NoError(t, err)
|
||||
binlogConsumer := binlogreplication.DoltBinlogConsumer
|
||||
binlogConsumer.SetEngine(engine.(*gms.Engine))
|
||||
engine.EngineAnalyzer().Catalog.BinlogConsumer = binlogConsumer
|
||||
|
||||
for _, script := range BinlogScripts {
|
||||
t.Run(script.Name, func(t *testing.T) {
|
||||
enginetest.TestScript(t, harness, script)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ func newDoltHarness(t *testing.T) *DoltHarness {
|
||||
return dh
|
||||
}
|
||||
|
||||
func newDoltEnginetestHarness(t *testing.T) DoltEnginetestHarness {
|
||||
func NewDoltEnginetestHarness(t *testing.T) DoltEnginetestHarness {
|
||||
return newDoltHarness(t)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
BINLOG '
|
||||
deQIaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
ZwAAAAAAAAAAAAAAAAB15AhpEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
|
||||
CgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgHrNTca
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
duQIaRMBAAAANgAAANEDAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAYbZRVQ
|
||||
duQIaRcBAAAAPgAAAA8EAAAAABIAAAAAAAEAAwf4AQAAAAVBbGljZRFhbGljZUBleGFtcGxlLmNv
|
||||
bYF4PKk=
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
duQIaRMBAAAANgAAANsEAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAZzw5IK
|
||||
duQIaRcBAAAAOgAAABUFAAAAABIAAAAAAAEAAwf4AgAAAANCb2IPYm9iQGV4YW1wbGUuY29tAEx8
|
||||
Hw==
|
||||
'/*!*/;
|
||||
@@ -1,5 +0,0 @@
|
||||
BINLOG '
|
||||
d+QIaRMBAAAANgAAAAkCAAAAABIAAAAAAAEABG15ZGIABXVzZXJzAAMDDw8EMgBkAAZjxE4L
|
||||
d+QIaRcBAAAAPAAAAEUCAAAAABIAAAAAAAEAAwf4ZAAAAARUZXN0EHRlc3RAZXhhbXBsZS5jb21i
|
||||
G2QH
|
||||
'/*!*/;
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
BINLOG '
|
||||
d+QIaQ8BAAAA/AAAAAABAAAAAAQAMTAuMTEuMTMtTWFyaWFEQi0wdWJ1bnR1MC4yNC4wNC4xLWxv
|
||||
ZwAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAA5AAEGggAAAAICAgCAAAACgoKAAAAAAAA
|
||||
CgoKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAEEwQADQgICAoKCgE13ZHp
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
d+QIaRMBAAAAQAAAAA8EAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOeYny2Q==
|
||||
d+QIaRcBAAAANQAAAEQEAAAAABYAAAAAAAEABA/wAQAAAAVJdGVtMYAAAGNjaQjkd4F5Dtg=
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
d+QIaRMBAAAAQAAAANsEAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOBOGI0A==
|
||||
d+QIaRcBAAAANQAAABAFAAAAABYAAAAAAAEABA/wAgAAAAVJdGVtMoAAAJUyaQjkd6Xwv3M=
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
d+QIaRMBAAAAQAAAAKYFAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAO5lJ/og==
|
||||
d+QIaRcBAAAANQAAANsFAAAAABYAAAAAAAEABA/wAwAAAAVJdGVtM4AAAEsZaQjkd0880pU=
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
d+QIaRMBAAAAQAAAAGwGAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOjlU3Ww==
|
||||
d+QIaRgBAAAAcgAAAN4GAAAAABYAAAAAAAEABA8P8AEAAAAFSXRlbTGAAABjY2kI5HfwAQAAAAVJ
|
||||
dGVtMYAAAG1jaQjkd/ACAAAABUl0ZW0ygAAAlTJpCOR38AIAAAAFSXRlbTKAAACkLWkI5HfR5l/q
|
||||
'/*!*/;
|
||||
BINLOG '
|
||||
d+QIaRMBAAAAQAAAAFsHAAAAABYAAAAAAAEABG15ZGIADW11bHRpX29wX3Rlc3QABAMP9hEFZAAK
|
||||
AgAOWAOOgg==
|
||||
d+QIaRkBAAAANQAAAJAHAAAAABYAAAAAAAEABA/wAwAAAAVJdGVtM4AAAEsZaQjkdzH2SJU=
|
||||
'/*!*/;
|
||||
@@ -9,5 +9,8 @@ dolt config --global --add user.email mysql-test-runner@liquidata.co
|
||||
echo "Running mysql-client-tests:"
|
||||
bats /build/bin/bats/mysql-client-tests.bats
|
||||
|
||||
# We run mariadb-binlog integration in this suite same as with mysqldump in mysql-client-tests.bats.
|
||||
# However, there's a bit more setup necessary to pipe the output from the dump in a mariadb client, so it's been
|
||||
# separated into a separate bats.
|
||||
echo "Running mariadb-binlog tests:"
|
||||
bats /build/bin/bats/mariadb-binlog.bats
|
||||
|
||||
Reference in New Issue
Block a user