add a Dash Test.
This commit is contained in:
parent
62b515e2e0
commit
1d40171e04
|
@ -36,6 +36,7 @@ func init() {
|
|||
}
|
||||
|
||||
for _, nt := range group.Nettests {
|
||||
log.Debugf("Running test %T", nt)
|
||||
ctl := nettests.NewController(ctx, result)
|
||||
if err := nt.Run(ctl); err != nil {
|
||||
log.WithError(err).Errorf("Failed to run %s", group.Label)
|
||||
|
|
|
@ -17,6 +17,7 @@ var NettestGroups = map[string]nettests.NettestGroup{
|
|||
"performance": nettests.NettestGroup{
|
||||
Label: "Performance",
|
||||
Nettests: []nettests.Nettest{
|
||||
performance.Dash{},
|
||||
performance.NDT{},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -32,7 +32,7 @@ func NewController(ctx *ooni.Context, res *database.Result) *Controller {
|
|||
|
||||
// Controller is passed to the run method of every Nettest
|
||||
type Controller struct {
|
||||
ctx *ooni.Context
|
||||
Ctx *ooni.Context
|
||||
res *database.Result
|
||||
}
|
||||
|
||||
|
@ -40,9 +40,9 @@ type Controller struct {
|
|||
func (c *Controller) Init(nt *mk.Nettest) {
|
||||
log.Debugf("Init: %v", nt)
|
||||
nt.Options = mk.NettestOptions{
|
||||
IncludeIP: c.ctx.Config.Sharing.IncludeIP,
|
||||
IncludeASN: c.ctx.Config.Sharing.IncludeASN,
|
||||
IncludeCountry: c.ctx.Config.Advanced.IncludeCountry,
|
||||
IncludeIP: c.Ctx.Config.Sharing.IncludeIP,
|
||||
IncludeASN: c.Ctx.Config.Sharing.IncludeASN,
|
||||
IncludeCountry: c.Ctx.Config.Advanced.IncludeCountry,
|
||||
DisableCollector: false,
|
||||
SoftwareName: "ooniprobe",
|
||||
SoftwareVersion: version.Version,
|
||||
|
|
41
nettests/performance/dash.go
Normal file
41
nettests/performance/dash.go
Normal file
|
@ -0,0 +1,41 @@
|
|||
package performance
|
||||
|
||||
import (
|
||||
"github.com/measurement-kit/go-measurement-kit"
|
||||
"github.com/openobservatory/gooni/nettests"
|
||||
)
|
||||
|
||||
// Dash test implementation
|
||||
type Dash struct {
|
||||
}
|
||||
|
||||
// Run starts the test
|
||||
func (d Dash) Run(ctl *nettests.Controller) error {
|
||||
dash := mk.Nettest{Name: "Dash"}
|
||||
ctl.Init(&dash)
|
||||
return dash.Run()
|
||||
}
|
||||
|
||||
// DashSummary for the test
|
||||
// TODO: process 'receiver_data' to provide an array of performance for a chart.
|
||||
type DashSummary struct {
|
||||
Latency float32
|
||||
Bitrate int64
|
||||
Delay float32
|
||||
}
|
||||
|
||||
// Summary generates a summary for a test run
|
||||
func (d Dash) Summary(tk map[string]interface{}) interface{} {
|
||||
simple := tk["simple"].(map[string]interface{})
|
||||
|
||||
return DashSummary{
|
||||
Latency: simple["connect_latency"].(float32),
|
||||
Bitrate: simple["median_bitrate"].(int64),
|
||||
Delay: simple["min_playout_delay"].(float32),
|
||||
}
|
||||
}
|
||||
|
||||
// LogSummary writes the summary to the standard output
|
||||
func (d Dash) LogSummary(s string) error {
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue
Block a user