ooni-probe-cli/internal
kelmenhorst c31591f298
cli: new testhelper and the websteps experiment prototype (#432)
This is the extension of https://github.com/ooni/probe-cli/pull/431, and my final deliverable for GSoC 2021.

The diff introduces:

1) The new `testhelper` which supports testing multiple IP endpoints per domain and introduces HTTP/3 control measurements. The specification of the `testhelper` can be found at https://github.com/ooni/spec/pull/219. The `testhelper` algorithm consists of three main steps:

   * `InitialChecks` verifies that the input URL can be parsed, has an expected scheme, and contains a valid domain name.

   * `Explore` enumerates all the URLs that it discovers by redirection from the original URL, or by detecting h3 support at the target host.

   * `Generate` performs a step-by-step measurement of each discovered URL.

2) A prototype of the corresponding new experiment `websteps` which uses the control measurement of the `testhelper` to know which URLs to measure, and what to expect. The prototype does not yet have:

   * unit and integration tests,

   * an analysis tool to compare the control and the probe measurement.

This PR is my final deliverable as it is the outcome of the trials, considerations and efforts of my GSoC weeks at OONI. 
It fully integrates HTTP/3 (QUIC) support which has been only used in the `urlgetter` experiment until now.

Related issues: https://github.com/ooni/probe/issues/1729 and https://github.com/ooni/probe/issues/1733.
2021-08-17 10:29:06 +02:00
..
atomicx doc: cleanup and improve for recently moved pkgs (#354) 2021-06-04 11:39:00 +02:00
bytecounter refactor: rename i/e/n/mockablex => i/netxmocks (#397) 2021-06-23 16:06:02 +02:00
cmd cli: new testhelper and the websteps experiment prototype (#432) 2021-08-17 10:29:06 +02:00
engine cli: new testhelper and the websteps experiment prototype (#432) 2021-08-17 10:29:06 +02:00
errorsx feat(errorsx): cover more syscall errors and add tests (#430) 2021-07-08 12:23:37 +02:00
fsx fix(all): introduce and use iox.CopyContext (#380) 2021-06-15 13:44:28 +02:00
humanize fix(all): introduce and use iox.CopyContext (#380) 2021-06-15 13:44:28 +02:00
iox fix(all): introduce and use iox.CopyContext (#380) 2021-06-15 13:44:28 +02:00
kvstore doc: cleanup and improve for recently moved pkgs (#354) 2021-06-04 11:39:00 +02:00
mlablocate refactor(mlablocate*): move from i/e/internal to internal (#385) 2021-06-15 19:51:03 +02:00
mlablocatev2 refactor(mlablocate*): move from i/e/internal to internal (#385) 2021-06-15 19:51:03 +02:00
multierror doc: cleanup and improve for recently moved pkgs (#354) 2021-06-04 11:39:00 +02:00
netxlite cli: new testhelper and the websteps experiment prototype (#432) 2021-08-17 10:29:06 +02:00
netxmocks fix(netx): make sure we save quic udp conn events (#423) 2021-07-02 11:00:12 +02:00
ooapi fix(all): introduce and use iox.ReadAllContext (#379) 2021-06-15 11:57:40 +02:00
platform doc: improve and reference existing bug in the code (#356) 2021-06-04 12:50:23 +02:00
ptx fix(ptx): use another obfs4 bridge (#415) 2021-07-01 15:13:01 +02:00
randx doc: improve and reference existing bug in the code (#356) 2021-06-04 12:50:23 +02:00
runtimex refactor: flatten and separate (#353) 2021-06-04 10:34:18 +02:00
scrubber refactor: move scrubbingLogger to the scrubber pkg (#394) 2021-06-22 14:43:58 +02:00
shellx cleanup(shellx): do not directly depend on apex/log (#357) 2021-06-04 14:02:18 +02:00
tunnel cleanup(all): stop using deprecated ioutil functions (#381) 2021-06-15 14:01:45 +02:00
tutorial feat: tutorial on how to write the torsf experiment (#390) 2021-06-22 00:12:03 +02:00
version chore: we are now at 3.11.0-alpha (#361) 2021-06-08 10:08:13 +02:00
README.md doc: ensure all top dirs have an explanatory README (#214) 2021-02-03 16:54:00 +01:00

Directory github.com/ooni/probe-cli/internal

This directory contains private Go packages.