test: add C-style comments test case to sqlparser test (#555)

pull/559/head
Michael Fridman 2023-07-05 08:58:42 -04:00 committed by GitHub
parent dec87f0abd
commit 843a23d4ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 93 additions and 23 deletions

View File

@ -1,5 +1,13 @@
GO_TEST_FLAGS ?= -race -count=1 -v -timeout=10m
# These are the default values for the test database. They can be overridden
DB_USER ?= dbuser
DB_PASSWORD ?= password1
DB_NAME ?= testdb
DB_POSTGRES_PORT ?= 5433
DB_MYSQL_PORT ?= 3307
DB_CLICKHOUSE_PORT ?= 9001
.PHONY: dist
dist:
@mkdir -p ./bin
@ -42,11 +50,31 @@ test-e2e-vertica:
docker-cleanup:
docker stop -t=0 $$(docker ps --filter="label=goose_test" -aq)
docker-start-postgres:
docker-postgres:
docker run --rm -d \
-e POSTGRES_USER=${POSTGRES_DB_USER} \
-e POSTGRES_PASSWORD=${POSTGRES_PASSWORD} \
-e POSTGRES_DB=${POSTGRES_DBNAME} \
-p ${POSTGRES_PORT}:5432 \
-e POSTGRES_USER=$(DB_USER) \
-e POSTGRES_PASSWORD=$(DB_PASSWORD) \
-e POSTGRES_DB=$(DB_NAME) \
-p $(DB_POSTGRES_PORT):5432 \
-l goose_test \
postgres:14-alpine -c log_statement=all
docker-mysql:
docker run --rm -d \
-e MYSQL_ROOT_PASSWORD=rootpassword1 \
-e MYSQL_DATABASE=$(DB_NAME) \
-e MYSQL_USER=$(DB_USER) \
-e MYSQL_PASSWORD=$(DB_PASSWORD) \
-p $(DB_MYSQL_PORT):3306 \
-l goose_test \
mysql:8.0.31
docker-clickhouse:
docker run --rm -d \
-e CLICKHOUSE_DB=$(DB_NAME) \
-e CLICKHOUSE_USER=$(DB_USER) \
-e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \
-e CLICKHOUSE_PASSWORD=$(DB_PASSWORD) \
-p $(DB_CLICKHOUSE_PORT):9000/tcp \
-l goose_test \
clickhouse/clickhouse-server:23-alpine

View File

@ -379,6 +379,7 @@ func TestValidUp(t *testing.T) {
{Name: "test05", StatementsCount: 2},
{Name: "test06", StatementsCount: 5},
{Name: "test07", StatementsCount: 1},
{Name: "test08", StatementsCount: 6},
}
for _, tc := range tests {
path := filepath.Join("testdata", "valid-up", tc.Name)
@ -422,7 +423,7 @@ func compareStatements(t *testing.T, dir string, statements []string) {
by, err := os.ReadFile(goldenFilePath)
check.NoError(t, err)
got, want := strings.TrimSpace(statements[index]), strings.TrimSpace(string(by))
got, want := statements[index], string(by)
if got != want {
if isCIEnvironment() {
@ -433,7 +434,7 @@ func compareStatements(t *testing.T, dir string, statements []string) {
filepath.Join("internal", "sqlparser", goldenFilePath+".FAIL"),
filepath.Join("internal", "sqlparser", goldenFilePath),
)
err := os.WriteFile(goldenFilePath+".FAIL", []byte(got+"\n"), 0644)
err := os.WriteFile(goldenFilePath+".FAIL", []byte(got), 0644)
check.NoError(t, err)
}
}

View File

@ -0,0 +1,5 @@
CREATE TABLE `table_a` (
`column_1` DATETIME DEFAULT NOW(),
`column_2` DATETIME DEFAULT NOW(),
`column_3` DATETIME DEFAULT NOW()
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;

View File

@ -0,0 +1,5 @@
CREATE TABLE `table_b` (
`column_1` DATETIME DEFAULT NOW(),
`column_2` DATETIME DEFAULT NOW(),
`column_3` DATETIME DEFAULT NOW()
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;

View File

@ -0,0 +1,5 @@
CREATE TABLE `table_c` (
`column_1` DATETIME DEFAULT NOW(),
`column_2` DATETIME DEFAULT NOW(),
`column_3` DATETIME DEFAULT NOW()
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;

View File

@ -0,0 +1 @@
/*!80031 ALTER TABLE `table_a` MODIFY `column_1` TEXT NOT NULL */;

View File

@ -0,0 +1 @@
/*!80031 ALTER TABLE `table_b` MODIFY `column_2` TEXT NOT NULL */;

View File

@ -0,0 +1 @@
/*!80033 ALTER TABLE `table_c` MODIFY `column_3` TEXT NOT NULL */;

View File

@ -0,0 +1,23 @@
-- +goose Up
CREATE TABLE `table_a` (
`column_1` DATETIME DEFAULT NOW(),
`column_2` DATETIME DEFAULT NOW(),
`column_3` DATETIME DEFAULT NOW()
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
CREATE TABLE `table_b` (
`column_1` DATETIME DEFAULT NOW(),
`column_2` DATETIME DEFAULT NOW(),
`column_3` DATETIME DEFAULT NOW()
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
CREATE TABLE `table_c` (
`column_1` DATETIME DEFAULT NOW(),
`column_2` DATETIME DEFAULT NOW(),
`column_3` DATETIME DEFAULT NOW()
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
/*!80031 ALTER TABLE `table_a` MODIFY `column_1` TEXT NOT NULL */;
/*!80031 ALTER TABLE `table_b` MODIFY `column_2` TEXT NOT NULL */;
/*!80033 ALTER TABLE `table_c` MODIFY `column_3` TEXT NOT NULL */;