Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QA: update LTE "classic" analysis engine to set extended blocking flags #2640

Closed
bassosimone opened this issue Dec 1, 2023 · 1 comment
Closed

Comments

@bassosimone
Copy link
Contributor

This issue is about updating LTE "classic" analysis engine, which currently only emulates v0.4 top-level keys, to additionally write keys that provide a more nuanced overview of the blocking types, pretty much like the "orig" engine does.

@bassosimone bassosimone self-assigned this Dec 1, 2023
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 16, 2024
This PR contains yak shaving before doing
ooni/probe#2640.

We extracted this PR from #1446.
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 16, 2024
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 16, 2024
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 16, 2024
This diff adds the DNSLookupSuccessWithBogonAddresses analysis field to
minipipeline.

We'll need this field to complete
ooni/probe#2640.

While there, implement `io.Stringer` for the `minipeline.Set` type,
which we will also need to have.
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 16, 2024
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 16, 2024
I spent some time increasing code coverage for `internal/minipipeline`.

This is KTLO work as part of ooni/probe#2640.
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 18, 2024
This PR adds the ControlFinalResponseExpectations field to
WebObservationsContainer. We need this field to determine whether
unexplained failures observed by the probe (i.e., failures occurring
during redirects) are to be expected (because for some reason also the
TH failed) or unexpected (because the TH succeeded).

Part of ooni/probe#2640.
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 19, 2024
This diff completes the work started by #1451 by adding support for
ControlFinalResponseExpectations to the analysis data structures, which
will enable us to use this information for Web Connectivity LTE.

Part of ooni/probe#2640.
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 19, 2024
We need to know about all possible unexplained failures. With this
information and information about ControlFinalResponseExpectations
introduced in #1451 and #1452, we are able to transform unexplained
failures (i.e., failures occurring during redirects) into explained
failures when we have a control-based expectation to compare to.

Part of ooni/probe#2640
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 19, 2024
This diff modifies the "classic" analysis engine to compute
XBlockingFlags. While there, make sure that the flags we compute make
sense thus fixing analysis bugs in the previously used "orig" engine.

Part of ooni/probe#2640.
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 19, 2024
This diff extends webconnectivitylte's classic analysis engine and
minipipeline to generate `XNullNullFlags`.

With this change implemented, we have successfully replaced the "orig"
engine with "classic".

This work is part of ooni/probe#2640.

While this diff is large, most of the changes are in the generated files
for the minipipeline test suite.
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 19, 2024
This commit removes the "orig" data analysis engine of the
webconnectivitylte experiment now that the "classic" engine
is able to generate the same or better results.

Part of ooni/probe#2640
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 19, 2024
This commit removes the "orig" data analysis engine of the
webconnectivitylte experiment now that the "classic" engine is able to
generate the same or better results.

Part of ooni/probe#2640
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 19, 2024
Use a single algorithm for determining whether there's HTTP diff.

Part of ooni/probe#2640
bassosimone added a commit to ooni/probe-cli that referenced this issue Jan 19, 2024
Use a single algorithm for determining whether there's HTTP diff. We can
do this by migrating the HTTP diff flags to use `optional.Value` and
then we can always use code written for the "ext" sub-engine to do that.

Part of ooni/probe#2640
@bassosimone
Copy link
Contributor Author

All that was required has been done! 🥳

Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
This PR contains yak shaving before doing
ooni/probe#2640.

We extracted this PR from ooni#1446.
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
This diff adds the DNSLookupSuccessWithBogonAddresses analysis field to
minipipeline.

We'll need this field to complete
ooni/probe#2640.

While there, implement `io.Stringer` for the `minipeline.Set` type,
which we will also need to have.
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
I spent some time increasing code coverage for `internal/minipipeline`.

This is KTLO work as part of ooni/probe#2640.
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
This PR adds the ControlFinalResponseExpectations field to
WebObservationsContainer. We need this field to determine whether
unexplained failures observed by the probe (i.e., failures occurring
during redirects) are to be expected (because for some reason also the
TH failed) or unexpected (because the TH succeeded).

Part of ooni/probe#2640.
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
…1452)

This diff completes the work started by ooni#1451 by adding support for
ControlFinalResponseExpectations to the analysis data structures, which
will enable us to use this information for Web Connectivity LTE.

Part of ooni/probe#2640.
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
We need to know about all possible unexplained failures. With this
information and information about ControlFinalResponseExpectations
introduced in ooni#1451 and ooni#1452, we are able to transform unexplained
failures (i.e., failures occurring during redirects) into explained
failures when we have a control-based expectation to compare to.

Part of ooni/probe#2640
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
This diff modifies the "classic" analysis engine to compute
XBlockingFlags. While there, make sure that the flags we compute make
sense thus fixing analysis bugs in the previously used "orig" engine.

Part of ooni/probe#2640.
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
This diff extends webconnectivitylte's classic analysis engine and
minipipeline to generate `XNullNullFlags`.

With this change implemented, we have successfully replaced the "orig"
engine with "classic".

This work is part of ooni/probe#2640.

While this diff is large, most of the changes are in the generated files
for the minipipeline test suite.
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
This commit removes the "orig" data analysis engine of the
webconnectivitylte experiment now that the "classic" engine is able to
generate the same or better results.

Part of ooni/probe#2640
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this issue Feb 13, 2024
Use a single algorithm for determining whether there's HTTP diff. We can
do this by migrating the HTTP diff flags to use `optional.Value` and
then we can always use code written for the "ext" sub-engine to do that.

Part of ooni/probe#2640
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants