From de62fb0fd6a3503799a5bcfa284c8a5f38d48841 Mon Sep 17 00:00:00 2001 From: Nick Tobey Date: Tue, 16 Apr 2024 13:49:11 -0700 Subject: [PATCH] Added Skip flag to WriteQueryTest --- enginetest/enginetests.go | 21 +++++++++++++-------- enginetest/evaluation.go | 8 ++++++++ enginetest/queries/insert_queries.go | 4 ++-- enginetest/queries/queries.go | 7 +++---- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/enginetest/enginetests.go b/enginetest/enginetests.go index 763a22cddb..9c06173405 100644 --- a/enginetest/enginetests.go +++ b/enginetest/enginetests.go @@ -27,14 +27,6 @@ import ( "testing" "time" - "github.com/dolthub/vitess/go/sqltypes" - "github.com/dolthub/vitess/go/vt/proto/query" - _ "github.com/go-sql-driver/mysql" - "github.com/gocraft/dbr/v2" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - "gopkg.in/src-d/go-errors.v1" - sqle "github.com/dolthub/go-mysql-server" "github.com/dolthub/go-mysql-server/enginetest/queries" "github.com/dolthub/go-mysql-server/enginetest/scriptgen/setup" @@ -51,6 +43,11 @@ import ( "github.com/dolthub/go-mysql-server/sql/types" "github.com/dolthub/go-mysql-server/sql/variables" "github.com/dolthub/go-mysql-server/test" + "github.com/dolthub/vitess/go/sqltypes" + "github.com/dolthub/vitess/go/vt/proto/query" + _ "github.com/go-sql-driver/mysql" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) // TestQueries tests a variety of queries against databases and tables provided by the given harness. @@ -367,6 +364,10 @@ func TestReadOnlyDatabases(t *testing.T, harness ReadOnlyDatabaseHarness) { } { for _, tt := range querySet { t.Run(tt.WriteQuery, func(t *testing.T) { + if tt.Skip { + t.Skip() + return + } AssertErrWithBindings(t, engine, harness, tt.WriteQuery, tt.Bindings, analyzererrors.ErrReadOnlyDatabase) }) } @@ -1236,6 +1237,10 @@ func TestDelete(t *testing.T, harness Harness) { t.Run(name+" join", func(t *testing.T) { for _, tt := range queries.DeleteJoinTests { t.Run(tt.WriteQuery, func(t *testing.T) { + if tt.Skip { + t.Skip() + return + } e := mustNewEngine(t, harness) e.EngineAnalyzer().Coster = coster defer e.Close() diff --git a/enginetest/evaluation.go b/enginetest/evaluation.go index 53b2cbbb9e..62be52745d 100644 --- a/enginetest/evaluation.go +++ b/enginetest/evaluation.go @@ -1047,6 +1047,10 @@ func ExtractQueryNode(node sql.Node) sql.Node { // RunWriteQueryTest runs the specified |tt| WriteQueryTest using the specified harness. func RunWriteQueryTest(t *testing.T, harness Harness, tt queries.WriteQueryTest) { t.Run(tt.WriteQuery, func(t *testing.T) { + if tt.Skip { + t.Skip() + return + } e := mustNewEngine(t, harness) defer e.Close() RunWriteQueryTestWithEngine(t, harness, e, tt) @@ -1077,6 +1081,10 @@ func RunWriteQueryTestWithEngine(t *testing.T, harness Harness, e QueryEngine, t func runWriteQueryTestPrepared(t *testing.T, harness Harness, tt queries.WriteQueryTest) { t.Run(tt.WriteQuery, func(t *testing.T) { + if tt.Skip { + t.Skip() + return + } if sh, ok := harness.(SkippingHarness); ok { if sh.SkipQueryTest(tt.WriteQuery) { t.Logf("Skipping query %s", tt.WriteQuery) diff --git a/enginetest/queries/insert_queries.go b/enginetest/queries/insert_queries.go index 8a943d752e..d1475645d5 100644 --- a/enginetest/queries/insert_queries.go +++ b/enginetest/queries/insert_queries.go @@ -476,20 +476,20 @@ var InsertQueries = []WriteQueryTest{ SelectQuery: "SELECT * FROM mytable WHERE i = 1", ExpectedSelect: []sql.Row{{int64(1), "hi"}}, }, - /* Disabled, see https://github.com/dolthub/dolt/issues/7638 { WriteQuery: "INSERT INTO mytable (i,s) values (1, 'hi') AS dt(new_i,new_s) ON DUPLICATE KEY UPDATE s=new_s", ExpectedWriteResult: []sql.Row{{types.NewOkResult(2)}}, SelectQuery: "SELECT * FROM mytable WHERE i = 1", ExpectedSelect: []sql.Row{{int64(1), "hi"}}, + Skip: true, }, { WriteQuery: "INSERT INTO mytable (i,s) values (1, 'hi') AS dt ON DUPLICATE KEY UPDATE mytable.s=dt.s", ExpectedWriteResult: []sql.Row{{types.NewOkResult(2)}}, SelectQuery: "SELECT * FROM mytable WHERE i = 1", ExpectedSelect: []sql.Row{{int64(1), "hir"}}, + Skip: true, }, - */ { WriteQuery: "INSERT INTO mytable (s,i) values ('dup',1) ON DUPLICATE KEY UPDATE s=CONCAT(VALUES(s), 'licate')", ExpectedWriteResult: []sql.Row{{types.NewOkResult(2)}}, diff --git a/enginetest/queries/queries.go b/enginetest/queries/queries.go index 7ed22a0bad..b8aa39b912 100644 --- a/enginetest/queries/queries.go +++ b/enginetest/queries/queries.go @@ -18,15 +18,13 @@ import ( "math" "time" - "github.com/dolthub/vitess/go/sqltypes" - "github.com/dolthub/vitess/go/vt/proto/query" - "gopkg.in/src-d/go-errors.v1" - "github.com/dolthub/go-mysql-server/sql" "github.com/dolthub/go-mysql-server/sql/analyzer/analyzererrors" "github.com/dolthub/go-mysql-server/sql/expression" "github.com/dolthub/go-mysql-server/sql/planbuilder" "github.com/dolthub/go-mysql-server/sql/types" + "github.com/dolthub/vitess/go/sqltypes" + "github.com/dolthub/vitess/go/vt/proto/query" ) type QueryTest struct { @@ -10763,6 +10761,7 @@ type WriteQueryTest struct { SelectQuery string ExpectedSelect []sql.Row Bindings map[string]*query.BindVariable + Skip bool SkipServerEngine bool }