-
Notifications
You must be signed in to change notification settings - Fork 1
/
execer_test.go
98 lines (90 loc) · 1.77 KB
/
execer_test.go
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package execer
import (
"errors"
"strings"
"sync"
"testing"
)
func TestInitEmpty(t *testing.T) {
_, err := Init([]string{})
if err == nil {
t.Error("empty cmd allowed")
}
t.Logf("Logged error: '%v'", err)
}
func TestInit(t *testing.T) {
_, err := Init([]string{"true"})
if err != nil {
t.Error(err)
}
}
func TestStart(t *testing.T) {
e, err := Init([]string{"true"})
if err != nil {
t.Fatal(e.err)
}
if e.err != nil {
t.Fatal(e.err)
}
err = e.Start()
if err != nil {
t.Fatal(err)
}
err = e.Start()
if err == nil {
t.Fatal("Able to start twice")
}
}
func TestStatus(t *testing.T) {
e := Execer{}
e.started = true
if !e.Status().Started {
t.Error("Wrong Started")
}
e.finished = true
if !e.Status().Finished {
t.Error("Wrong Finished")
}
e.stdout = "out"
if e.Status().Stdout != "out" {
t.Error("Wrong Stdout")
}
e.stderr = "err"
if e.Status().Stderr != "err" {
t.Error("Wrong Stdout")
}
err := errors.New("Fake Error")
e.err = err
if e.Status().Error != err {
t.Error("Wrong Error")
}
}
func TestReadTo(t *testing.T) {
text := "This is\nen test\nfür dich!"
text2 := text + "\n"
var s string
readTo(strings.NewReader(text), &s, &sync.Mutex{})
if s != text2 {
t.Errorf("Wrong text. Got '%v', but should be '%v'", s, text2)
}
// reset string
s = ""
readTo(strings.NewReader(text2), &s, &sync.Mutex{})
if s != text2 {
t.Errorf("Wrong text. Got '%v', but should be '%v'", s, text2)
}
}
func TestRunCmd(t *testing.T) {
s := "This is a\n\nmulti line text!\n"
e, err := Init([]string{"./testcmd", "--stderr", "--stdout", "--text", s})
e.runCmd()
if e.err != nil {
t.Error(err)
}
if e.stdout != s+"\n" {
t.Errorf("Wrong stdout. Got '%v'", e.stdout)
}
if e.stderr != s+"\n" {
t.Errorf("Wrong stderr. Got '%v'", e.stderr)
}
}