From 0a136350bda95b35d5949a154513a4d5cb5ce933 Mon Sep 17 00:00:00 2001 From: Simone Basso Date: Thu, 30 Nov 2023 06:15:45 +0100 Subject: [PATCH] refactor(minipipeline): tweak HTTP code (#1414) The general idea here is to have more orthogonal metrics and to have simpler code to implement them. Part of https://github.com/ooni/probe/issues/2634 --- .../cmd/minipipeline/testdata/analysis.json | 13 +- .../testdata/analysis_classic.json | 13 +- internal/minipipeline/analysis.go | 369 +++++++----------- internal/minipipeline/analysis_test.go | 294 -------------- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 13 +- .../analysis_classic.json | 9 +- .../badSSLWithWrongServerName/analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 11 +- .../analysis_classic.json | 11 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 13 +- .../analysis_classic.json | 9 +- .../generated/dnsBlockingBOGON/analysis.json | 13 +- .../dnsBlockingBOGON/analysis_classic.json | 9 +- .../dnsBlockingNXDOMAIN/analysis.json | 13 +- .../dnsBlockingNXDOMAIN/analysis_classic.json | 9 +- .../analysis.json | 13 +- .../analysis_classic.json | 13 +- .../analysis.json | 11 +- .../analysis_classic.json | 11 +- .../httpBlockingConnectionReset/analysis.json | 9 +- .../analysis_classic.json | 9 +- .../httpDiffWithConsistentDNS/analysis.json | 11 +- .../analysis_classic.json | 11 +- .../httpDiffWithInconsistentDNS/analysis.json | 11 +- .../analysis_classic.json | 11 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../generated/successWithHTTP/analysis.json | 11 +- .../successWithHTTP/analysis_classic.json | 11 +- .../generated/successWithHTTPS/analysis.json | 13 +- .../successWithHTTPS/analysis_classic.json | 13 +- .../tcpBlockingConnectTimeout/analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 11 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../analysis.json | 9 +- .../analysis_classic.json | 9 +- .../websiteDownNXDOMAIN/analysis.json | 13 +- .../websiteDownNXDOMAIN/analysis_classic.json | 13 +- .../manual/dnsgoogle80/analysis.json | 9 +- .../manual/dnsgoogle80/analysis_classic.json | 9 +- .../manual/noipv6/analysis.json | 13 +- .../manual/noipv6/analysis_classic.json | 13 +- .../manual/youtube/analysis.json | 13 +- .../manual/youtube/analysis_classic.json | 13 +- 70 files changed, 486 insertions(+), 875 deletions(-) diff --git a/internal/cmd/minipipeline/testdata/analysis.json b/internal/cmd/minipipeline/testdata/analysis.json index 80b5609b79..56db010542 100644 --- a/internal/cmd/minipipeline/testdata/analysis.json +++ b/internal/cmd/minipipeline/testdata/analysis.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 4, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -24,10 +25,6 @@ "x-drupal-cache": true, "x-generator": true }, - "HTTPFinalResponsesWithControl": { - "4": true - }, - "HTTPFinalResponsesWithTLS": { - "4": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/cmd/minipipeline/testdata/analysis_classic.json b/internal/cmd/minipipeline/testdata/analysis_classic.json index 08bdcfeb29..e8f4d688a8 100644 --- a/internal/cmd/minipipeline/testdata/analysis_classic.json +++ b/internal/cmd/minipipeline/testdata/analysis_classic.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 4, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -24,10 +25,6 @@ "x-drupal-cache": true, "x-generator": true }, - "HTTPFinalResponsesWithControl": { - "4": true - }, - "HTTPFinalResponsesWithTLS": { - "4": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/analysis.go b/internal/minipipeline/analysis.go index d6a6cf8e89..5274bbb5d1 100644 --- a/internal/minipipeline/analysis.go +++ b/internal/minipipeline/analysis.go @@ -17,17 +17,11 @@ func AnalyzeWebObservations(container *WebObservationsContainer) *WebAnalysis { analysis.tcpComputeMetrics(container) analysis.tlsComputeMetrics(container) analysis.httpComputeFailureMetrics(container) + analysis.httpComputeFinalResponseMetrics(container) analysis.ComputeDNSExperimentFailure(container) analysis.ComputeDNSPossiblyNonexistingDomains(container) - analysis.ComputeHTTPDiffBodyProportionFactor(container) - analysis.ComputeHTTPDiffStatusCodeMatch(container) - analysis.ComputeHTTPDiffUncommonHeadersIntersection(container) - analysis.ComputeHTTPDiffTitleDifferentLongWords(container) - analysis.ComputeHTTPFinalResponsesWithControl(container) - analysis.ComputeHTTPFinalResponsesWithTLS(container) - return analysis } @@ -93,46 +87,39 @@ type WebAnalysis struct { // HTTPRoundTripUnexpectedFailure contains HTTP endpoint transactions with unexpected failures. HTTPRoundTripUnexpectedFailure Set[int64] - // TODO(bassosimone): there are probably redundant metrics from this point on + // HTTPFinalResponseSuccessTLSWithoutControl contains the ID of the final response + // transaction when the final response succeeded without control and with TLS. + HTTPFinalResponseSuccessTLSWithoutControl optional.Value[int64] - // DNSExperimentFailure is the first failure experienced by a getaddrinfo-like resolver. - DNSExperimentFailure optional.Value[string] + // HTTPFinalResponseSuccessTLSWithControl contains the ID of the final response + // transaction when the final response succeeded with control and with TLS. + HTTPFinalResponseSuccessTLSWithControl optional.Value[int64] - // DNSPossiblyNonexistingDomains lists all the domains for which both - // the probe and the TH failed to perform DNS lookups. - DNSPossiblyNonexistingDomains optional.Value[map[string]bool] + // HTTPFinalResponseSuccessTCPWithControl contains the ID of the final response + // transaction when the final response succeeded with control and with TCP. + HTTPFinalResponseSuccessTCPWithControl optional.Value[int64] // HTTPDiffBodyProportionFactor is the body proportion factor. - // - // The generation algorithm assumes there's a single "final" response. HTTPDiffBodyProportionFactor optional.Value[float64] // HTTPDiffStatusCodeMatch returns whether the status code matches. - // - // The generation algorithm assumes there's a single "final" response. HTTPDiffStatusCodeMatch optional.Value[bool] // HTTPDiffTitleDifferentLongWords contains the words long 5+ characters that appear // in the probe's "final" response title or in the TH title but not in both. - // - // The generation algorithm assumes there's a single "final" response. HTTPDiffTitleDifferentLongWords optional.Value[map[string]bool] // HTTPDiffUncommonHeadersIntersection contains the uncommon headers intersection. - // - // The generation algorithm assumes there's a single "final" response. HTTPDiffUncommonHeadersIntersection optional.Value[map[string]bool] - // HTTPFinalResponsesWithControl contains the transaction IDs of "final" responses (i.e., - // responses that are like 2xx, 4xx, or 5xx) for which we also have a valid HTTP control - // measurement. Typically, we expect to have a single response that is final when - // analyzing Web Connectivity LTE results. - HTTPFinalResponsesWithControl optional.Value[map[int64]bool] + // TODO(bassosimone): there are probably redundant metrics from this point on + + // DNSExperimentFailure is the first failure experienced by a getaddrinfo-like resolver. + DNSExperimentFailure optional.Value[string] - // HTTPFinalResponsesWithTLS is like HTTPFinalResponses but only includes the - // cases where we're using TLS to fetch the final response, and does not concern - // itself with whether there's control data, because TLS suffices. - HTTPFinalResponsesWithTLS optional.Value[map[int64]bool] + // DNSPossiblyNonexistingDomains lists all the domains for which both + // the probe and the TH failed to perform DNS lookups. + DNSPossiblyNonexistingDomains optional.Value[map[string]bool] } func (wa *WebAnalysis) dnsComputeSuccessMetrics(c *WebObservationsContainer) { @@ -433,6 +420,131 @@ func (wa *WebAnalysis) httpComputeFailureMetrics(c *WebObservationsContainer) { } } +func (wa *WebAnalysis) httpComputeFinalResponseMetrics(c *WebObservationsContainer) { + for _, obs := range c.KnownTCPEndpoints { + // we need a final HTTP response + if obs.HTTPResponseIsFinal.IsNone() || !obs.HTTPResponseIsFinal.Unwrap() { + continue + } + + // stop after processing the first final response (there's at most + // one when we're analyzing LTE results) + wa.httpHandleFinalResponse(obs) + return + } +} + +func (wa *WebAnalysis) httpHandleFinalResponse(obs *WebObservation) { + // handle the case where there's no control + if obs.ControlHTTPFailure.IsNone() { + if !obs.TLSHandshakeFailure.IsNone() && obs.TLSHandshakeFailure.Unwrap() == "" { + wa.HTTPFinalResponseSuccessTLSWithoutControl = obs.EndpointTransactionID + return + } + return + } + + // count and classify the number of final responses with control + if !obs.TLSHandshakeFailure.IsNone() { + runtimex.Assert(obs.TLSHandshakeFailure.Unwrap() == "", "expected to see TLS handshake success here") + wa.HTTPFinalResponseSuccessTLSWithControl = obs.EndpointTransactionID + } else { + wa.HTTPFinalResponseSuccessTCPWithControl = obs.EndpointTransactionID + } + + // compute the HTTPDiff metrics + wa.httpDiffBodyProportionFactor(obs) + wa.httpDiffStatusCodeMatch(obs) + wa.httpDiffUncommonHeadersIntersection(obs) + wa.httpDiffTitleDifferentLongWords(obs) +} + +func (wa *WebAnalysis) httpDiffBodyProportionFactor(obs *WebObservation) { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + return + } + + // we need a valid body length and the body must not be truncated + measurement := obs.HTTPResponseBodyLength.UnwrapOr(0) + if measurement <= 0 || obs.HTTPResponseBodyIsTruncated.UnwrapOr(true) { + return + } + + // we also need a valid control body length + control := obs.ControlHTTPResponseBodyLength.UnwrapOr(0) + if control <= 0 { + return + } + + // compute the body proportion factor and update the state + proportion := ComputeHTTPDiffBodyProportionFactor(measurement, control) + wa.HTTPDiffBodyProportionFactor = optional.Some(proportion) +} + +func (wa *WebAnalysis) httpDiffStatusCodeMatch(obs *WebObservation) { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + return + } + + // we need a positive status code for both + measurement := obs.HTTPResponseStatusCode.UnwrapOr(0) + if measurement <= 0 { + return + } + control := obs.ControlHTTPResponseStatusCode.UnwrapOr(0) + if control <= 0 { + return + } + + // update state + wa.HTTPDiffStatusCodeMatch = ComputeHTTPDiffStatusCodeMatch(measurement, control) +} + +func (wa *WebAnalysis) httpDiffUncommonHeadersIntersection(obs *WebObservation) { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + return + } + + // We should only perform the comparison if we have valid control data. Because + // the headers could legitimately be empty, let's use the status code here. + if obs.ControlHTTPResponseStatusCode.UnwrapOr(0) <= 0 { + return + } + + // Implementation note: here we need to continue running when either + // headers are empty in order to produce an empty intersection. If we'd stop + // after noticing that either dictionary is empty, we'd produce a nil + // analysis result, which causes QA differences with v0.4. + measurement := obs.HTTPResponseHeadersKeys.UnwrapOr(nil) + control := obs.ControlHTTPResponseHeadersKeys.UnwrapOr(nil) + + state := ComputeHTTPDiffUncommonHeadersIntersection(measurement, control) + wa.HTTPDiffUncommonHeadersIntersection = optional.Some(state) +} + +func (wa *WebAnalysis) httpDiffTitleDifferentLongWords(obs *WebObservation) { + // we should only perform the comparison for a final response + if !obs.HTTPResponseIsFinal.UnwrapOr(false) { + return + } + + // We should only perform the comparison if we have valid control data. Because + // the title could legitimately be empty, let's use the status code here. + if obs.ControlHTTPResponseStatusCode.UnwrapOr(0) <= 0 { + return + } + + measurement := obs.HTTPResponseTitle.UnwrapOr("") + control := obs.ControlHTTPResponseTitle.UnwrapOr("") + + state := ComputeHTTPDiffTitleDifferentLongWords(measurement, control) + + wa.HTTPDiffTitleDifferentLongWords = optional.Some(state) +} + // ComputeDNSExperimentFailure computes the DNSExperimentFailure field. func (wa *WebAnalysis) ComputeDNSExperimentFailure(c *WebObservationsContainer) { @@ -536,200 +648,3 @@ func (wa *WebAnalysis) ComputeDNSPossiblyNonexistingDomains(c *WebObservationsCo // note that optional.Some constructs None if state is nil wa.DNSPossiblyNonexistingDomains = optional.Some(state) } - -// ComputeHTTPDiffBodyProportionFactor computes the HTTPDiffBodyProportionFactor field. -func (wa *WebAnalysis) ComputeHTTPDiffBodyProportionFactor(c *WebObservationsContainer) { - for _, obs := range c.KnownTCPEndpoints { - // we should only perform the comparison for a final response - if !obs.HTTPResponseIsFinal.UnwrapOr(false) { - continue - } - - // we need a valid body length and the body must not be truncated - measurement := obs.HTTPResponseBodyLength.UnwrapOr(0) - if measurement <= 0 || obs.HTTPResponseBodyIsTruncated.UnwrapOr(true) { - continue - } - - // we also need a valid control body length - control := obs.ControlHTTPResponseBodyLength.UnwrapOr(0) - if control <= 0 { - continue - } - - // compute the body proportion factor and update the state - proportion := ComputeHTTPDiffBodyProportionFactor(measurement, control) - wa.HTTPDiffBodyProportionFactor = optional.Some(proportion) - - // Implementation note: we only process the first observation that matches. - // - // This is fine(TM) as long as we have a single "final" response. - break - } -} - -// ComputeHTTPDiffStatusCodeMatch computes the HTTPDiffStatusCodeMatch field. -func (wa *WebAnalysis) ComputeHTTPDiffStatusCodeMatch(c *WebObservationsContainer) { - for _, obs := range c.KnownTCPEndpoints { - // we should only perform the comparison for a final response - if !obs.HTTPResponseIsFinal.UnwrapOr(false) { - continue - } - - // we need a positive status code for both - measurement := obs.HTTPResponseStatusCode.UnwrapOr(0) - if measurement <= 0 { - continue - } - control := obs.ControlHTTPResponseStatusCode.UnwrapOr(0) - if control <= 0 { - continue - } - - // update state - wa.HTTPDiffStatusCodeMatch = ComputeHTTPDiffStatusCodeMatch(measurement, control) - - // Implementation note: we only process the first observation that matches. - // - // This is fine(TM) as long as we have a single "final" request. - break - } -} - -// ComputeHTTPDiffUncommonHeadersIntersection computes the HTTPDiffUncommonHeadersIntersection field. -func (wa *WebAnalysis) ComputeHTTPDiffUncommonHeadersIntersection(c *WebObservationsContainer) { - for _, obs := range c.KnownTCPEndpoints { - // we should only perform the comparison for a final response - if !obs.HTTPResponseIsFinal.UnwrapOr(false) { - continue - } - - // We should only perform the comparison if we have valid control data. Because - // the headers could legitimately be empty, let's use the status code here. - if obs.ControlHTTPResponseStatusCode.UnwrapOr(0) <= 0 { - continue - } - - // Implementation note: here we need to continue running when either - // headers are empty in order to produce an empty intersection. If we'd stop - // after noticing that either dictionary is empty, we'd produce a nil - // analysis result, which causes QA differences with v0.4. - measurement := obs.HTTPResponseHeadersKeys.UnwrapOr(nil) - control := obs.ControlHTTPResponseHeadersKeys.UnwrapOr(nil) - - state := ComputeHTTPDiffUncommonHeadersIntersection(measurement, control) - - // Implementation note: we only process the first observation that matches. - // - // This is fine(TM) as long as we have a single "final" request. - wa.HTTPDiffUncommonHeadersIntersection = optional.Some(state) - break - } -} - -// ComputeHTTPDiffTitleDifferentLongWords computes the HTTPDiffTitleDifferentLongWords field. -func (wa *WebAnalysis) ComputeHTTPDiffTitleDifferentLongWords(c *WebObservationsContainer) { - for _, obs := range c.KnownTCPEndpoints { - // we should only perform the comparison for a final response - if !obs.HTTPResponseIsFinal.UnwrapOr(false) { - continue - } - - // We should only perform the comparison if we have valid control data. Because - // the title could legitimately be empty, let's use the status code here. - if obs.ControlHTTPResponseStatusCode.UnwrapOr(0) <= 0 { - continue - } - - measurement := obs.HTTPResponseTitle.UnwrapOr("") - control := obs.ControlHTTPResponseTitle.UnwrapOr("") - - state := ComputeHTTPDiffTitleDifferentLongWords(measurement, control) - - // Implementation note: we only process the first observation that matches. - // - // This is fine(TM) as long as we have a single "final" request. - wa.HTTPDiffTitleDifferentLongWords = optional.Some(state) - break - } -} - -// ComputeHTTPFinalResponsesWithControl computes the HTTPFinalResponses field. -func (wa *WebAnalysis) ComputeHTTPFinalResponsesWithControl(c *WebObservationsContainer) { - var state map[int64]bool - - for _, obs := range c.KnownTCPEndpoints { - // skip this entry if we don't know the transaction ID - txid := obs.EndpointTransactionID.UnwrapOr(0) - if txid <= 0 { - continue - } - - // skip this entry if it's not final - isFinal := obs.HTTPResponseIsFinal.UnwrapOr(false) - if !isFinal { - continue - } - - // skip this entry if don't have control information - if obs.ControlHTTPFailure.IsNone() { - continue - } - - // flip state from None to empty when we have seen the first final - // response for which we have valid control info - if state == nil { - state = make(map[int64]bool) - } - - // skip in case the HTTP control failed - if obs.ControlHTTPFailure.Unwrap() != "" { - continue - } - - state[txid] = true - } - - // note that optional.Some constructs None if state is nil - wa.HTTPFinalResponsesWithControl = optional.Some(state) -} - -// ComputeHTTPFinalResponsesWithTLS computes the HTTPFinalResponsesWithTLS field. -func (wa *WebAnalysis) ComputeHTTPFinalResponsesWithTLS(c *WebObservationsContainer) { - var state map[int64]bool - - for _, obs := range c.KnownTCPEndpoints { - // skip this entry if we don't know the transaction ID - txid := obs.EndpointTransactionID.UnwrapOr(0) - if txid <= 0 { - continue - } - - // skip this entry if it's not final - isFinal := obs.HTTPResponseIsFinal.UnwrapOr(false) - if !isFinal { - continue - } - - // skip this entry if we didn't try a TLS handshake - if obs.TLSHandshakeFailure.IsNone() { - continue - } - - // flip the state from None to empty when we have an endpoint - // for which we attempted a TLS handshake - if state == nil { - state = make(map[int64]bool) - } - - // skip in case the TLS handshake failed - if obs.TLSHandshakeFailure.Unwrap() != "" { - continue - } - - state[txid] = true - } - - // note that optional.Some constructs None if state is nil - wa.HTTPFinalResponsesWithTLS = optional.Some(state) -} diff --git a/internal/minipipeline/analysis_test.go b/internal/minipipeline/analysis_test.go index d5bfb47b6a..35480f204a 100644 --- a/internal/minipipeline/analysis_test.go +++ b/internal/minipipeline/analysis_test.go @@ -72,297 +72,3 @@ func TestWebAnalysisComputeDNSExperimentFailure(t *testing.T) { } }) } - -func TestWebAnalysisComputeHTTPDiffBodyProportionFactor(t *testing.T) { - t.Run("when there is no probe response body length", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseBodyLength: optional.None[int64](), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffBodyProportionFactor(container) - - if !wa.HTTPDiffBodyProportionFactor.IsNone() { - t.Fatal("should still be none") - } - }) - - t.Run("when the probe response body length is negative", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseBodyLength: optional.Some[int64](-1), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffBodyProportionFactor(container) - - if !wa.HTTPDiffBodyProportionFactor.IsNone() { - t.Fatal("should still be none") - } - }) - - t.Run("when the probe response body length is zero", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseBodyLength: optional.Some[int64](0), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffBodyProportionFactor(container) - - if !wa.HTTPDiffBodyProportionFactor.IsNone() { - t.Fatal("should still be none") - } - }) - - t.Run("when the probe response body is truncated", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseBodyLength: optional.Some[int64](11), - HTTPResponseBodyIsTruncated: optional.Some(true), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffBodyProportionFactor(container) - - if !wa.HTTPDiffBodyProportionFactor.IsNone() { - t.Fatal("should still be none") - } - }) -} - -func TestWebAnalysisComputeHTTPDiffStatusCodeMatch(t *testing.T) { - t.Run("when there is no probe status code", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseStatusCode: optional.None[int64](), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffStatusCodeMatch(container) - - if !wa.HTTPDiffStatusCodeMatch.IsNone() { - t.Fatal("should still be none") - } - }) - - t.Run("when the probe status code is negative", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseStatusCode: optional.Some[int64](-1), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffStatusCodeMatch(container) - - if !wa.HTTPDiffStatusCodeMatch.IsNone() { - t.Fatal("should still be none") - } - }) - - t.Run("when the probe status code is zero", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseStatusCode: optional.Some[int64](0), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffStatusCodeMatch(container) - - if !wa.HTTPDiffStatusCodeMatch.IsNone() { - t.Fatal("should still be none") - } - }) - - t.Run("when there's status code mismatch and the control is not like 2xx", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseStatusCode: optional.Some[int64](403), - ControlHTTPResponseStatusCode: optional.Some[int64](500), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffStatusCodeMatch(container) - - if !wa.HTTPDiffStatusCodeMatch.IsNone() { - t.Fatal("should still be none") - } - }) -} - -func TestWebAnalysisComputeHTTPDiffTitleDifferentLongWords(t *testing.T) { - t.Run("when there is no probe title", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseTitle: optional.None[string](), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffTitleDifferentLongWords(container) - - if !wa.HTTPDiffTitleDifferentLongWords.IsNone() { - t.Fatal("should still be none") - } - }) - - t.Run("when the probe title is empty", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - HTTPResponseIsFinal: optional.Some(true), - HTTPResponseTitle: optional.Some[string](""), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPDiffTitleDifferentLongWords(container) - - if !wa.HTTPDiffTitleDifferentLongWords.IsNone() { - t.Fatal("should still be none") - } - }) -} - -func TestWebAnalysisComputeHTTPFinalResponses(t *testing.T) { - t.Run("when there is no endpoint transaction ID", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - EndpointTransactionID: optional.None[int64](), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPFinalResponsesWithControl(container) - - if v := wa.HTTPFinalResponsesWithControl.UnwrapOr(nil); len(v) > 0 { - t.Fatal("should be empty") - } - }) - - t.Run("when the endpoint transaction ID is negative", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - EndpointTransactionID: optional.Some[int64](-1), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPFinalResponsesWithControl(container) - - if v := wa.HTTPFinalResponsesWithControl.UnwrapOr(nil); len(v) > 0 { - t.Fatal("should be empty") - } - }) - - t.Run("when the endpoint transaction ID is zero", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - EndpointTransactionID: optional.Some[int64](0), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPFinalResponsesWithControl(container) - - if v := wa.HTTPFinalResponsesWithControl.UnwrapOr(nil); len(v) > 0 { - t.Fatal("should be empty") - } - }) -} - -func TestWebAnalysisComputeHTTPFinalResponsesWithTLS(t *testing.T) { - t.Run("when there is no endpoint transaction ID", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - EndpointTransactionID: optional.None[int64](), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPFinalResponsesWithTLS(container) - - if v := wa.HTTPFinalResponsesWithTLS.UnwrapOr(nil); len(v) > 0 { - t.Fatal("should be empty") - } - }) - - t.Run("when the endpoint transaction ID is negative", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - EndpointTransactionID: optional.Some[int64](-1), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPFinalResponsesWithTLS(container) - - if v := wa.HTTPFinalResponsesWithTLS.UnwrapOr(nil); len(v) > 0 { - t.Fatal("should be empty") - } - }) - - t.Run("when the endpoint transaction ID is zero", func(t *testing.T) { - container := &WebObservationsContainer{ - KnownTCPEndpoints: map[int64]*WebObservation{ - 1: { - EndpointTransactionID: optional.Some[int64](0), - }, - }, - } - - wa := &WebAnalysis{} - wa.ComputeHTTPFinalResponsesWithTLS(container) - - if v := wa.HTTPFinalResponsesWithTLS.UnwrapOr(nil); len(v) > 0 { - t.Fatal("should be empty") - } - }) -} diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json index 2761f0db20..96f10aff53 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json index 477a68421d..cd35dbb239 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithExpiredCertificate/analysis_classic.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json index 2761f0db20..96f10aff53 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json index 477a68421d..cd35dbb239 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithConsistentDNS/analysis_classic.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json index 272d26d7cb..3a2b33ebaa 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis.json @@ -21,8 +21,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 4, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -30,10 +31,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "4": true - }, - "HTTPFinalResponsesWithTLS": { - "4": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json index b6fce5bf1c..9490f36fa4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithUnknownAuthorityWithInconsistentDNS/analysis_classic.json @@ -19,12 +19,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json index 2761f0db20..96f10aff53 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json index 477a68421d..cd35dbb239 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/badSSLWithWrongServerName/analysis_classic.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json index 743896c095..a42cb0d6ba 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis.json @@ -15,14 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": 3, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json index 743896c095..a42cb0d6ba 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPSWebsite/analysis_classic.json @@ -15,14 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": 3, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json index 477a68421d..cd35dbb239 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json index 477a68421d..cd35dbb239 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/controlFailureWithSuccessfulHTTPWebsite/analysis_classic.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json index f7c98730d3..c3240e110c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis.json @@ -17,8 +17,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": "android_dns_cache_no_data", - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 3, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -26,10 +27,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": "android_dns_cache_no_data", + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json index 695ba883c8..9e4e7d678e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingAndroidDNSCacheNoData/analysis_classic.json @@ -17,12 +17,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": "android_dns_cache_no_data", - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": "android_dns_cache_no_data", + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json index 7063aa3949..9b9c9d193b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis.json @@ -19,8 +19,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 3, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -28,10 +29,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json index fe575dabd8..dcc55cdb54 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingBOGON/analysis_classic.json @@ -19,12 +19,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json index 3db37f257d..ecea5cfabc 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis.json @@ -17,8 +17,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": "dns_nxdomain_error", - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 3, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -26,10 +27,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": "dns_nxdomain_error", + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json index 719768e89e..7b6a7f0ef8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsBlockingNXDOMAIN/analysis_classic.json @@ -17,12 +17,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": "dns_nxdomain_error", - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": "dns_nxdomain_error", + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json index d5884e00a8..dff72330e0 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis.json @@ -20,8 +20,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 3, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -29,10 +30,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json index 30d256ef1a..dc2d69781b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPSURL/analysis_classic.json @@ -17,8 +17,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 3, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -26,10 +27,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json index 78b5c0986a..c577f2b42b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis.json @@ -20,16 +20,15 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 3, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, "HTTPDiffUncommonHeadersIntersection": { "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json index 75477f8204..b4c65cc808 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/dnsHijackingToProxyWithHTTPURL/analysis_classic.json @@ -17,16 +17,15 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 3, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, "HTTPDiffUncommonHeadersIntersection": { "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json index bd94c94fbf..97d5c8423f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis.json @@ -17,12 +17,13 @@ "HTTPRoundTripUnexpectedFailure": [ 3 ], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json index 23655f03d8..6d4a4ed056 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpBlockingConnectionReset/analysis_classic.json @@ -17,12 +17,13 @@ "HTTPRoundTripUnexpectedFailure": [ 3 ], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json index bf03c7dcd2..7a42aae8de 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 3, "HTTPDiffBodyProportionFactor": 0.12263535551206783, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": { @@ -25,8 +26,6 @@ "denied": true }, "HTTPDiffUncommonHeadersIntersection": {}, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json index 329a69178c..329cf68655 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithConsistentDNS/analysis_classic.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 3, "HTTPDiffBodyProportionFactor": 0.12263535551206783, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": { @@ -25,8 +26,6 @@ "denied": true }, "HTTPDiffUncommonHeadersIntersection": {}, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json index b45274ebac..7ef8322c95 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis.json @@ -20,8 +20,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 3, "HTTPDiffBodyProportionFactor": 0.12263535551206783, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": { @@ -30,8 +31,6 @@ "denied": true }, "HTTPDiffUncommonHeadersIntersection": {}, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json index 78ea7ccd0e..12a247edf7 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/httpDiffWithInconsistentDNS/analysis_classic.json @@ -17,8 +17,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 3, "HTTPDiffBodyProportionFactor": 0.12263535551206783, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": { @@ -27,8 +28,6 @@ "denied": true }, "HTTPDiffUncommonHeadersIntersection": {}, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json index 939dd1222d..7206672c8c 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis.json @@ -22,12 +22,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json index d2244432a2..53c823100d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTP/analysis_classic.json @@ -22,12 +22,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json index ac0323087a..da6862e0b2 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis.json @@ -19,12 +19,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json index 4e22c5347e..5fa41e041b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionRefusedForHTTPS/analysis_classic.json @@ -19,12 +19,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json index 628e8add11..0d57af1837 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis.json @@ -21,12 +21,13 @@ "HTTPRoundTripUnexpectedFailure": [ 6 ], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json index a597b0c33f..ac20d734b4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTP/analysis_classic.json @@ -21,12 +21,13 @@ "HTTPRoundTripUnexpectedFailure": [ 6 ], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json index 7f05309fce..092c94f0ab 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis.json @@ -19,12 +19,13 @@ ], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json index 0355a4c91f..2804c83d4f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenConnectionResetForHTTPS/analysis_classic.json @@ -19,12 +19,13 @@ ], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json index 628e8add11..0d57af1837 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis.json @@ -21,12 +21,13 @@ "HTTPRoundTripUnexpectedFailure": [ 6 ], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json index a597b0c33f..ac20d734b4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTP/analysis_classic.json @@ -21,12 +21,13 @@ "HTTPRoundTripUnexpectedFailure": [ 6 ], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json index 7f05309fce..092c94f0ab 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis.json @@ -19,12 +19,13 @@ ], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json index 0355a4c91f..2804c83d4f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenEOFForHTTPS/analysis_classic.json @@ -19,12 +19,13 @@ ], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json index 2761f0db20..96f10aff53 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json index 477a68421d..cd35dbb239 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenNXDOMAIN/analysis_classic.json @@ -15,12 +15,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json index 628e8add11..0d57af1837 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis.json @@ -21,12 +21,13 @@ "HTTPRoundTripUnexpectedFailure": [ 6 ], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json index a597b0c33f..ac20d734b4 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTP/analysis_classic.json @@ -21,12 +21,13 @@ "HTTPRoundTripUnexpectedFailure": [ 6 ], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json index 86060272a5..2bfae34deb 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis.json @@ -19,12 +19,13 @@ ], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json index dedae918b7..3e140388f8 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/redirectWithConsistentDNSAndThenTimeoutForHTTPS/analysis_classic.json @@ -19,12 +19,13 @@ ], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json index 65bb3b43ee..a09bfd7c91 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 3, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -24,8 +25,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json index bc1bcdb802..6138d3091f 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTP/analysis_classic.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 3, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -24,8 +25,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json index 70589a0caa..f17371c67a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 3, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -24,10 +25,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json index 879ac1d54e..fd8f185b3e 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/successWithHTTPS/analysis_classic.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 3, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -24,10 +25,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "3": true - }, - "HTTPFinalResponsesWithTLS": { - "3": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json index 3de3c3a4cf..dc37f9c26b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis.json @@ -19,12 +19,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json index f3c94880b1..64bf92ee3a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectTimeout/analysis_classic.json @@ -19,12 +19,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json index 48cb44eea5..c0415edc30 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis.json @@ -25,8 +25,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": 5, "HTTPDiffBodyProportionFactor": 1, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -34,8 +35,6 @@ "alt-svc": true, "content-length": true }, - "HTTPFinalResponsesWithControl": { - "5": true - }, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json index 18afa705da..bc20ee554b 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tcpBlockingConnectionRefusedWithInconsistentDNS/analysis_classic.json @@ -23,12 +23,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json index 7485d4a81e..74073c859a 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis.json @@ -19,12 +19,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json index 2397f0f0f5..5430da0905 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithConsistentDNS/analysis_classic.json @@ -19,12 +19,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json index dd2d1eb4e2..3516b7a36d 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis.json @@ -27,12 +27,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": {}, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": {} } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json index a11084debb..9dc60bd3be 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/tlsBlockingConnectionResetWithInconsistentDNS/analysis_classic.json @@ -23,12 +23,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json index 7120fa6100..d1fbb25b04 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis.json @@ -15,14 +15,15 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": "dns_nxdomain_error", - "DNSPossiblyNonexistingDomains": { - "www.example.xyz": true - }, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": "dns_nxdomain_error", + "DNSPossiblyNonexistingDomains": { + "www.example.xyz": true + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json index 7120fa6100..d1fbb25b04 100644 --- a/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/generated/websiteDownNXDOMAIN/analysis_classic.json @@ -15,14 +15,15 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": "dns_nxdomain_error", - "DNSPossiblyNonexistingDomains": { - "www.example.xyz": true - }, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": "dns_nxdomain_error", + "DNSPossiblyNonexistingDomains": { + "www.example.xyz": true + } } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json index 0d0f0716be..424d85a5d4 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis.json @@ -20,12 +20,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json index 0d0f0716be..424d85a5d4 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/dnsgoogle80/analysis_classic.json @@ -20,12 +20,13 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": null, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": null, "HTTPDiffStatusCodeMatch": null, "HTTPDiffTitleDifferentLongWords": null, "HTTPDiffUncommonHeadersIntersection": null, - "HTTPFinalResponsesWithControl": null, - "HTTPFinalResponsesWithTLS": null + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json index 0ff9748218..497580b859 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 8, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 0.6166324592304209, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -28,10 +29,6 @@ "permissions-policy": true, "report-to": true }, - "HTTPFinalResponsesWithControl": { - "8": true - }, - "HTTPFinalResponsesWithTLS": { - "8": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json index 0ff9748218..497580b859 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/noipv6/analysis_classic.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 8, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 0.6166324592304209, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -28,10 +29,6 @@ "permissions-policy": true, "report-to": true }, - "HTTPFinalResponsesWithControl": { - "8": true - }, - "HTTPFinalResponsesWithTLS": { - "8": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json index 44c30f4198..dc12f80471 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 8, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 0.6327409384828159, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -28,10 +29,6 @@ "permissions-policy": true, "report-to": true }, - "HTTPFinalResponsesWithControl": { - "8": true - }, - "HTTPFinalResponsesWithTLS": { - "8": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file diff --git a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json index 44c30f4198..dc12f80471 100644 --- a/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json +++ b/internal/minipipeline/testdata/webconnectivity/manual/youtube/analysis_classic.json @@ -15,8 +15,9 @@ "TLSHandshakeUnexplainedFailureDuringWebFetch": [], "TLSHandshakeUnexplainedFailureDuringConnectivityCheck": [], "HTTPRoundTripUnexpectedFailure": [], - "DNSExperimentFailure": null, - "DNSPossiblyNonexistingDomains": null, + "HTTPFinalResponseSuccessTLSWithoutControl": null, + "HTTPFinalResponseSuccessTLSWithControl": 8, + "HTTPFinalResponseSuccessTCPWithControl": null, "HTTPDiffBodyProportionFactor": 0.6327409384828159, "HTTPDiffStatusCodeMatch": true, "HTTPDiffTitleDifferentLongWords": {}, @@ -28,10 +29,6 @@ "permissions-policy": true, "report-to": true }, - "HTTPFinalResponsesWithControl": { - "8": true - }, - "HTTPFinalResponsesWithTLS": { - "8": true - } + "DNSExperimentFailure": null, + "DNSPossiblyNonexistingDomains": null } \ No newline at end of file