Documentation ¶
Overview ¶
Package torsf contains the torsf experiment. This experiment measures the bootstrapping of tor using snowflake.
See https://github.com/ooni/spec/blob/master/nettests/ts-030-torsf.md
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewExperimentMeasurer ¶
func NewExperimentMeasurer(config Config) model.ExperimentMeasurer
NewExperimentMeasurer creates a new ExperimentMeasurer.
Types ¶
type Config ¶
type Config struct { // DisablePersistentDatadir disables using a persistent datadir. DisablePersistentDatadir bool `ooni:"Disable using a persistent tor datadir"` // DisableProgress disables printing progress messages. DisableProgress bool `ooni:"Disable printing progress messages"` // RendezvousMethod allows to choose the method with which to rendezvous. RendezvousMethod string `` /* 148-byte string literal not displayed */ }
Config contains the experiment config.
type Measurer ¶
type Measurer struct {
// contains filtered or unexported fields
}
Measurer performs the measurement.
func (*Measurer) ExperimentName ¶
ExperimentName implements model.ExperimentMeasurer.ExperimentName.
func (*Measurer) ExperimentVersion ¶
ExperimentVersion implements model.ExperimentMeasurer.ExperimentVersion.
func (*Measurer) GetSummaryKeys ¶
func (m *Measurer) GetSummaryKeys(measurement *model.Measurement) (interface{}, error)
GetSummaryKeys implements model.ExperimentMeasurer.GetSummaryKeys.
func (*Measurer) Run ¶
func (m *Measurer) Run( ctx context.Context, sess model.ExperimentSession, measurement *model.Measurement, callbacks model.ExperimentCallbacks, ) error
Run runs the experiment with the specified context, session, measurement, and experiment calbacks. This method should only return an error in case the experiment could not run (e.g., a required input is missing). Otherwise, the code should just set the relevant OONI error inside of the measurement and return nil. This is important because the caller may not submit the measurement if this method returns an error.
type SummaryKeys ¶
type SummaryKeys struct {
IsAnomaly bool `json:"-"`
}
SummaryKeys contains summary keys for this experiment.
Note that this structure is part of the ABI contract with probe-cli therefore we should be careful when changing it.
type TestKeys ¶
type TestKeys struct { // BootstrapTime contains the bootstrap time on success. BootstrapTime float64 `json:"bootstrap_time"` // Failure contains the failure string or nil. Failure *string `json:"failure"` // PersistentDatadir indicates whether we're using a persistent tor datadir. PersistentDatadir bool `json:"persistent_datadir"` // RendezvousMethod contains the method used to perform the rendezvous. RendezvousMethod string `json:"rendezvous_method"` // TorLogs contains the bootstrap logs. TorLogs []string `json:"tor_logs"` // TorVersion contains the version of tor (if it's possible to obtain it). TorVersion string `json:"tor_version"` }
TestKeys contains the experiment's result.