func runTest( t *testing.T, driver drive.Driver, f func(t *testing.T, apiClient pfs.ApiClient), ) { grpctest.Run( t, testNumServers, func(servers map[string]*grpc.Server) { discoveryClient := discovery.NewMockClient() i := 0 addresses := make([]string, testNumServers) for address := range servers { shards := make([]string, testShardsPerServer) for j := 0; j < testShardsPerServer; j++ { shards[j] = fmt.Sprintf("%d", (i*testShardsPerServer)+j) } _ = discoveryClient.Set(address+"-master", strings.Join(shards, ",")) addresses[i] = address i++ } _ = discoveryClient.Set("all-addresses", strings.Join(addresses, ",")) for address, server := range servers { combinedAPIServer := NewCombinedAPIServer( route.NewSharder( testShardsPerServer*testNumServers, ), route.NewRouter( route.NewDiscoveryAddresser( discoveryClient, ), route.NewDialer(), address, ), driver, ) pfs.RegisterApiServer(server, combinedAPIServer) pfs.RegisterInternalApiServer(server, combinedAPIServer) } }, func(t *testing.T, clientConns map[string]*grpc.ClientConn) { var clientConn *grpc.ClientConn for _, c := range clientConns { clientConn = c break } for _, c := range clientConns { if c != clientConn { _ = c.Close() } } f( t, pfs.NewApiClient( clientConn, ), ) }, ) }
func runTest( t *testing.T, f func(t *testing.T, apiClient pps.ApiClient), ) { storeClient, err := getRethinkClient() require.NoError(t, err) pfstesting.RunTest( t, func(t *testing.T, apiClient pfs.ApiClient, internalApiClient pfs.InternalApiClient) { grpctest.Run( t, testNumServers, func(servers map[string]*grpc.Server) { for _, server := range servers { pps.RegisterApiServer(server, newAPIServer(apiClient, storeClient, timing.NewSystemTimer())) } }, func(t *testing.T, clientConns map[string]*grpc.ClientConn) { var clientConn *grpc.ClientConn for _, c := range clientConns { clientConn = c break } f( t, pps.NewApiClient( clientConn, ), ) }, ) }, ) }
func RunTest( t *testing.T, f func(t *testing.T, apiClient pfs.ApiClient, internalAPIClient pfs.InternalApiClient), ) { discoveryClient, err := getEtcdClient() require.NoError(t, err) grpctest.Run( t, testNumServers, func(servers map[string]*grpc.Server) { registerFunc(getDriver(t), discoveryClient, servers) }, func(t *testing.T, clientConns map[string]*grpc.ClientConn) { var clientConn *grpc.ClientConn for _, c := range clientConns { clientConn = c break } f( t, pfs.NewApiClient( clientConn, ), pfs.NewInternalApiClient( clientConn, ), ) }, ) }