-
Notifications
You must be signed in to change notification settings - Fork 107
/
pluginsigner.go
95 lines (77 loc) · 2.34 KB
/
pluginsigner.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
// Package pluginsigner implements the Oasis plugin-signer test scenario.
package pluginsigner
import (
flag "github.com/spf13/pflag"
"github.com/oasisprotocol/oasis-core/go/common/logging"
"github.com/oasisprotocol/oasis-core/go/oasis-test-runner/cmd"
"github.com/oasisprotocol/oasis-core/go/oasis-test-runner/env"
"github.com/oasisprotocol/oasis-core/go/oasis-test-runner/oasis"
"github.com/oasisprotocol/oasis-core/go/oasis-test-runner/scenario"
)
const (
cfgPluginName = "name"
cfgPluginBinary = "binary"
cfgPluginConfig = "config"
)
var pluginSignerParamsDummy = newPluginSignerImpl("")
type pluginSignerImpl struct {
name string
logger *logging.Logger
flags *env.ParameterFlagSet
}
func newPluginSignerImpl(name string) *pluginSignerImpl {
// Empty scenario name is used for registering global parameters only.
fullName := "plugin-signer"
if name != "" {
fullName += "/" + name
}
sc := &pluginSignerImpl{
name: fullName,
logger: logging.GetLogger("scenario/" + fullName),
flags: env.NewParameterFlagSet(fullName, flag.ContinueOnError),
}
sc.flags.String(cfgPluginName, "test-signer-plugin", "plugin name")
sc.flags.String(cfgPluginBinary, "signer-plugin", "plugin binary")
sc.flags.String(cfgPluginConfig, "", "plugin configuration")
return sc
}
func (sc *pluginSignerImpl) Clone() pluginSignerImpl {
return pluginSignerImpl{
name: sc.name,
logger: sc.logger,
flags: sc.flags.Clone(),
}
}
func (sc *pluginSignerImpl) Name() string {
return sc.name
}
func (sc *pluginSignerImpl) Parameters() *env.ParameterFlagSet {
return sc.flags
}
func (sc *pluginSignerImpl) PreInit() error {
return nil
}
func (sc *pluginSignerImpl) Fixture() (*oasis.NetworkFixture, error) {
return nil, nil
}
func (sc *pluginSignerImpl) Network() *oasis.Network {
return nil
}
func (sc *pluginSignerImpl) Init(*env.Env, *oasis.Network) error {
return nil
}
// RegisterScenarios registers all scenarios for remote-signer.
func RegisterScenarios() error {
// Register non-scenario-specific parameters.
cmd.RegisterScenarioParams(pluginSignerParamsDummy.Name(), pluginSignerParamsDummy.Parameters())
// Register default scenarios which are executed, if no test names provided.
for _, s := range []scenario.Scenario{
// Basic plugin signer test case.
Basic,
} {
if err := cmd.Register(s); err != nil {
return err
}
}
return nil
}