(t *testing.T)
| 108 | } |
| 109 | |
| 110 | func TestActivatePPSSourceSetPTPPeroutFailure(t *testing.T) { |
| 111 | // Prepare |
| 112 | _, mockDeviceController, finish := SetupMocks(t) |
| 113 | defer finish() |
| 114 | var actualPeroutRequest *PtpPeroutRequest |
| 115 | gomock.InOrder( |
| 116 | mockDeviceController.EXPECT().setPinFunc(gomock.Any(), gomock.Any(), gomock.Any()).Return(fmt.Errorf("error")), |
| 117 | mockDeviceController.EXPECT().File().Return(os.NewFile(3, "mock_file")), |
| 118 | mockDeviceController.EXPECT().Time().Return(time.Unix(1075896000, 500000000), nil), |
| 119 | // If first attempt to set PTPPerout fails |
| 120 | mockDeviceController.EXPECT().setPTPPerout(gomock.Any()).Return(fmt.Errorf("error")), |
| 121 | // Should retry setPTPPerout with backward compatible flag |
| 122 | mockDeviceController.EXPECT().setPTPPerout(gomock.Any()).Return(nil).Do(func(arg *PtpPeroutRequest) { actualPeroutRequest = arg }), |
| 123 | ) |
| 124 | expectedPeroutRequest := &PtpPeroutRequest{ |
| 125 | Index: uint32(0), |
| 126 | Flags: uint32(0x0), |
| 127 | StartOrPhase: PtpClockTime{Sec: 1075896002}, |
| 128 | Period: PtpClockTime{Sec: 1}, |
| 129 | On: PtpClockTime{Nsec: 0}, |
| 130 | } |
| 131 | |
| 132 | // Act |
| 133 | ppsSource, err := ActivatePPSSource(mockDeviceController, 0) |
| 134 | |
| 135 | // Assert |
| 136 | require.NoError(t, err) |
| 137 | require.EqualValues(t, expectedPeroutRequest, actualPeroutRequest, "setPTPPerout parameter mismatch") |
| 138 | require.Equal(t, PPSSet, ppsSource.state) |
| 139 | } |
| 140 | |
| 141 | func TestActivatePPSSourceSetPTPPeroutDoubleFailure(t *testing.T) { |
| 142 | // Prepare |
nothing calls this directly
no test coverage detected
searching dependent graphs…