Skip to content

Commit b995937

Browse files
committed
Added check for missing library version/name in args
1 parent 4f10569 commit b995937

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

cli/globals/args.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,14 @@ func ParseLibraryReferenceArg(arg string) (*LibraryReferenceArg, error) {
9494
ret := &LibraryReferenceArg{}
9595
// TODO: check library Name constraints
9696
// TODO: check library Version constraints
97+
if tokens[0] == "" {
98+
return nil, fmt.Errorf("invalid empty library name")
99+
}
97100
ret.Name = tokens[0]
98101
if len(tokens) > 1 {
102+
if tokens[1] == "" {
103+
return nil, fmt.Errorf("invalid empty library version")
104+
}
99105
ret.Version = tokens[1]
100106
}
101107
return ret, nil

cli/globals/args_test.go

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ var goodLibs = []struct {
4040
}{
4141
{"mylib", &globals.LibraryReferenceArg{"mylib", ""}},
4242
{"[email protected]", &globals.LibraryReferenceArg{"mylib", "1.0"}},
43-
{"mylib@", &globals.LibraryReferenceArg{"mylib", ""}},
4443
}
4544

4645
var badCores = []struct {
@@ -52,6 +51,14 @@ var badCores = []struct {
5251
{"arduino:avr:[email protected]", nil},
5352
}
5453

54+
var badLibs = []struct {
55+
in string
56+
expected *globals.LibraryReferenceArg
57+
}{
58+
{"", nil},
59+
{"mylib@", nil},
60+
}
61+
5562
func TestArgsStringify(t *testing.T) {
5663
for _, lib := range goodLibs {
5764
require.Equal(t, lib.in, lib.expected.String())
@@ -70,19 +77,18 @@ func TestParseReferenceArgCores(t *testing.T) {
7077
assert.NotNil(t, err)
7178
assert.Equal(t, tt.expected, actual)
7279
}
73-
74-
// library refs are not good as core's
75-
for _, tt := range goodLibs {
76-
_, err := globals.ParseReferenceArg(tt.in, true)
77-
assert.NotNil(t, err)
78-
}
7980
}
8081

8182
func TestParseReferenceArgLibs(t *testing.T) {
8283
for _, tt := range goodLibs {
8384
actual, err := globals.ParseLibraryReferenceArg(tt.in)
84-
assert.Nil(t, err)
85-
assert.Equal(t, tt.expected, actual)
85+
assert.Nil(t, err, "Testing good arg '%s'", tt.in)
86+
assert.Equal(t, tt.expected, actual, "Testing good arg '%s'", tt.in)
87+
}
88+
for _, tt := range badLibs {
89+
res, err := globals.ParseLibraryReferenceArg(tt.in)
90+
require.Nil(t, res, "Testing bad arg '%s'", tt.in)
91+
require.NotNil(t, err, "Testing bad arg '%s'", tt.in)
8692
}
8793
}
8894

0 commit comments

Comments
 (0)