Creates a provisioner protobuf client that's connected to the server implementation provided.
(t *testing.T, done <-chan struct{}, server provisionerTestServer)
| 1244 | // Creates a provisioner protobuf client that's connected |
| 1245 | // to the server implementation provided. |
| 1246 | func createProvisionerClient(t *testing.T, done <-chan struct{}, server provisionerTestServer) sdkproto.DRPCProvisionerClient { |
| 1247 | t.Helper() |
| 1248 | clientPipe, serverPipe := drpcsdk.MemTransportPipe() |
| 1249 | t.Cleanup(func() { |
| 1250 | _ = clientPipe.Close() |
| 1251 | _ = serverPipe.Close() |
| 1252 | }) |
| 1253 | ctx, cancelFunc := context.WithCancel(context.Background()) |
| 1254 | closed := make(chan struct{}) |
| 1255 | tempDir := t.TempDir() |
| 1256 | go func() { |
| 1257 | defer close(closed) |
| 1258 | _ = provisionersdk.Serve(ctx, &server, &provisionersdk.ServeOptions{ |
| 1259 | Listener: serverPipe, |
| 1260 | Logger: testutil.Logger(t).Named("test-provisioner"), |
| 1261 | WorkDirectory: tempDir, |
| 1262 | }) |
| 1263 | }() |
| 1264 | t.Cleanup(func() { |
| 1265 | cancelFunc() |
| 1266 | <-closed |
| 1267 | select { |
| 1268 | case <-done: |
| 1269 | t.Error("createProvisionerClient cleanup after test was done!") |
| 1270 | default: |
| 1271 | } |
| 1272 | }) |
| 1273 | select { |
| 1274 | case <-done: |
| 1275 | t.Error("called createProvisionerClient after test was done!") |
| 1276 | default: |
| 1277 | } |
| 1278 | return sdkproto.NewDRPCProvisionerClient(clientPipe) |
| 1279 | } |
| 1280 | |
| 1281 | type provisionerTestServer struct { |
| 1282 | init func(s *provisionersdk.Session, r *provisionersdk.InitRequest, canceledOrComplete <-chan struct{}) *sdkproto.InitComplete |
no test coverage detected