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

Function TestActivatePPSSource

phc/pps_source_test.go:59–88  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

57}
58
59func TestActivatePPSSource(t *testing.T) {
60 // Prepare
61 _, mockDeviceController, finish := SetupMocks(t)
62 defer finish()
63 var actualPeroutRequest *PtpPeroutRequest
64 gomock.InOrder(
65 // Should set default pin to PPS
66 mockDeviceController.EXPECT().setPinFunc(uint(4), unix.PTP_PF_PEROUT, uint(0)).Return(nil),
67 // Should call Time once
68 mockDeviceController.EXPECT().Time().Return(time.Unix(1075896000, 500000000), nil),
69 mockDeviceController.EXPECT().setPTPPerout(gomock.Any()).Return(nil).Do(func(arg *PtpPeroutRequest) { actualPeroutRequest = arg }),
70 )
71
72 // Should call setPTPPerout with correct parameters
73 expectedPeroutRequest := &PtpPeroutRequest{
74 Index: uint32(0),
75 Flags: uint32(2),
76 StartOrPhase: PtpClockTime{Sec: 1075896002},
77 Period: PtpClockTime{Sec: 1},
78 On: PtpClockTime{Nsec: 500000000},
79 }
80
81 // Act
82 ppsSource, err := ActivatePPSSource(mockDeviceController, 4)
83
84 // Assert
85 require.NoError(t, err)
86 require.EqualValues(t, expectedPeroutRequest, actualPeroutRequest, "setPTPPerout parameter mismatch")
87 require.Equal(t, PPSSet, ppsSource.state)
88}
89
90func TestActivatePPSSourceIgnoreSetPinFailure(t *testing.T) {
91 // Prepare

Callers

nothing calls this directly

Calls 7

SetupMocksFunction · 0.85
ActivatePPSSourceFunction · 0.85
UnixMethod · 0.80
setPinFuncMethod · 0.65
TimeMethod · 0.65
setPTPPeroutMethod · 0.65
EXPECTMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…