Merge pull request #3335 from nspcc-dev/TestFailedPreconditionShutdown

rpcsrv: fix TestFailedPreconditionShutdown shutdown
This commit is contained in:
Roman Khimov 2024-03-06 10:24:30 +03:00 committed by GitHub
commit 025bf228a2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 52 additions and 157 deletions

View file

@ -172,6 +172,7 @@ func TestWSClientEvents(t *testing.T) {
return
}
}))
t.Cleanup(srv.Close)
wsc, err := NewWS(context.TODO(), httpURLtoWS(srv.URL), WSOptions{})
require.NoError(t, err)
wsc.getNextRequestID = getTestRequestID
@ -314,6 +315,7 @@ func TestWSClientNonBlockingEvents(t *testing.T) {
return
}
}))
t.Cleanup(srv.Close)
wsc, err := NewWS(context.TODO(), httpURLtoWS(srv.URL), WSOptions{CloseNotificationChannelIfFull: true})
require.NoError(t, err)
wsc.getNextRequestID = getTestRequestID
@ -744,6 +746,7 @@ func TestWSFilteredSubscriptions(t *testing.T) {
ws.Close()
}
}))
t.Cleanup(srv.Close)
wsc, err := NewWS(context.TODO(), httpURLtoWS(srv.URL), WSOptions{})
require.NoError(t, err)
wsc.getNextRequestID = getTestRequestID

View file

