snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
This commit is contained in:
107
internal/sqlcdebug/sqlcdebug_test.go
Normal file
107
internal/sqlcdebug/sqlcdebug_test.go
Normal file
@@ -0,0 +1,107 @@
|
||||
package sqlcdebug
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func resetForTest(t *testing.T) {
|
||||
t.Helper()
|
||||
registryMu.Lock()
|
||||
registry = map[string]*Setting{}
|
||||
envMap = nil
|
||||
envOnce = sync.Once{}
|
||||
registryMu.Unlock()
|
||||
}
|
||||
|
||||
func TestParse(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
want map[string]string
|
||||
}{
|
||||
{"", map[string]string{}},
|
||||
{"dumpast=1", map[string]string{"dumpast": "1"}},
|
||||
{"dumpast=1,trace=trace.out", map[string]string{"dumpast": "1", "trace": "trace.out"}},
|
||||
{" dumpast=1 , processplugins=0 ", map[string]string{"dumpast": "1", "processplugins": "0"}},
|
||||
{"trace=", map[string]string{"trace": ""}},
|
||||
{"bare", map[string]string{}},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
got := parse(tt.input)
|
||||
if len(got) != len(tt.want) {
|
||||
t.Errorf("parse(%q): got %v, want %v", tt.input, got, tt.want)
|
||||
continue
|
||||
}
|
||||
for k, v := range tt.want {
|
||||
if got[k] != v {
|
||||
t.Errorf("parse(%q)[%q] = %q, want %q", tt.input, k, got[k], v)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSettingValue(t *testing.T) {
|
||||
resetForTest(t)
|
||||
Update("dumpast=1,trace=foo.out")
|
||||
|
||||
if v := New("dumpast").Value(); v != "1" {
|
||||
t.Errorf("dumpast = %q, want %q", v, "1")
|
||||
}
|
||||
if v := New("trace").Value(); v != "foo.out" {
|
||||
t.Errorf("trace = %q, want %q", v, "foo.out")
|
||||
}
|
||||
if !New("dumpast").IsSet() {
|
||||
t.Errorf("IsSet(dumpast) = false, want true")
|
||||
}
|
||||
|
||||
// Unset key returns its registered default.
|
||||
if v := New("processplugins").Value(); v != "1" {
|
||||
t.Errorf("processplugins default = %q, want %q", v, "1")
|
||||
}
|
||||
if New("processplugins").IsSet() {
|
||||
t.Errorf("IsSet(processplugins) = true, want false")
|
||||
}
|
||||
}
|
||||
|
||||
func TestUpdateRefreshesExistingSettings(t *testing.T) {
|
||||
resetForTest(t)
|
||||
dumpAST := New("dumpast")
|
||||
|
||||
if v := dumpAST.Value(); v != "" {
|
||||
t.Errorf("initial dumpast = %q, want empty", v)
|
||||
}
|
||||
|
||||
Update("dumpast=1")
|
||||
if v := dumpAST.Value(); v != "1" {
|
||||
t.Errorf("after Update dumpast = %q, want %q", v, "1")
|
||||
}
|
||||
|
||||
Update("")
|
||||
if v := dumpAST.Value(); v != "" {
|
||||
t.Errorf("after reset dumpast = %q, want empty", v)
|
||||
}
|
||||
if dumpAST.IsSet() {
|
||||
t.Errorf("after reset IsSet = true, want false")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAny(t *testing.T) {
|
||||
resetForTest(t)
|
||||
if Any() {
|
||||
t.Errorf("Any() = true, want false on empty env")
|
||||
}
|
||||
Update("trace=1")
|
||||
if !Any() {
|
||||
t.Errorf("Any() = false, want true after Update")
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewPanicsOnUnknown(t *testing.T) {
|
||||
resetForTest(t)
|
||||
defer func() {
|
||||
if r := recover(); r == nil {
|
||||
t.Errorf("New(\"bogus\") did not panic")
|
||||
}
|
||||
}()
|
||||
New("bogus")
|
||||
}
|
||||
Reference in New Issue
Block a user