(t *testing.T)
| 57 | } |
| 58 | |
| 59 | func 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 | |
| 90 | func TestActivatePPSSourceIgnoreSetPinFailure(t *testing.T) { |
| 91 | // Prepare |
nothing calls this directly
no test coverage detected
searching dependent graphs…