Creates a provisionerd protobuf client that's connected to the server implementation provided.
(t *testing.T, done <-chan struct{}, server provisionerDaemonTestServer)
| 1198 | // Creates a provisionerd protobuf client that's connected |
| 1199 | // to the server implementation provided. |
| 1200 | func createProvisionerDaemonClient(t *testing.T, done <-chan struct{}, server provisionerDaemonTestServer) proto.DRPCProvisionerDaemonClient { |
| 1201 | t.Helper() |
| 1202 | if server.failJob == nil { |
| 1203 | // Default to asserting the error from the failure, otherwise |
| 1204 | // it can be lost in tests! |
| 1205 | server.failJob = func(ctx context.Context, job *proto.FailedJob) (*proto.Empty, error) { |
| 1206 | assert.Fail(t, job.Error) |
| 1207 | return &proto.Empty{}, nil |
| 1208 | } |
| 1209 | } |
| 1210 | clientPipe, serverPipe := drpcsdk.MemTransportPipe() |
| 1211 | t.Cleanup(func() { |
| 1212 | _ = clientPipe.Close() |
| 1213 | _ = serverPipe.Close() |
| 1214 | }) |
| 1215 | mux := drpcmux.New() |
| 1216 | err := proto.DRPCRegisterProvisionerDaemon(mux, &server) |
| 1217 | require.NoError(t, err) |
| 1218 | srv := drpcserver.NewWithOptions(mux, drpcserver.Options{ |
| 1219 | Manager: drpcsdk.DefaultDRPCOptions(nil), |
| 1220 | }) |
| 1221 | ctx, cancelFunc := context.WithCancel(context.Background()) |
| 1222 | closed := make(chan struct{}) |
| 1223 | go func() { |
| 1224 | defer close(closed) |
| 1225 | _ = srv.Serve(ctx, serverPipe) |
| 1226 | }() |
| 1227 | t.Cleanup(func() { |
| 1228 | cancelFunc() |
| 1229 | <-closed |
| 1230 | select { |
| 1231 | case <-done: |
| 1232 | t.Error("createProvisionerDaemonClient cleanup after test was done!") |
| 1233 | default: |
| 1234 | } |
| 1235 | }) |
| 1236 | select { |
| 1237 | case <-done: |
| 1238 | t.Error("called createProvisionerDaemonClient after test was done!") |
| 1239 | default: |
| 1240 | } |
| 1241 | return proto.NewDRPCProvisionerDaemonClient(clientPipe) |
| 1242 | } |
| 1243 | |
| 1244 | // Creates a provisioner protobuf client that's connected |
| 1245 | // to the server implementation provided. |
no test coverage detected