File: fs_reader_command_test.go

package info (click to toggle)
restic 0.18.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 30,824 kB
  • sloc: sh: 3,704; makefile: 50; python: 34
file content (53 lines) | stat: -rw-r--r-- 1,318 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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 TestCommandReaderEmptyArgs(t *testing.T) {
	_, err := fs.NewCommandReader(context.TODO(), []string{}, 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()))
}