MCPcopy Create free account
hub / github.com/facebook/time / Test_ReadTXtimestamp

Function Test_ReadTXtimestamp

timestamp/timestamp_linux_test.go:50–90  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

48
49 require.Equal(t, int64(1612028735717200436), res.UnixNano())
50}
51
52func Test_ReadTXtimestamp(t *testing.T) {
53 conn, err := net.ListenUDP("udp", &net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 0})
54 require.Nil(t, err)
55 defer conn.Close()
56
57 connFd, err := ConnFd(conn)
58 require.Nil(t, err)
59
60 err = EnableSWTimestamps(connFd)
61 require.Nil(t, err)
62
63 start := time.Now()
64 txts, attempts, err := ReadTXtimestamp(connFd)
65 duration := time.Since(start)
66 require.Equal(t, time.Time{}, txts)
67 require.Equal(t, defaultTXTS, attempts)
68 errStr := fmt.Sprintf("no TX timestamp found after %d tries", defaultTXTS)
69 require.ErrorContains(t, err, errStr)
70 require.GreaterOrEqual(t, duration, time.Duration(AttemptsTXTS)*TimeoutTXTS)
71
72 oldAttempts, oldTimeout := AttemptsTXTS, TimeoutTXTS
73 t.Cleanup(func() { AttemptsTXTS, TimeoutTXTS = oldAttempts, oldTimeout })
74 AttemptsTXTS = 10
75 TimeoutTXTS = 5 * time.Millisecond
76
77 start = time.Now()
78 txts, attempts, err = ReadTXtimestamp(connFd)
79 duration = time.Since(start)
80 require.Equal(t, time.Time{}, txts)
81 require.Equal(t, 10, attempts)
82 errStr = fmt.Sprintf("no TX timestamp found after %d tries", 10)
83 require.ErrorContains(t, err, errStr)
84 require.GreaterOrEqual(t, duration, time.Duration(AttemptsTXTS)*TimeoutTXTS)
85
86 addr := &net.UDPAddr{IP: net.ParseIP("127.0.0.1"), Port: 12345}
87 _, err = conn.WriteTo([]byte{}, addr)
88 require.Nil(t, err)
89 txts, attempts, err = ReadTXtimestamp(connFd)
90
91 require.NotEqual(t, time.Time{}, txts)
92 require.Equal(t, 1, attempts)
93 require.Nil(t, err)

Callers

nothing calls this directly

Calls 6

ConnFdFunction · 0.85
EnableSWTimestampsFunction · 0.85
ReadTXtimestampFunction · 0.70
CloseMethod · 0.65
WriteToMethod · 0.65
DurationMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…