ooni-probe-cli/internal/engine/experiment/README.md
Simone Basso d57c78bc71
chore: merge probe-engine into probe-cli (#201)
This is how I did it:

1. `git clone https://github.com/ooni/probe-engine internal/engine`

2. ```
(cd internal/engine && git describe --tags)
v0.23.0
```

3. `nvim go.mod` (merging `go.mod` with `internal/engine/go.mod`

4. `rm -rf internal/.git internal/engine/go.{mod,sum}`

5. `git add internal/engine`

6. `find . -type f -name \*.go -exec sed -i 's@/ooni/probe-engine@/ooni/probe-cli/v3/internal/engine@g' {} \;`

7. `go build ./...` (passes)

8. `go test -race ./...` (temporary failure on RiseupVPN)

9. `go mod tidy`

10. this commit message

Once this piece of work is done, we can build a new version of `ooniprobe` that
is using `internal/engine` directly. We need to do more work to ensure all the
other functionality in `probe-engine` (e.g. making mobile packages) are still WAI.

Part of https://github.com/ooni/probe/issues/1335
2021-02-02 12:05:47 +01:00

25 lines
1.2 KiB
Markdown

# Directory github.com/ooni/probe-engine/experiment
This directory contains the implementation of all the supported
experiments, one for each directory. The [OONI spec repository
contains a description of all the specified experiments](
https://github.com/ooni/spec/tree/master/nettests).
Note that in the OONI spec repository experiments are called
nettests. Originally, they were also called nettests here but
that created confusion with nettests in [ooni/probe-cli](
https://github.com/ooni/probe-cli). Therefore, we now use the
term experiment to indicate the implementation and the term
nettest to indicate the user facing view of such implementation.
Note that some experiments implemented here are not part of
the OONI specification. For example, the [urlgetter](urlgetter)
experiment is not in the OONI spec repository. The reason why
this happens is that `urlgetter` is an experiment "library" that
other experiments use to implement their functionality.
Likewise, the [example](example) experiment is a minimal
experiment that does nothing and you could use to bootstrap
the implementation of a new experiment. Of course, this
experiment is not part of the OONI specification.