mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-06-14 10:29:52 +08:00
- 修复 TDengine 历史驱动源码构建未按所选版本切换依赖的问题 - 为 DESCRIBE 与 SHOW CREATE 增加旧版本语法降级,避免表详情加载报错 - 为表概览补充 TDengine 专用查询分支,避免误查 information_schema - 补充 TDengine 兼容性与驱动构建回归测试 Refs #531
76 lines
2.1 KiB
Go
76 lines
2.1 KiB
Go
package app
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestRewriteRequiredModuleVersionUpdatesTDengineDriver(t *testing.T) {
|
|
input := []byte(`module example
|
|
|
|
go 1.24.3
|
|
|
|
require (
|
|
github.com/taosdata/driver-go/v3 v3.7.8
|
|
github.com/go-sql-driver/mysql v1.9.3
|
|
)
|
|
`)
|
|
|
|
got, changed, err := rewriteRequiredModuleVersion(input, "github.com/taosdata/driver-go/v3", "3.3.1")
|
|
if err != nil {
|
|
t.Fatalf("rewriteRequiredModuleVersion returned error: %v", err)
|
|
}
|
|
if !changed {
|
|
t.Fatal("expected TDengine module version to be rewritten")
|
|
}
|
|
text := string(got)
|
|
if !strings.Contains(text, "github.com/taosdata/driver-go/v3 v3.3.1") {
|
|
t.Fatalf("expected rewritten go.mod to contain TDengine 3.3.1, got:\n%s", text)
|
|
}
|
|
if !strings.Contains(text, "github.com/go-sql-driver/mysql v1.9.3") {
|
|
t.Fatalf("expected unrelated dependencies to remain unchanged, got:\n%s", text)
|
|
}
|
|
}
|
|
|
|
func TestPrepareOptionalDriverBuildModOverrideCreatesVersionedModFileForTDengine(t *testing.T) {
|
|
projectRoot := t.TempDir()
|
|
goMod := `module example
|
|
|
|
go 1.24.3
|
|
|
|
require (
|
|
github.com/taosdata/driver-go/v3 v3.7.8
|
|
)
|
|
`
|
|
if err := os.WriteFile(filepath.Join(projectRoot, "go.mod"), []byte(goMod), 0o644); err != nil {
|
|
t.Fatalf("write go.mod: %v", err)
|
|
}
|
|
if err := os.WriteFile(filepath.Join(projectRoot, "go.sum"), []byte("placeholder"), 0o644); err != nil {
|
|
t.Fatalf("write go.sum: %v", err)
|
|
}
|
|
|
|
override, err := prepareOptionalDriverBuildModOverride(projectRoot, "tdengine", "3.3.1")
|
|
if err != nil {
|
|
t.Fatalf("prepareOptionalDriverBuildModOverride returned error: %v", err)
|
|
}
|
|
if override == nil {
|
|
t.Fatal("expected TDengine versioned build to create a mod override")
|
|
}
|
|
|
|
modBytes, err := os.ReadFile(override.modFile)
|
|
if err != nil {
|
|
t.Fatalf("read override mod file: %v", err)
|
|
}
|
|
if !strings.Contains(string(modBytes), "github.com/taosdata/driver-go/v3 v3.3.1") {
|
|
t.Fatalf("override mod file did not pin TDengine 3.3.1:\n%s", string(modBytes))
|
|
}
|
|
|
|
overrideDir := filepath.Dir(override.modFile)
|
|
override.cleanup()
|
|
if _, statErr := os.Stat(overrideDir); !os.IsNotExist(statErr) {
|
|
t.Fatalf("expected cleanup to remove override dir, statErr=%v", statErr)
|
|
}
|
|
}
|