ooni-probe-cli/nettests/psiphon.go
Simone Basso ef4b1aee76
Upgrade to probe-engine@v0.13.0 and fix Psiphon logic (#138)
* go.mod go.sum: pin to ooni/probe-engine@v0.13.0, update all other deps

Make sure dependencies of probe-engine are at the same exact version to
which is probe-engine, to avoid any possible issue.

* Readme.md: clarify the procedure for updating deps
2020-06-15 14:57:00 +02:00

52 lines
1.1 KiB
Go

package nettests
import "github.com/pkg/errors"
// Psiphon test implementation
type Psiphon struct {
}
// Run starts the test
func (h Psiphon) Run(ctl *Controller) error {
builder, err := ctl.Session.NewExperimentBuilder(
"psiphon",
)
if err != nil {
return err
}
return ctl.Run(builder, []string{""})
}
// PsiphonTestKeys contains the test keys
type PsiphonTestKeys struct {
IsAnomaly bool `json:"-"`
BootstrapTime float64 `json:"bootstrap_time"`
Failure string `json:"failure"`
}
// GetTestKeys generates a summary for a test run
func (h Psiphon) GetTestKeys(tk map[string]interface{}) (interface{}, error) {
var (
ok bool
testKeys PsiphonTestKeys
)
if tk["failure"] != nil {
testKeys.IsAnomaly = true
failure, ok := tk["failure"].(*string)
if !ok {
return testKeys, errors.New("failure key invalid")
}
testKeys.Failure = *failure
}
testKeys.BootstrapTime, ok = tk["bootstrap_time"].(float64)
if !ok {
return testKeys, errors.New("bootstrap_time key invalid")
}
return testKeys, nil
}
// LogSummary writes the summary to the standard output
func (h Psiphon) LogSummary(s string) error {
return nil
}