-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparse_test.go
More file actions
98 lines (77 loc) · 1.57 KB
/
parse_test.go
File metadata and controls
98 lines (77 loc) · 1.57 KB
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 envparse_test
import (
"errors"
"reflect"
"testing"
"github.com/go-x-pkg/envparse"
)
func TestEnv(t *testing.T) {
tests := []struct {
raw string
wEnv envparse.Env
werr error
}{
{
`foo="bar" myDog=Rex\ The\ Dog mycat="dqwdqwd dwqdqdwq " bar="d12"`,
envparse.Env{
"foo": `bar`,
"myDog": `Rex The Dog`,
"mycat": `dqwdqwd dwqdqdwq `,
"bar": `d12`,
},
nil,
},
{
`LD_LIBRARY_PATH=/usr/lib:/usr/nvidia/cuda/lib64 PATH=/usr/bin`,
envparse.Env{
"LD_LIBRARY_PATH": `/usr/lib:/usr/nvidia/cuda/lib64`,
"PATH": `/usr/bin`,
},
nil,
},
{
`LD_LIBRARY_PATH /usr/lib:/usr/nvidia/cuda/lib64`,
envparse.Env{
"LD_LIBRARY_PATH": `/usr/lib:/usr/nvidia/cuda/lib64`,
},
nil,
},
{
`LD_LIBRARY_PATH`,
nil,
envparse.ErrMustHaveTwoArguments,
},
{
`LD_LIBRARY_PATH=foo bar buz else ever`,
nil,
envparse.ErrMissingEqualsSign,
},
{
``,
nil,
nil,
},
}
for i, tt := range tests {
func() {
env, err := envparse.Parse(tt.raw)
if !errors.Is(err, tt.werr) {
t.Errorf("#%d: err = %v, want %v", i, err, tt.werr)
}
if eq := reflect.DeepEqual(env, tt.wEnv); !eq {
t.Errorf("#%d: got = %#v, want %#v", i, env, tt.wEnv)
}
if err == nil {
raw := env.String()
t.Logf("#%d: string: %s\n", i, raw)
envOther, err := envparse.Parse(raw)
if err != nil {
t.Errorf("#%d: err = %v, want %v", i, err, nil)
}
if eq := reflect.DeepEqual(env, envOther); !eq {
t.Errorf("#%d: got = %v, want %v", i, env, envOther)
}
}
}()
}
}