forked from TrueCloudLab/restic
fs: add tests for CommandReader
This commit is contained in:
parent
317144c1d6
commit
8bceb8e359
1 changed files with 48 additions and 0 deletions
48
internal/fs/fs_reader_command_test.go
Normal file
48
internal/fs/fs_reader_command_test.go
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
package fs_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"context"
|
||||||
|
"io"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/restic/restic/internal/fs"
|
||||||
|
"github.com/restic/restic/internal/test"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestCommandReaderSuccess(t *testing.T) {
|
||||||
|
reader, err := fs.NewCommandReader(context.TODO(), []string{"true"}, io.Discard)
|
||||||
|
test.OK(t, err)
|
||||||
|
|
||||||
|
_, err = io.Copy(io.Discard, reader)
|
||||||
|
test.OK(t, err)
|
||||||
|
|
||||||
|
test.OK(t, reader.Close())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCommandReaderFail(t *testing.T) {
|
||||||
|
reader, err := fs.NewCommandReader(context.TODO(), []string{"false"}, io.Discard)
|
||||||
|
test.OK(t, err)
|
||||||
|
|
||||||
|
_, err = io.Copy(io.Discard, reader)
|
||||||
|
test.Assert(t, err != nil, "missing error")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCommandReaderInvalid(t *testing.T) {
|
||||||
|
_, err := fs.NewCommandReader(context.TODO(), []string{"w54fy098hj7fy5twijouytfrj098y645wr"}, io.Discard)
|
||||||
|
test.Assert(t, err != nil, "missing error")
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestCommandReaderOutput(t *testing.T) {
|
||||||
|
reader, err := fs.NewCommandReader(context.TODO(), []string{"echo", "hello world"}, io.Discard)
|
||||||
|
test.OK(t, err)
|
||||||
|
|
||||||
|
var buf bytes.Buffer
|
||||||
|
|
||||||
|
_, err = io.Copy(&buf, reader)
|
||||||
|
test.OK(t, err)
|
||||||
|
test.OK(t, reader.Close())
|
||||||
|
|
||||||
|
test.Equals(t, "hello world", strings.TrimSpace(buf.String()))
|
||||||
|
}
|
Loading…
Reference in a new issue