2020-07-01 13:41:38 +00:00
|
|
|
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()
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2020-07-01 13:53:34 +00:00
|
|
|
// HandleDefaultRole handles a role by running its default behaviour.
|
|
|
|
//
|
|
|
|
// This function is suitable to forward to when a test case doesn't need to
|
|
|
|
// explicitly handle/alter a role.
|
|
|
|
func HandleDefaultRole(t *TestEnvironment) error {
|
2020-07-01 13:41:38 +00:00
|
|
|
f, ok := DefaultRoles[t.Role]
|
|
|
|
if !ok {
|
|
|
|
panic(fmt.Sprintf("unrecognized role: %s", t.Role))
|
|
|
|
}
|
|
|
|
return f(t)
|
|
|
|
}
|