From 9a2a1b66054de75cdf489e5ff8e257e681e182b5 Mon Sep 17 00:00:00 2001 From: ain ghazal Date: Mon, 24 Jun 2024 12:06:33 +0200 Subject: [PATCH] add test for timestamps --- internal/experiment/openvpn/openvpn.go | 30 ++++++++++++--------- internal/experiment/openvpn/openvpn_test.go | 15 +++++++++++ 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/internal/experiment/openvpn/openvpn.go b/internal/experiment/openvpn/openvpn.go index d4e457021a..17deee8c53 100644 --- a/internal/experiment/openvpn/openvpn.go +++ b/internal/experiment/openvpn/openvpn.go @@ -155,17 +155,7 @@ func (m *Measurer) connectAndHandshake( handshakeEvents := handshakeTracer.Trace() port, _ := strconv.Atoi(endpoint.Port) - var ( - tFirst float64 - tLast float64 - bootstrapTime float64 - ) - - if len(handshakeEvents) > 0 { - tFirst = handshakeEvents[0].AtTime - tLast = handshakeEvents[len(handshakeEvents)-1].AtTime - bootstrapTime = tLast - tFirst - } + t0, t, bootstrapTime := TimestampsFromHandshake(handshakeEvents) return &SingleConnection{ TCPConnect: trace.FirstTCPConnectOrNil(), @@ -182,8 +172,8 @@ func (m *Measurer) connectAndHandshake( Auth: openvpnConfig.OpenVPNOptions().Auth, Compression: string(openvpnConfig.OpenVPNOptions().Compress), }, - T0: tFirst, - T: tLast, + T0: t0, + T: t, Tags: []string{}, TransactionID: index, }, @@ -191,6 +181,20 @@ func (m *Measurer) connectAndHandshake( } } +func TimestampsFromHandshake(events []*vpntracex.Event) (float64, float64, float64) { + var ( + t0 float64 + t float64 + duration float64 + ) + if len(events) > 0 { + t0 = events[0].AtTime + t = events[len(events)-1].AtTime + duration = t - t0 + } + return t0, t, duration +} + // FetchProviderCredentials will extract credentials from the configuration we gathered for a given provider. func (m *Measurer) FetchProviderCredentials( ctx context.Context, diff --git a/internal/experiment/openvpn/openvpn_test.go b/internal/experiment/openvpn/openvpn_test.go index 50c084665f..ae47891af5 100644 --- a/internal/experiment/openvpn/openvpn_test.go +++ b/internal/experiment/openvpn/openvpn_test.go @@ -253,3 +253,18 @@ func TestSuccess(t *testing.T) { t.Fatal(err) } } + +func TestTimestampsFromHandshake(t *testing.T) { + events := []*vpntracex.Event{{AtTime: 0}, {AtTime: 1}, {AtTime: 2}} + t0, tlast, duration := openvpn.TimestampsFromHandshake(events) + if t0 != 0 { + t.Fatal("expected t0 == 0") + } + if tlast != 2.0 { + t.Fatal("expected t0 == 2") + } + if duration != 2 { + t.Fatal("expected duration == 2") + } + +}