Skip to content

Commit

Permalink
refactor: Create testutil.OverrideStdin test helper method.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaqx0r committed Apr 22, 2024
1 parent 4bccbb6 commit c21673e
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 25 deletions.
8 changes: 2 additions & 6 deletions internal/tailer/logstream/logstream_unix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,12 @@ import (
func TestReadStdin(t *testing.T) {
ctx := context.Background()
var wg sync.WaitGroup
// Need to pretend Stdin is a fifo for this to pass.
oldStdin := os.Stdin
t.Cleanup(func() { os.Stdin = oldStdin })

tmpDir := testutil.TestTempDir(t)
name := filepath.Join(tmpDir, "fakeStdin")
testutil.FatalIfErr(t, unix.Mkfifo(name, 0o666))
var err error
os.Stdin, err = os.OpenFile(name, os.O_RDWR, os.ModeNamedPipe)
f, err := os.OpenFile(name, os.O_RDWR, os.ModeNamedPipe)
testutil.FatalIfErr(t, err)
testutil.OverrideStdin(t, f)

_, err = New(ctx, &wg, nil, "-", nil, false)
if err != nil {
Expand Down
14 changes: 4 additions & 10 deletions internal/tailer/logstream/pipestream_unix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,16 +153,10 @@ func TestPipeStreamReadStdin(t *testing.T) {

name := filepath.Join(tmpDir, "fakestdin")
testutil.FatalIfErr(t, unix.Mkfifo(name, 0o666))

oldStdin := os.Stdin
t.Cleanup(func() {
os.Stdin = oldStdin
})

var err error
os.Stdin, err = os.OpenFile(name, os.O_RDWR, os.ModeNamedPipe)
f, err := os.OpenFile(name, os.O_RDWR, os.ModeNamedPipe)
testutil.FatalIfErr(t, err)
testutil.WriteString(t, os.Stdin, "content\n")
testutil.OverrideStdin(t, f)
testutil.WriteString(t, f, "content\n")

lines := make(chan *logline.LogLine, 1)
ctx, cancel := context.WithCancel(context.Background())
Expand All @@ -173,7 +167,7 @@ func TestPipeStreamReadStdin(t *testing.T) {

awaken(0)

testutil.FatalIfErr(t, os.Stdin.Close())
testutil.FatalIfErr(t, f.Close())

cancel()

Expand Down
12 changes: 3 additions & 9 deletions internal/tailer/tail_unix_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -75,16 +75,10 @@ func TestAddStdin(t *testing.T) {

name := filepath.Join(ta.tmpDir, "fakestdin")
testutil.FatalIfErr(t, unix.Mkfifo(name, 0o666))

oldStdin := os.Stdin
t.Cleanup(func() {
os.Stdin = oldStdin
})

var err error
os.Stdin, err = os.OpenFile(name, os.O_RDWR, os.ModeNamedPipe)
f, err := os.OpenFile(name, os.O_RDWR, os.ModeNamedPipe)
testutil.FatalIfErr(t, err)
testutil.WriteString(t, os.Stdin, "content\n")
testutil.OverrideStdin(t, f)
testutil.WriteString(t, f, "content\n")

if err := ta.AddPattern("-"); err != nil {
t.Errorf("AddPattern(-) -> %v", err)
Expand Down
17 changes: 17 additions & 0 deletions internal/testutil/stdin.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package testutil

import (
"os"
"testing"
)

// OverrideStdin replaces standard input with another *os.File and restores
// it at the end of the test.
func OverrideStdin(tb testing.TB, fakeStdin *os.File) {
tb.Helper()
oldStdin := os.Stdin
tb.Cleanup(func() {
os.Stdin = oldStdin
})
os.Stdin = fakeStdin
}

0 comments on commit c21673e

Please sign in to comment.