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
|
// SPDX-License-Identifier: GPL-3.0-or-later
package plan
import (
"strings"
"testing"
"krino/internal/config"
"krino/internal/enumtest"
)
// TestEveryKindIsNamed: every Kind has its own display name and a JSON
// action name, and every config.ActionKind maps onto a Kind. Kind and
// ActionKind are iota blocks from 0, so the i-th constant is the value i.
func TestEveryKindIsNamed(t *testing.T) {
kinds, err := enumtest.Names("step.go", "Kind")
if err != nil {
t.Fatal(err)
}
seen := map[string]bool{}
for i, name := range kinds {
k := Kind(i)
if s := k.String(); strings.HasPrefix(s, "Kind(") || seen[s] {
t.Errorf("%s: String() = %q", name, s)
} else {
seen[s] = true
}
if actionNames[k] == "" {
t.Errorf("%s has no JSON action name", name)
}
}
actions, err := enumtest.Names("../config/dir.go", "ActionKind")
if err != nil {
t.Fatal(err)
}
for i, name := range actions {
func() {
defer func() {
if r := recover(); r != nil {
t.Errorf("config.%s has no plan.Kind: %v", name, r)
}
}()
stepKind(config.ActionKind(i))
}()
}
}
|