mirror of
https://github.com/dolthub/dolt.git
synced 2026-05-02 19:39:56 -05:00
Fixed a bunch more tests
This commit is contained in:
@@ -1088,6 +1088,7 @@ func processNonBatchableQuery(ctx *sql.Context, se *sqlEngine, query string, sql
|
||||
}
|
||||
|
||||
// DOLT SQL functions like DOLT_COMMIT require an updated repo state to work correctly.
|
||||
// TODO: kill this entire mess
|
||||
if foundDoltSQLFunc {
|
||||
err = updateRepoState(ctx, se)
|
||||
if err != nil {
|
||||
|
||||
@@ -159,7 +159,7 @@ func (q Query) Exec(t *testing.T, dEnv *env.DoltEnv) error {
|
||||
root, err := dEnv.WorkingRoot(context.Background())
|
||||
require.NoError(t, err)
|
||||
sqlDb := dsqle.NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := dsqle.NewTestEngine(context.Background(), sqlDb, root)
|
||||
engine, sqlCtx, err := dsqle.NewTestEngine(t, dEnv, context.Background(), sqlDb, root)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, iter, err := engine.Query(sqlCtx, q.Query)
|
||||
|
||||
@@ -535,7 +535,7 @@ func checkSchema(t *testing.T, r *doltdb.RootValue, tableName string, expectedSc
|
||||
|
||||
func checkRows(t *testing.T, dEnv *env.DoltEnv, root *doltdb.RootValue, tableName string, sch schema.Schema, selectQuery string, expectedRows []row.Row) {
|
||||
sqlDb := dsqle.NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := dsqle.NewTestEngine(context.Background(), sqlDb, root)
|
||||
engine, sqlCtx, err := dsqle.NewTestEngine(t, dEnv, context.Background(), sqlDb, root)
|
||||
require.NoError(t, err)
|
||||
|
||||
s, rowIter, err := engine.Query(sqlCtx, selectQuery)
|
||||
|
||||
@@ -51,17 +51,17 @@ func RunModifyTypeTests(t *testing.T, tests []ModifyTypeTest) {
|
||||
dEnv := dtestutils.CreateTestEnv()
|
||||
root, err := dEnv.WorkingRoot(ctx)
|
||||
require.NoError(t, err)
|
||||
root, err = executeModify(ctx, dEnv, root, fmt.Sprintf("CREATE TABLE test(pk BIGINT PRIMARY KEY, v1 %s);", test.FromType))
|
||||
root, err = executeModify(t, ctx, dEnv, root, fmt.Sprintf("CREATE TABLE test(pk BIGINT PRIMARY KEY, v1 %s);", test.FromType))
|
||||
require.NoError(t, err)
|
||||
root, err = executeModify(ctx, dEnv, root, fmt.Sprintf("INSERT INTO test VALUES %s;", test.InsertValues))
|
||||
root, err = executeModify(t, ctx, dEnv, root, fmt.Sprintf("INSERT INTO test VALUES %s;", test.InsertValues))
|
||||
require.NoError(t, err)
|
||||
root, err = executeModify(ctx, dEnv, root, fmt.Sprintf("ALTER TABLE test MODIFY v1 %s;", test.ToType))
|
||||
root, err = executeModify(t, ctx, dEnv, root, fmt.Sprintf("ALTER TABLE test MODIFY v1 %s;", test.ToType))
|
||||
if test.ExpectedErr {
|
||||
assert.Error(t, err)
|
||||
return
|
||||
}
|
||||
require.NoError(t, err)
|
||||
res, err := executeSelect(ctx, dEnv, root, "SELECT v1 FROM test ORDER BY pk;")
|
||||
res, err := executeSelect(t, ctx, dEnv, root, "SELECT v1 FROM test ORDER BY pk;")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, test.SelectRes, res)
|
||||
})
|
||||
@@ -113,10 +113,10 @@ func parseTime(timestampLayout bool, value string) time.Time {
|
||||
return t.UTC()
|
||||
}
|
||||
|
||||
func executeSelect(ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValue, query string) ([]interface{}, error) {
|
||||
func executeSelect(t *testing.T, ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValue, query string) ([]interface{}, error) {
|
||||
var err error
|
||||
db := sqle.NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := sqle.NewTestEngine(ctx, db, root)
|
||||
engine, sqlCtx, err := sqle.NewTestEngine(t, dEnv, ctx, db, root)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -142,9 +142,9 @@ func executeSelect(ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValu
|
||||
return vals, nil
|
||||
}
|
||||
|
||||
func executeModify(ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValue, query string) (*doltdb.RootValue, error) {
|
||||
func executeModify(t *testing.T, ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValue, query string) (*doltdb.RootValue, error) {
|
||||
db := sqle.NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := sqle.NewTestEngine(ctx, db, root)
|
||||
engine, sqlCtx, err := sqle.NewTestEngine(t, dEnv, ctx, db, root)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -40,10 +40,10 @@ type SetupFn func(t *testing.T, dEnv *env.DoltEnv)
|
||||
|
||||
// Runs the query given and returns the result. The schema result of the query's execution is currently ignored, and
|
||||
// the targetSchema given is used to prepare all rows.
|
||||
func executeSelect(ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValue, query string) ([]sql.Row, sql.Schema, error) {
|
||||
func executeSelect(t *testing.T, ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValue, query string) ([]sql.Row, sql.Schema, error) {
|
||||
var err error
|
||||
db := NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := NewTestEngine(ctx, db, root)
|
||||
engine, sqlCtx, err := NewTestEngine(t, dEnv, ctx, db, root)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
@@ -67,9 +67,9 @@ func executeSelect(ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValu
|
||||
}
|
||||
|
||||
// Runs the query given and returns the error (if any).
|
||||
func executeModify(ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValue, query string) (*doltdb.RootValue, error) {
|
||||
func executeModify(t *testing.T, ctx context.Context, dEnv *env.DoltEnv, root *doltdb.RootValue, query string) (*doltdb.RootValue, error) {
|
||||
db := NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := NewTestEngine(ctx, db, root)
|
||||
engine, sqlCtx, err := NewTestEngine(t, dEnv, ctx, db, root)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -18,6 +18,7 @@ import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/dolthub/dolt/go/libraries/doltcore/sqle"
|
||||
"github.com/dolthub/go-mysql-server/enginetest"
|
||||
"github.com/dolthub/go-mysql-server/sql"
|
||||
"github.com/stretchr/testify/require"
|
||||
@@ -134,7 +135,8 @@ func TestDoltTransactionCommitOneClient(t *testing.T) {
|
||||
},
|
||||
},
|
||||
})
|
||||
db := harness.databases[0].GetDoltDB()
|
||||
|
||||
db := harness.databases[0].Db.(sqle.Database).GetDoltDB()
|
||||
cs, err := doltdb.NewCommitSpec("HEAD")
|
||||
require.NoError(t, err)
|
||||
headRefs, err := db.GetHeadRefs(context.Background())
|
||||
@@ -251,7 +253,7 @@ func TestDoltTransactionCommitTwoClients(t *testing.T) {
|
||||
},
|
||||
},
|
||||
})
|
||||
db := harness.databases[0].GetDoltDB()
|
||||
db := harness.databases[0].Db.(sqle.Database).GetDoltDB()
|
||||
cs, err := doltdb.NewCommitSpec("HEAD")
|
||||
require.NoError(t, err)
|
||||
headRefs, err := db.GetHeadRefs(context.Background())
|
||||
@@ -314,7 +316,7 @@ func TestDoltTransactionCommitAutocommit(t *testing.T) {
|
||||
},
|
||||
},
|
||||
})
|
||||
db := harness.databases[0].GetDoltDB()
|
||||
db := harness.databases[0].Db.(sqle.Database).GetDoltDB()
|
||||
cs, err := doltdb.NewCommitSpec("HEAD")
|
||||
require.NoError(t, err)
|
||||
headRefs, err := db.GetHeadRefs(context.Background())
|
||||
|
||||
@@ -38,7 +38,7 @@ func setupMergeableIndexes(t *testing.T, tableName, insertQuery string) (*sqle.E
|
||||
root, err := dEnv.WorkingRoot(context.Background())
|
||||
require.NoError(t, err)
|
||||
db := NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := NewTestEngine(context.Background(), db, root)
|
||||
engine, sqlCtx, err := NewTestEngine(t, dEnv, context.Background(), db, root)
|
||||
require.NoError(t, err)
|
||||
|
||||
_, iter, err := engine.Query(sqlCtx, fmt.Sprintf(`CREATE TABLE %s (
|
||||
|
||||
@@ -19,8 +19,6 @@ import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/dolthub/dolt/go/libraries/doltcore/env"
|
||||
"github.com/dolthub/dolt/go/libraries/doltcore/ref"
|
||||
"github.com/dolthub/go-mysql-server/sql"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
@@ -64,7 +64,7 @@ func TestSqlBatchInserts(t *testing.T) {
|
||||
root, _ := dEnv.WorkingRoot(ctx)
|
||||
|
||||
db := NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := NewTestEngine(ctx, db, root)
|
||||
engine, sqlCtx, err := NewTestEngine(t, dEnv, ctx, db, root)
|
||||
require.NoError(t, err)
|
||||
DSessFromSess(sqlCtx.Session).EnableBatchedMode()
|
||||
|
||||
@@ -153,7 +153,7 @@ func TestSqlBatchInsertIgnoreReplace(t *testing.T) {
|
||||
root, _ := dEnv.WorkingRoot(ctx)
|
||||
|
||||
db := NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := NewTestEngine(ctx, db, root)
|
||||
engine, sqlCtx, err := NewTestEngine(t, dEnv, ctx, db, root)
|
||||
require.NoError(t, err)
|
||||
DSessFromSess(sqlCtx.Session).EnableBatchedMode()
|
||||
|
||||
@@ -192,7 +192,7 @@ func TestSqlBatchInsertErrors(t *testing.T) {
|
||||
root, _ := dEnv.WorkingRoot(ctx)
|
||||
|
||||
db := NewDatabase("dolt", dEnv.DbData())
|
||||
engine, sqlCtx, err := NewTestEngine(ctx, db, root)
|
||||
engine, sqlCtx, err := NewTestEngine(t, dEnv, ctx, db, root)
|
||||
require.NoError(t, err)
|
||||
DSessFromSess(sqlCtx.Session).EnableBatchedMode()
|
||||
|
||||
|
||||
@@ -241,7 +241,7 @@ func testDeleteQuery(t *testing.T, test DeleteTest) {
|
||||
|
||||
var err error
|
||||
root, _ := dEnv.WorkingRoot(context.Background())
|
||||
root, err = executeModify(context.Background(), dEnv, root, test.DeleteQuery)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, test.DeleteQuery)
|
||||
if len(test.ExpectedErr) > 0 {
|
||||
require.Error(t, err)
|
||||
return
|
||||
@@ -249,7 +249,7 @@ func testDeleteQuery(t *testing.T, test DeleteTest) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
actualRows, sch, err := executeSelect(context.Background(), dEnv, root, test.SelectQuery)
|
||||
actualRows, sch, err := executeSelect(t, context.Background(), dEnv, root, test.SelectQuery)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, test.ExpectedRows, actualRows)
|
||||
|
||||
@@ -481,7 +481,7 @@ func testInsertQuery(t *testing.T, test InsertTest) {
|
||||
|
||||
var err error
|
||||
root, _ := dEnv.WorkingRoot(context.Background())
|
||||
root, err = executeModify(context.Background(), dEnv, root, test.InsertQuery)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, test.InsertQuery)
|
||||
if len(test.ExpectedErr) > 0 {
|
||||
require.Error(t, err)
|
||||
return
|
||||
@@ -489,7 +489,7 @@ func testInsertQuery(t *testing.T, test InsertTest) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
actualRows, sch, err := executeSelect(context.Background(), dEnv, root, test.SelectQuery)
|
||||
actualRows, sch, err := executeSelect(t, context.Background(), dEnv, root, test.SelectQuery)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, test.ExpectedRows, actualRows)
|
||||
|
||||
@@ -315,7 +315,7 @@ func testReplaceQuery(t *testing.T, test ReplaceTest) {
|
||||
|
||||
var err error
|
||||
root, _ := dEnv.WorkingRoot(context.Background())
|
||||
root, err = executeModify(context.Background(), dEnv, root, test.ReplaceQuery)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, test.ReplaceQuery)
|
||||
if len(test.ExpectedErr) > 0 {
|
||||
require.Error(t, err)
|
||||
return
|
||||
@@ -323,7 +323,7 @@ func testReplaceQuery(t *testing.T, test ReplaceTest) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
actualRows, sch, err := executeSelect(context.Background(), dEnv, root, test.SelectQuery)
|
||||
actualRows, sch, err := executeSelect(t, context.Background(), dEnv, root, test.SelectQuery)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, test.ExpectedRows, actualRows)
|
||||
|
||||
@@ -1544,7 +1544,7 @@ func testSelectQuery(t *testing.T, test SelectTest) {
|
||||
}
|
||||
|
||||
root, _ := dEnv.WorkingRoot(context.Background())
|
||||
actualRows, sch, err := executeSelect(context.Background(), dEnv, root, test.Query)
|
||||
actualRows, sch, err := executeSelect(t, context.Background(), dEnv, root, test.Query)
|
||||
if len(test.ExpectedErr) > 0 {
|
||||
require.Error(t, err)
|
||||
// Too much work to synchronize error messages between the two implementations, so for now we'll just assert that an error occurred.
|
||||
@@ -1602,7 +1602,7 @@ func testSelectDiffQuery(t *testing.T, test SelectTest) {
|
||||
err = dEnv.UpdateWorkingRoot(ctx, root)
|
||||
require.NoError(t, err)
|
||||
|
||||
actualRows, sch, err := executeSelect(ctx, dEnv, root, test.Query)
|
||||
actualRows, sch, err := executeSelect(t, ctx, dEnv, root, test.Query)
|
||||
if len(test.ExpectedErr) > 0 {
|
||||
require.Error(t, err)
|
||||
return
|
||||
|
||||
@@ -439,7 +439,7 @@ func testUpdateQuery(t *testing.T, test UpdateTest) {
|
||||
|
||||
var err error
|
||||
root, _ := dEnv.WorkingRoot(context.Background())
|
||||
root, err = executeModify(context.Background(), dEnv, root, test.UpdateQuery)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, test.UpdateQuery)
|
||||
if len(test.ExpectedErr) > 0 {
|
||||
require.Error(t, err)
|
||||
return
|
||||
@@ -447,7 +447,7 @@ func testUpdateQuery(t *testing.T, test UpdateTest) {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
actualRows, sch, err := executeSelect(context.Background(), dEnv, root, test.SelectQuery)
|
||||
actualRows, sch, err := executeSelect(t, context.Background(), dEnv, root, test.SelectQuery)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, test.ExpectedRows, actualRows)
|
||||
|
||||
@@ -165,7 +165,7 @@ ALTER TABLE three ADD FOREIGN KEY (v1, v2) REFERENCES two(v1, v2) ON DELETE CASC
|
||||
root := testRoot
|
||||
for _, sqlStatement := range strings.Split(test.sqlStatement, ";") {
|
||||
var err error
|
||||
root, err = executeModify(context.Background(), dEnv, root, sqlStatement)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, sqlStatement)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ ALTER TABLE two ADD FOREIGN KEY (v1) REFERENCES one(v1) ON DELETE SET NULL ON UP
|
||||
root := testRoot
|
||||
for _, sqlStatement := range strings.Split(test.sqlStatement, ";") {
|
||||
var err error
|
||||
root, err = executeModify(context.Background(), dEnv, root, sqlStatement)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, sqlStatement)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
@@ -296,14 +296,14 @@ func TestTableEditorForeignKeyRestrict(t *testing.T) {
|
||||
root := testRoot
|
||||
for _, sqlStatement := range strings.Split(test.setup, ";") {
|
||||
var err error
|
||||
root, err = executeModify(context.Background(), dEnv, root, sqlStatement)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, sqlStatement)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
if test.expectedErr {
|
||||
root, err = executeModify(context.Background(), dEnv, root, test.trigger)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, test.trigger)
|
||||
assert.Error(t, err)
|
||||
} else {
|
||||
root, err = executeModify(context.Background(), dEnv, root, test.trigger)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, test.trigger)
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
})
|
||||
@@ -367,10 +367,10 @@ ALTER TABLE three ADD FOREIGN KEY (v1, v2) REFERENCES two(v1, v2) ON DELETE CASC
|
||||
root := testRoot
|
||||
for _, sqlStatement := range strings.Split(test.setup, ";") {
|
||||
var err error
|
||||
root, err = executeModify(context.Background(), dEnv, root, sqlStatement)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, sqlStatement)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
root, err = executeModify(context.Background(), dEnv, root, test.trigger)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, test.trigger)
|
||||
assert.Error(t, err)
|
||||
})
|
||||
}
|
||||
@@ -435,7 +435,7 @@ func TestTableEditorSelfReferentialForeignKeyRestrict(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, test := range sequentialTests {
|
||||
newRoot, err := executeModify(ctx, dEnv, root, test.statement)
|
||||
newRoot, err := executeModify(t, ctx, dEnv, root, test.statement)
|
||||
if test.expectedErr {
|
||||
require.Error(t, err)
|
||||
continue
|
||||
@@ -535,7 +535,7 @@ func TestTableEditorSelfReferentialForeignKeyCascade(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, test := range sequentialTests {
|
||||
newRoot, err := executeModify(ctx, dEnv, root, test.statement)
|
||||
newRoot, err := executeModify(t, ctx, dEnv, root, test.statement)
|
||||
if test.expectedErr {
|
||||
require.Error(t, err)
|
||||
continue
|
||||
@@ -635,7 +635,7 @@ func TestTableEditorSelfReferentialForeignKeySetNull(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, test := range sequentialTests {
|
||||
newRoot, err := executeModify(ctx, dEnv, root, test.statement)
|
||||
newRoot, err := executeModify(t, ctx, dEnv, root, test.statement)
|
||||
if test.expectedErr {
|
||||
require.Error(t, err)
|
||||
continue
|
||||
|
||||
@@ -124,7 +124,7 @@ UPDATE onepk SET pk1 = v1 + pk1 ORDER BY pk1 DESC;
|
||||
root := initialRoot
|
||||
for _, sqlStatement := range strings.Split(test.sqlStatement, ";") {
|
||||
var err error
|
||||
root, err = executeModify(context.Background(), dEnv, root, sqlStatement)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, sqlStatement)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
@@ -282,7 +282,7 @@ UPDATE oneuni SET v1 = v1 + pk1;
|
||||
root := initialRoot
|
||||
var err error
|
||||
for _, sqlStatement := range strings.Split(test.sqlStatement, ";") {
|
||||
root, err = executeModify(context.Background(), dEnv, root, sqlStatement)
|
||||
root, err = executeModify(t, context.Background(), dEnv, root, sqlStatement)
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ func TestTableEditor(t *testing.T) {
|
||||
root, err = db.GetRoot(ctx)
|
||||
require.NoError(t, err)
|
||||
|
||||
actualRows, _, err := executeSelect(context.Background(), dEnv, root, test.selectQuery)
|
||||
actualRows, _, err := executeSelect(t, context.Background(), dEnv, root, test.selectQuery)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, test.expectedRows, actualRows)
|
||||
|
||||
@@ -47,7 +47,7 @@ func TestViews(t *testing.T) {
|
||||
{int64(3)},
|
||||
{int64(4)},
|
||||
}
|
||||
rows, _, err := executeSelect(context.Background(), dEnv, root, "select * from plus1")
|
||||
rows, _, err := executeSelect(t, context.Background(), dEnv, root, "select * from plus1")
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expectedRows, rows)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user