54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package testkit
|
|
|
|
import "fmt"
|
|
|
|
type RoleName = string
|
|
|
|
var DefaultRoles = map[RoleName]func(*TestEnvironment) error{
|
|
"bootstrapper": func(t *TestEnvironment) error {
|
|
b, err := PrepareBootstrapper(t)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return b.RunDefault()
|
|
},
|
|
"miner": func(t *TestEnvironment) error {
|
|
m, err := PrepareMiner(t)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return m.RunDefault()
|
|
},
|
|
"client": func(t *TestEnvironment) error {
|
|
c, err := PrepareClient(t)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return c.RunDefault()
|
|
},
|
|
"drand": func(t *TestEnvironment) error {
|
|
d, err := PrepareDrandInstance(t)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return d.RunDefault()
|
|
},
|
|
"pubsub-tracer": func(t *TestEnvironment) error {
|
|
tr, err := PreparePubsubTracer(t)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return tr.RunDefault()
|
|
},
|
|
}
|
|
|
|
// RunDefaultRole runs a default role, extracted from the `role` RunEnv
|
|
// parameter.
|
|
func RunDefaultRole(t *TestEnvironment) error {
|
|
f, ok := DefaultRoles[t.Role]
|
|
if !ok {
|
|
panic(fmt.Sprintf("unrecognized role: %s", t.Role))
|
|
}
|
|
return f(t)
|
|
}
|