diff options
Diffstat (limited to 'vlog')
| -rw-r--r-- | vlog/vlog_test.go | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/vlog/vlog_test.go b/vlog/vlog_test.go new file mode 100644 index 0000000..9def0f0 --- /dev/null +++ b/vlog/vlog_test.go @@ -0,0 +1,78 @@ +package vlog + +import ( + "bytes" + "fmt" + "os" + "testing" +) + +func captureStdout(f func()) string { + old := os.Stdout + r, w, _ := os.Pipe() + os.Stdout = w + + f() + + w.Close() + os.Stdout = old + + var buf bytes.Buffer + buf.ReadFrom(r) + return buf.String() +} + +func TestPrintfVerbose(t *testing.T) { + VERBOSE = true + defer func() { VERBOSE = false }() + + output := captureStdout(func() { + Printf("hello %s", "world") + }) + expected := fmt.Sprintf("hello %s", "world") + if output != expected { + t.Errorf("expected %q, got %q", expected, output) + } +} + +func TestPrintfSilent(t *testing.T) { + VERBOSE = false + + output := captureStdout(func() { + Printf("hello %s", "world") + }) + if output != "" { + t.Errorf("expected empty output when not verbose, got %q", output) + } +} + +func TestPrintlnVerbose(t *testing.T) { + VERBOSE = true + defer func() { VERBOSE = false }() + + output := captureStdout(func() { + Println("hello", "world") + }) + expected := fmt.Sprintln("hello", "world") + if output != expected { + t.Errorf("expected %q, got %q", expected, output) + } +} + +func TestPrintlnSilent(t *testing.T) { + VERBOSE = false + + output := captureStdout(func() { + Println("hello", "world") + }) + if output != "" { + t.Errorf("expected empty output when not verbose, got %q", output) + } +} + +func TestInit(t *testing.T) { + // init() sets VERBOSE to false + if VERBOSE != false { + t.Error("VERBOSE should default to false") + } +} |