@ -65,9 +65,7 @@ import (
)
func TestClient_NEP17(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -109,9 +107,7 @@ func TestClient_NEP17(t *testing.T) {
}
func TestClientRoleManagement(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -161,9 +157,7 @@ func TestClientRoleManagement(t *testing.T) {
}
func TestClientPolicyContract(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -252,9 +246,7 @@ func TestClientPolicyContract(t *testing.T) {
}
func TestClientManagementContract(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -338,9 +330,7 @@ func TestClientManagementContract(t *testing.T) {
}
func TestClientNEOContract(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -467,9 +457,7 @@ func TestClientNEOContract(t *testing.T) {
}
func TestClientNotary(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -544,9 +532,7 @@ func TestClientNotary(t *testing.T) {
}
func TestCalculateNetworkFee_Base(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
const extraFee = 10
var nonce uint32
@ -734,9 +720,7 @@ func TestCalculateNetworkFee_Base(t *testing.T) {
}
func TestCalculateNetworkFee(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
const extraFee = 10
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
@ -862,9 +846,7 @@ func TestCalculateNetworkFee(t *testing.T) {
}
func TestNotaryActor(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -898,9 +880,7 @@ func TestGetRawNotaryPoolAndTransaction(t *testing.T) {
tx1, tx2 *transaction.Transaction
)
chain, rpcSrv, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1024,8 +1004,7 @@ func TestGetRawNotaryPoolAndTransaction(t *testing.T) {
}
func TestPing(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
_, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1038,9 +1017,7 @@ func TestPing(t *testing.T) {
}
func TestCreateNEP17TransferTx(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1115,9 +1092,7 @@ func TestCreateNEP17TransferTx(t *testing.T) {
}
func TestInvokeVerify(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1207,9 +1182,7 @@ func TestInvokeVerify(t *testing.T) {
}
func TestClient_GetNativeContracts(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1221,9 +1194,7 @@ func TestClient_GetNativeContracts(t *testing.T) {
}
func TestClient_NEP11_ND(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1306,9 +1277,7 @@ func TestClient_NEP11_ND(t *testing.T) {
}
func TestClient_NEP11_D(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1390,9 +1359,7 @@ func TestClient_NEP11_D(t *testing.T) {
}
func TestClient_NNS(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1456,9 +1423,7 @@ func TestClient_NNS(t *testing.T) {
}
func TestClient_IteratorSessions(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1600,9 +1565,7 @@ func TestClient_IteratorSessions(t *testing.T) {
}
func TestClient_States(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1627,9 +1590,7 @@ func TestClient_States(t *testing.T) {
}
func TestClientOracle(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -1700,9 +1661,8 @@ func TestClient_Iterator_SessionConfigVariations(t *testing.T) {
}
}
t.Run("default sessions enabled", func(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, false)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initClearServerWithServices(t, false, false, false)
for _, b := range getTestBlocks(t) {
require.NoError(t, chain.AddBlock(b))
}
@ -1741,7 +1701,7 @@ func TestClient_Iterator_SessionConfigVariations(t *testing.T) {
rpcSrv.Start()
handler := http.HandlerFunc(rpcSrv.handleHTTPRequest)
httpSrv := httptest.NewServer(handler)
defer chain.Close()
t.Cleanup(httpSrv.Close)
defer rpcSrv.Shutdown()
for _, b := range getTestBlocks(t) {
require.NoError(t, chain.AddBlock(b))
@ -1755,8 +1715,7 @@ func TestClient_Iterator_SessionConfigVariations(t *testing.T) {
})
t.Run("sessions disabled", func(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
defer chain.Close()
defer rpcSrv.Shutdown()
for _, b := range getTestBlocks(t) {
require.NoError(t, chain.AddBlock(b))
}
@ -1785,9 +1744,7 @@ func TestClient_Iterator_SessionConfigVariations(t *testing.T) {
}
func TestClient_Wait(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
run := func(t *testing.T, ws bool) {
acc, err := wallet.NewAccount()
@ -1904,8 +1861,6 @@ func TestSubClientWait(t *testing.T) {
func testSubClientWait(t *testing.T, local bool) {
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
defer chain.Close()
defer rpcSrv.Shutdown()
c := mkSubsClient(t, rpcSrv, httpSrv, local)
acc, err := wallet.NewAccount()
@ -2007,8 +1962,6 @@ func TestSubClientWaitWithLateSubscription(t *testing.T) {
func testSubClientWaitWithLateSubscription(t *testing.T, local bool) {
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
defer chain.Close()
defer rpcSrv.Shutdown()
c := mkSubsClient(t, rpcSrv, httpSrv, local)
acc, err := wallet.NewAccount()
@ -2038,11 +1991,9 @@ func testSubClientWaitWithLateSubscription(t *testing.T, local bool) {
}
func TestWSClientHandshakeError(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithCustomConfig(t, func(cfg *config.Config) {
_, _, httpSrv := initClearServerWithCustomConfig(t, func(cfg *config.Config) {
cfg.ApplicationConfiguration.RPC.MaxWebSocketClients = -1
})
defer chain.Close()
defer rpcSrv.Shutdown()
url := "ws" + strings.TrimPrefix(httpSrv.URL, "http") + "/ws"
_, err := rpcclient.NewWS(context.Background(), url, rpcclient.WSOptions{})
@ -2055,8 +2006,6 @@ func TestSubClientWaitWithMissedEvent(t *testing.T) {
func testSubClientWaitWithMissedEvent(t *testing.T, local bool) {
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
defer chain.Close()
defer rpcSrv.Shutdown()
c := mkSubsClient(t, rpcSrv, httpSrv, local)
acc, err := wallet.NewAccount()
@ -2137,8 +2086,6 @@ waitloop:
// user side.
func TestWSClient_SubscriptionsCompat(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
defer chain.Close()
defer rpcSrv.Shutdown()
c := mkSubsClient(t, rpcSrv, httpSrv, false)
blocks := getTestBlocks(t)
@ -2254,9 +2201,7 @@ func TestWSClient_SubscriptionsCompat(t *testing.T) {
}
func TestActor_CallWithNilParam(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -2285,9 +2230,7 @@ func TestActor_CallWithNilParam(t *testing.T) {
}
func TestClient_FindStorage(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -2347,9 +2290,7 @@ func TestClient_FindStorage(t *testing.T) {
}
func TestClient_FindStorageHistoric(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -2413,9 +2354,7 @@ func TestClient_FindStorageHistoric(t *testing.T) {
}
func TestClient_GetStorageHistoric(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)
@ -2446,9 +2385,7 @@ func TestClient_GetStorageHistoric(t *testing.T) {
}
func TestClient_GetVersion_Hardforks(t *testing.T) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initServerWithInMemoryChain(t)
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
require.NoError(t, err)

View file

@ -83,6 +83,7 @@ func getUnitTestChainWithCustomConfig(t testing.TB, enableOracle bool, enableNot
}
go chain.Run()
t.Cleanup(chain.Close)
return chain, orc, cfg, logger
}
@ -125,10 +126,11 @@ func wrapUnitTestChain(t testing.TB, chain *core.Blockchain, orc OracleHandler,
errCh := make(chan error, 2)
rpcServer := New(chain, cfg.ApplicationConfiguration.RPC, server, orc, logger, errCh)
rpcServer.Start()
t.Cleanup(rpcServer.Shutdown)
handler := http.HandlerFunc(rpcServer.handleHTTPRequest)
srv := httptest.NewServer(handler)
t.Cleanup(srv.Close)
return chain, &rpcServer, srv
}

View file

@ -2235,19 +2235,15 @@ func TestSubmitOracle(t *testing.T) {
rpc := `{"jsonrpc": "2.0", "id": 1, "method": "submitoracleresponse", "params": %s}`
t.Run("OracleDisabled", func(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithCustomConfig(t, func(c *config.Config) {
_, _, httpSrv := initClearServerWithCustomConfig(t, func(c *config.Config) {
c.ApplicationConfiguration.Oracle.Enabled = false
})
defer chain.Close()
defer rpcSrv.Shutdown()
req := fmt.Sprintf(rpc, "[]")
body := doRPCCallOverHTTP(req, httpSrv.URL, t)
checkErrGetResult(t, body, true, neorpc.ErrOracleDisabledCode)
})
chain, rpcSrv, httpSrv := initClearServerWithServices(t, true, false, false)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initClearServerWithServices(t, true, false, false)
runCase := func(t *testing.T, fail bool, errCode int64, params ...string) func(t *testing.T) {
return func(t *testing.T) {
@ -2283,11 +2279,9 @@ func TestNotaryRequestRPC(t *testing.T) {
rpcTx := `{"jsonrpc": "2.0", "id": 1, "method": "getrawnotarytransaction", "params": ["%s", %d]}`
t.Run("disabled P2PSigExtensions", func(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithCustomConfig(t, func(c *config.Config) {
_, _, httpSrv := initClearServerWithCustomConfig(t, func(c *config.Config) {
c.ProtocolConfiguration.P2PSigExtensions = false
})
defer chain.Close()
defer rpcSrv.Shutdown()
t.Run("submitnotaryrequest", func(t *testing.T) {
body := doRPCCallOverHTTP(fmt.Sprintf(rpcSubmit, "[]"), httpSrv.URL, t)
checkErrGetResult(t, body, true, neorpc.InternalServerErrorCode)
@ -2302,9 +2296,7 @@ func TestNotaryRequestRPC(t *testing.T) {
})
})
chain, rpcSrv, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
submitNotaryRequest := func(t *testing.T, fail bool, errCode int64, params ...string) func(t *testing.T) {
return func(t *testing.T) {
@ -2548,9 +2540,6 @@ func runTestCasesWithExecutor(t *testing.T, e *executor, rpcCall string, method
func testRPCProtocol(t *testing.T, doRPCCall func(string, string, *testing.T) []byte) {
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
defer chain.Close()
defer rpcSrv.Shutdown()
e := &executor{chain: chain, httpSrv: httpSrv}
t.Run("single request", func(t *testing.T) {
rpc := `{"jsonrpc": "2.0", "id": 1, "method": "%s", "params": %s}`
@ -3336,13 +3325,10 @@ func testRPCProtocol(t *testing.T, doRPCCall func(string, string, *testing.T) []
checkErrGetResult(t, body, true, neorpc.ErrInvalidSizeCode)
})
t.Run("mempool OOM", func(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithCustomConfig(t, func(c *config.Config) {
chain, _, httpSrv := initClearServerWithCustomConfig(t, func(c *config.Config) {
c.ProtocolConfiguration.MemPoolSize = 1
})
defer chain.Close()
defer rpcSrv.Shutdown()
// create and push the first (prioritized) transaction with increased networkFee
tx := newTxWithParams(t, chain, opcode.PUSH1, 10, 1, 2, false)
rawTx := encodeBinaryToString(t, tx)
@ -3357,13 +3343,10 @@ func testRPCProtocol(t *testing.T, doRPCCall func(string, string, *testing.T) []
})
})
t.Run("test functions with unsupported states", func(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithCustomConfig(t, func(c *config.Config) {
chain, _, httpSrv := initClearServerWithCustomConfig(t, func(c *config.Config) {
c.ApplicationConfiguration.Ledger.KeepOnlyLatestState = true
})
defer chain.Close()
defer rpcSrv.Shutdown()
e := &executor{chain: chain, httpSrv: httpSrv}
rpc := `{"jsonrpc": "2.0", "id": 1, "method": "%s", "params": %s}`
for method, cases := range rpcFunctionsWithUnsupportedStatesTestCases {
@ -4100,7 +4083,6 @@ func BenchmarkHandleIn(b *testing.B) {
server, err := network.NewServer(serverConfig, chain, chain.GetStateSyncModule(), logger)
require.NoError(b, err)
rpcServer := New(chain, cfg.ApplicationConfiguration.RPC, server, orc, logger, make(chan error))
defer chain.Close()
do := func(b *testing.B, req []byte) {
b.ReportAllocs()
@ -4153,9 +4135,7 @@ func TestFailedPreconditionShutdown(t *testing.T) {
}
func TestErrorResponseContentType(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithServices(t, true, false, false)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, httpSrv := initClearServerWithServices(t, true, false, false)
const (
expectedContentType = "application/json; charset=utf-8"

View file

@ -96,8 +96,6 @@ func TestSubscriptions(t *testing.T) {
var subFeeds = []string{"block_added", "transaction_added", "notification_from_execution", "transaction_executed", "notary_request_event", "header_of_added_block"}
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
defer chain.Close()
defer rpcSrv.Shutdown()
rpcSrv.coreServer.Start()
defer rpcSrv.coreServer.Shutdown()
@ -295,10 +293,7 @@ func TestFilteredSubscriptions(t *testing.T) {
for name, this := range cases {
t.Run(name, func(t *testing.T) {
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
// It's used as an end-of-event-stream, so it's always present.
blockSubID := callSubscribe(t, c, respMsgs, `["block_added"]`)
@ -397,9 +392,6 @@ func TestFilteredNotaryRequestSubscriptions(t *testing.T) {
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
rpcSrv.coreServer.Start()
defer chain.Close()
defer rpcSrv.Shutdown()
// blocks are needed to make GAS deposit for priv0
blocks := getTestBlocks(t)
for _, b := range blocks {
@ -437,10 +429,7 @@ func TestFilteredBlockSubscriptions(t *testing.T) {
// We can't fit this into TestFilteredSubscriptions, because it uses
// blocks as EOF events to wait for.
const numBlocks = 10
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
blockSubID := callSubscribe(t, c, respMsgs, `["block_added", {"primary":3}]`)
@ -475,10 +464,7 @@ func TestFilteredBlockSubscriptions(t *testing.T) {
func TestHeaderOfAddedBlockSubscriptions(t *testing.T) {
const numBlocks = 10
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
headerSubID := callSubscribe(t, c, respMsgs, `["header_of_added_block", {"primary":3}]`)
@ -513,10 +499,7 @@ func TestHeaderOfAddedBlockSubscriptions(t *testing.T) {
func TestMaxSubscriptions(t *testing.T) {
var subIDs = make([]string, 0)
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
for i := 0; i < maxFeeds+1; i++ {
var s string
@ -559,10 +542,7 @@ func TestBadSubUnsub(t *testing.T) {
"bad id": `{"jsonrpc": "2.0", "method": "unsubscribe", "params": ["vasiliy"], "id": 1}`,
"not subscribed id": `{"jsonrpc": "2.0", "method": "unsubscribe", "params": ["7"], "id": 1}`,
}
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
testF := func(t *testing.T, cases map[string]string) func(t *testing.T) {
return func(t *testing.T) {
@ -602,11 +582,9 @@ func TestWSClientsLimit(t *testing.T) {
effectiveClients = 0
}
t.Run(tname, func(t *testing.T) {
chain, rpcSrv, httpSrv := initClearServerWithCustomConfig(t, func(cfg *config.Config) {
_, _, httpSrv := initClearServerWithCustomConfig(t, func(cfg *config.Config) {
cfg.ApplicationConfiguration.RPC.MaxWebSocketClients = limit
})
defer chain.Close()
defer rpcSrv.Shutdown()
dialer := websocket.Dialer{HandshakeTimeout: time.Second}
url := "ws" + strings.TrimPrefix(httpSrv.URL, "http") + "/ws"
@ -647,10 +625,7 @@ func TestSubscriptionOverflow(t *testing.T) {
const blockCnt = notificationBufSize * 5
var receivedMiss bool
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
defer chain.Close()
defer rpcSrv.Shutdown()
chain, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
resp := callWSGetRaw(t, c, `{"jsonrpc": "2.0","method": "subscribe","params": ["block_added"],"id": 1}`, respMsgs)
require.Nil(t, resp.Error)
@ -688,9 +663,7 @@ func TestFilteredSubscriptions_InvalidFilter(t *testing.T) {
params: `["transaction_executed", {"state":"NOTHALT"}]`,
},
}
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
defer chain.Close()
defer rpcSrv.Shutdown()
_, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
for name, this := range cases {
t.Run(name, func(t *testing.T) {