forked from TrueCloudLab/neoneo-go
rpcsrv: add close of blockchain and rpc server in tests
The logs race issue is a result of improper shutdown during testing. Close #3217 Signed-off-by: Ekaterina Pavlova <ekt@morphbits.io>
This commit is contained in:
parent
b7efccc040
commit
46f2da0fb1
4 changed files with 47 additions and 156 deletions
|
@ -65,9 +65,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestClient_NEP17(t *testing.T) {
|
func TestClient_NEP17(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
_, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -109,9 +107,7 @@ func TestClient_NEP17(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientRoleManagement(t *testing.T) {
|
func TestClientRoleManagement(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -161,9 +157,7 @@ func TestClientRoleManagement(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientPolicyContract(t *testing.T) {
|
func TestClientPolicyContract(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -252,9 +246,7 @@ func TestClientPolicyContract(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientManagementContract(t *testing.T) {
|
func TestClientManagementContract(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -338,9 +330,7 @@ func TestClientManagementContract(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientNEOContract(t *testing.T) {
|
func TestClientNEOContract(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -467,9 +457,7 @@ func TestClientNEOContract(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientNotary(t *testing.T) {
|
func TestClientNotary(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -544,9 +532,7 @@ func TestClientNotary(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCalculateNetworkFee_Base(t *testing.T) {
|
func TestCalculateNetworkFee_Base(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
const extraFee = 10
|
const extraFee = 10
|
||||||
var nonce uint32
|
var nonce uint32
|
||||||
|
|
||||||
|
@ -734,9 +720,7 @@ func TestCalculateNetworkFee_Base(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCalculateNetworkFee(t *testing.T) {
|
func TestCalculateNetworkFee(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
const extraFee = 10
|
const extraFee = 10
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
|
@ -862,9 +846,7 @@ func TestCalculateNetworkFee(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNotaryActor(t *testing.T) {
|
func TestNotaryActor(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
|
_, _, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -898,9 +880,7 @@ func TestGetRawNotaryPoolAndTransaction(t *testing.T) {
|
||||||
tx1, tx2 *transaction.Transaction
|
tx1, tx2 *transaction.Transaction
|
||||||
)
|
)
|
||||||
|
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
|
_, _, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1024,8 +1004,7 @@ func TestGetRawNotaryPoolAndTransaction(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPing(t *testing.T) {
|
func TestPing(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
_, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1038,9 +1017,7 @@ func TestPing(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCreateNEP17TransferTx(t *testing.T) {
|
func TestCreateNEP17TransferTx(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1115,9 +1092,7 @@ func TestCreateNEP17TransferTx(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestInvokeVerify(t *testing.T) {
|
func TestInvokeVerify(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1207,9 +1182,7 @@ func TestInvokeVerify(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_GetNativeContracts(t *testing.T) {
|
func TestClient_GetNativeContracts(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1221,9 +1194,7 @@ func TestClient_GetNativeContracts(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_NEP11_ND(t *testing.T) {
|
func TestClient_NEP11_ND(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1306,9 +1277,7 @@ func TestClient_NEP11_ND(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_NEP11_D(t *testing.T) {
|
func TestClient_NEP11_D(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
_, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1390,9 +1359,7 @@ func TestClient_NEP11_D(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_NNS(t *testing.T) {
|
func TestClient_NNS(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
_, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1456,9 +1423,7 @@ func TestClient_NNS(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_IteratorSessions(t *testing.T) {
|
func TestClient_IteratorSessions(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
_, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1600,9 +1565,7 @@ func TestClient_IteratorSessions(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_States(t *testing.T) {
|
func TestClient_States(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1627,9 +1590,7 @@ func TestClient_States(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClientOracle(t *testing.T) {
|
func TestClientOracle(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1700,9 +1661,8 @@ func TestClient_Iterator_SessionConfigVariations(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
t.Run("default sessions enabled", func(t *testing.T) {
|
t.Run("default sessions enabled", func(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, false)
|
chain, _, httpSrv := initClearServerWithServices(t, false, false, false)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
for _, b := range getTestBlocks(t) {
|
for _, b := range getTestBlocks(t) {
|
||||||
require.NoError(t, chain.AddBlock(b))
|
require.NoError(t, chain.AddBlock(b))
|
||||||
}
|
}
|
||||||
|
@ -1741,7 +1701,6 @@ func TestClient_Iterator_SessionConfigVariations(t *testing.T) {
|
||||||
rpcSrv.Start()
|
rpcSrv.Start()
|
||||||
handler := http.HandlerFunc(rpcSrv.handleHTTPRequest)
|
handler := http.HandlerFunc(rpcSrv.handleHTTPRequest)
|
||||||
httpSrv := httptest.NewServer(handler)
|
httpSrv := httptest.NewServer(handler)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
defer rpcSrv.Shutdown()
|
||||||
for _, b := range getTestBlocks(t) {
|
for _, b := range getTestBlocks(t) {
|
||||||
require.NoError(t, chain.AddBlock(b))
|
require.NoError(t, chain.AddBlock(b))
|
||||||
|
@ -1755,8 +1714,7 @@ func TestClient_Iterator_SessionConfigVariations(t *testing.T) {
|
||||||
})
|
})
|
||||||
t.Run("sessions disabled", func(t *testing.T) {
|
t.Run("sessions disabled", func(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
for _, b := range getTestBlocks(t) {
|
for _, b := range getTestBlocks(t) {
|
||||||
require.NoError(t, chain.AddBlock(b))
|
require.NoError(t, chain.AddBlock(b))
|
||||||
}
|
}
|
||||||
|
@ -1785,9 +1743,7 @@ func TestClient_Iterator_SessionConfigVariations(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_Wait(t *testing.T) {
|
func TestClient_Wait(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
run := func(t *testing.T, ws bool) {
|
run := func(t *testing.T, ws bool) {
|
||||||
acc, err := wallet.NewAccount()
|
acc, err := wallet.NewAccount()
|
||||||
|
@ -1904,8 +1860,6 @@ func TestSubClientWait(t *testing.T) {
|
||||||
|
|
||||||
func testSubClientWait(t *testing.T, local bool) {
|
func testSubClientWait(t *testing.T, local bool) {
|
||||||
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c := mkSubsClient(t, rpcSrv, httpSrv, local)
|
c := mkSubsClient(t, rpcSrv, httpSrv, local)
|
||||||
acc, err := wallet.NewAccount()
|
acc, err := wallet.NewAccount()
|
||||||
|
@ -2007,8 +1961,6 @@ func TestSubClientWaitWithLateSubscription(t *testing.T) {
|
||||||
|
|
||||||
func testSubClientWaitWithLateSubscription(t *testing.T, local bool) {
|
func testSubClientWaitWithLateSubscription(t *testing.T, local bool) {
|
||||||
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c := mkSubsClient(t, rpcSrv, httpSrv, local)
|
c := mkSubsClient(t, rpcSrv, httpSrv, local)
|
||||||
acc, err := wallet.NewAccount()
|
acc, err := wallet.NewAccount()
|
||||||
|
@ -2038,11 +1990,9 @@ func testSubClientWaitWithLateSubscription(t *testing.T, local bool) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWSClientHandshakeError(t *testing.T) {
|
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
|
cfg.ApplicationConfiguration.RPC.MaxWebSocketClients = -1
|
||||||
})
|
})
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
url := "ws" + strings.TrimPrefix(httpSrv.URL, "http") + "/ws"
|
url := "ws" + strings.TrimPrefix(httpSrv.URL, "http") + "/ws"
|
||||||
_, err := rpcclient.NewWS(context.Background(), url, rpcclient.WSOptions{})
|
_, err := rpcclient.NewWS(context.Background(), url, rpcclient.WSOptions{})
|
||||||
|
@ -2055,8 +2005,6 @@ func TestSubClientWaitWithMissedEvent(t *testing.T) {
|
||||||
|
|
||||||
func testSubClientWaitWithMissedEvent(t *testing.T, local bool) {
|
func testSubClientWaitWithMissedEvent(t *testing.T, local bool) {
|
||||||
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c := mkSubsClient(t, rpcSrv, httpSrv, local)
|
c := mkSubsClient(t, rpcSrv, httpSrv, local)
|
||||||
acc, err := wallet.NewAccount()
|
acc, err := wallet.NewAccount()
|
||||||
|
@ -2137,8 +2085,6 @@ waitloop:
|
||||||
// user side.
|
// user side.
|
||||||
func TestWSClient_SubscriptionsCompat(t *testing.T) {
|
func TestWSClient_SubscriptionsCompat(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
chain, rpcSrv, httpSrv := initClearServerWithServices(t, false, false, true)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c := mkSubsClient(t, rpcSrv, httpSrv, false)
|
c := mkSubsClient(t, rpcSrv, httpSrv, false)
|
||||||
blocks := getTestBlocks(t)
|
blocks := getTestBlocks(t)
|
||||||
|
@ -2254,9 +2200,7 @@ func TestWSClient_SubscriptionsCompat(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestActor_CallWithNilParam(t *testing.T) {
|
func TestActor_CallWithNilParam(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -2285,9 +2229,7 @@ func TestActor_CallWithNilParam(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_FindStorage(t *testing.T) {
|
func TestClient_FindStorage(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
_, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -2347,9 +2289,7 @@ func TestClient_FindStorage(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_FindStorageHistoric(t *testing.T) {
|
func TestClient_FindStorageHistoric(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -2413,9 +2353,7 @@ func TestClient_FindStorageHistoric(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_GetStorageHistoric(t *testing.T) {
|
func TestClient_GetStorageHistoric(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -2446,9 +2384,7 @@ func TestClient_GetStorageHistoric(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestClient_GetVersion_Hardforks(t *testing.T) {
|
func TestClient_GetVersion_Hardforks(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
_, _, httpSrv := initServerWithInMemoryChain(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
c, err := rpcclient.New(context.Background(), httpSrv.URL, rpcclient.Options{})
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
|
@ -83,6 +83,7 @@ func getUnitTestChainWithCustomConfig(t testing.TB, enableOracle bool, enableNot
|
||||||
}
|
}
|
||||||
|
|
||||||
go chain.Run()
|
go chain.Run()
|
||||||
|
t.Cleanup(chain.Close)
|
||||||
|
|
||||||
return chain, orc, cfg, logger
|
return chain, orc, cfg, logger
|
||||||
}
|
}
|
||||||
|
@ -125,6 +126,7 @@ func wrapUnitTestChain(t testing.TB, chain *core.Blockchain, orc OracleHandler,
|
||||||
errCh := make(chan error, 2)
|
errCh := make(chan error, 2)
|
||||||
rpcServer := New(chain, cfg.ApplicationConfiguration.RPC, server, orc, logger, errCh)
|
rpcServer := New(chain, cfg.ApplicationConfiguration.RPC, server, orc, logger, errCh)
|
||||||
rpcServer.Start()
|
rpcServer.Start()
|
||||||
|
t.Cleanup(rpcServer.Shutdown)
|
||||||
|
|
||||||
handler := http.HandlerFunc(rpcServer.handleHTTPRequest)
|
handler := http.HandlerFunc(rpcServer.handleHTTPRequest)
|
||||||
srv := httptest.NewServer(handler)
|
srv := httptest.NewServer(handler)
|
||||||
|
|
|
@ -2235,19 +2235,15 @@ func TestSubmitOracle(t *testing.T) {
|
||||||
rpc := `{"jsonrpc": "2.0", "id": 1, "method": "submitoracleresponse", "params": %s}`
|
rpc := `{"jsonrpc": "2.0", "id": 1, "method": "submitoracleresponse", "params": %s}`
|
||||||
|
|
||||||
t.Run("OracleDisabled", func(t *testing.T) {
|
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
|
c.ApplicationConfiguration.Oracle.Enabled = false
|
||||||
})
|
})
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
req := fmt.Sprintf(rpc, "[]")
|
req := fmt.Sprintf(rpc, "[]")
|
||||||
body := doRPCCallOverHTTP(req, httpSrv.URL, t)
|
body := doRPCCallOverHTTP(req, httpSrv.URL, t)
|
||||||
checkErrGetResult(t, body, true, neorpc.ErrOracleDisabledCode)
|
checkErrGetResult(t, body, true, neorpc.ErrOracleDisabledCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
chain, rpcSrv, httpSrv := initClearServerWithServices(t, true, false, false)
|
_, _, httpSrv := initClearServerWithServices(t, true, false, false)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
runCase := func(t *testing.T, fail bool, errCode int64, params ...string) func(t *testing.T) {
|
runCase := func(t *testing.T, fail bool, errCode int64, params ...string) func(t *testing.T) {
|
||||||
return 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]}`
|
rpcTx := `{"jsonrpc": "2.0", "id": 1, "method": "getrawnotarytransaction", "params": ["%s", %d]}`
|
||||||
|
|
||||||
t.Run("disabled P2PSigExtensions", func(t *testing.T) {
|
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
|
c.ProtocolConfiguration.P2PSigExtensions = false
|
||||||
})
|
})
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
t.Run("submitnotaryrequest", func(t *testing.T) {
|
t.Run("submitnotaryrequest", func(t *testing.T) {
|
||||||
body := doRPCCallOverHTTP(fmt.Sprintf(rpcSubmit, "[]"), httpSrv.URL, t)
|
body := doRPCCallOverHTTP(fmt.Sprintf(rpcSubmit, "[]"), httpSrv.URL, t)
|
||||||
checkErrGetResult(t, body, true, neorpc.InternalServerErrorCode)
|
checkErrGetResult(t, body, true, neorpc.InternalServerErrorCode)
|
||||||
|
@ -2302,9 +2296,7 @@ func TestNotaryRequestRPC(t *testing.T) {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
|
chain, _, httpSrv := initServerWithInMemoryChainAndServices(t, false, true, false)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
submitNotaryRequest := func(t *testing.T, fail bool, errCode int64, params ...string) func(t *testing.T) {
|
submitNotaryRequest := func(t *testing.T, fail bool, errCode int64, params ...string) func(t *testing.T) {
|
||||||
return 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) {
|
func testRPCProtocol(t *testing.T, doRPCCall func(string, string, *testing.T) []byte) {
|
||||||
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
chain, rpcSrv, httpSrv := initServerWithInMemoryChain(t)
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
e := &executor{chain: chain, httpSrv: httpSrv}
|
e := &executor{chain: chain, httpSrv: httpSrv}
|
||||||
t.Run("single request", func(t *testing.T) {
|
t.Run("single request", func(t *testing.T) {
|
||||||
rpc := `{"jsonrpc": "2.0", "id": 1, "method": "%s", "params": %s}`
|
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)
|
checkErrGetResult(t, body, true, neorpc.ErrInvalidSizeCode)
|
||||||
})
|
})
|
||||||
t.Run("mempool OOM", func(t *testing.T) {
|
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
|
c.ProtocolConfiguration.MemPoolSize = 1
|
||||||
})
|
})
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
// create and push the first (prioritized) transaction with increased networkFee
|
// create and push the first (prioritized) transaction with increased networkFee
|
||||||
tx := newTxWithParams(t, chain, opcode.PUSH1, 10, 1, 2, false)
|
tx := newTxWithParams(t, chain, opcode.PUSH1, 10, 1, 2, false)
|
||||||
rawTx := encodeBinaryToString(t, tx)
|
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) {
|
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
|
c.ApplicationConfiguration.Ledger.KeepOnlyLatestState = true
|
||||||
})
|
})
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
e := &executor{chain: chain, httpSrv: httpSrv}
|
e := &executor{chain: chain, httpSrv: httpSrv}
|
||||||
rpc := `{"jsonrpc": "2.0", "id": 1, "method": "%s", "params": %s}`
|
rpc := `{"jsonrpc": "2.0", "id": 1, "method": "%s", "params": %s}`
|
||||||
for method, cases := range rpcFunctionsWithUnsupportedStatesTestCases {
|
for method, cases := range rpcFunctionsWithUnsupportedStatesTestCases {
|
||||||
|
@ -4100,7 +4083,6 @@ func BenchmarkHandleIn(b *testing.B) {
|
||||||
server, err := network.NewServer(serverConfig, chain, chain.GetStateSyncModule(), logger)
|
server, err := network.NewServer(serverConfig, chain, chain.GetStateSyncModule(), logger)
|
||||||
require.NoError(b, err)
|
require.NoError(b, err)
|
||||||
rpcServer := New(chain, cfg.ApplicationConfiguration.RPC, server, orc, logger, make(chan error))
|
rpcServer := New(chain, cfg.ApplicationConfiguration.RPC, server, orc, logger, make(chan error))
|
||||||
defer chain.Close()
|
|
||||||
|
|
||||||
do := func(b *testing.B, req []byte) {
|
do := func(b *testing.B, req []byte) {
|
||||||
b.ReportAllocs()
|
b.ReportAllocs()
|
||||||
|
@ -4153,9 +4135,7 @@ func TestFailedPreconditionShutdown(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestErrorResponseContentType(t *testing.T) {
|
func TestErrorResponseContentType(t *testing.T) {
|
||||||
chain, rpcSrv, httpSrv := initClearServerWithServices(t, true, false, false)
|
_, _, httpSrv := initClearServerWithServices(t, true, false, false)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
expectedContentType = "application/json; charset=utf-8"
|
expectedContentType = "application/json; charset=utf-8"
|
||||||
|
|
|
@ -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"}
|
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)
|
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
rpcSrv.coreServer.Start()
|
rpcSrv.coreServer.Start()
|
||||||
defer rpcSrv.coreServer.Shutdown()
|
defer rpcSrv.coreServer.Shutdown()
|
||||||
|
@ -295,10 +293,7 @@ func TestFilteredSubscriptions(t *testing.T) {
|
||||||
|
|
||||||
for name, this := range cases {
|
for name, this := range cases {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
chain, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
// It's used as an end-of-event-stream, so it's always present.
|
// It's used as an end-of-event-stream, so it's always present.
|
||||||
blockSubID := callSubscribe(t, c, respMsgs, `["block_added"]`)
|
blockSubID := callSubscribe(t, c, respMsgs, `["block_added"]`)
|
||||||
|
@ -397,9 +392,6 @@ func TestFilteredNotaryRequestSubscriptions(t *testing.T) {
|
||||||
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
rpcSrv.coreServer.Start()
|
rpcSrv.coreServer.Start()
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
// blocks are needed to make GAS deposit for priv0
|
// blocks are needed to make GAS deposit for priv0
|
||||||
blocks := getTestBlocks(t)
|
blocks := getTestBlocks(t)
|
||||||
for _, b := range blocks {
|
for _, b := range blocks {
|
||||||
|
@ -437,10 +429,7 @@ func TestFilteredBlockSubscriptions(t *testing.T) {
|
||||||
// We can't fit this into TestFilteredSubscriptions, because it uses
|
// We can't fit this into TestFilteredSubscriptions, because it uses
|
||||||
// blocks as EOF events to wait for.
|
// blocks as EOF events to wait for.
|
||||||
const numBlocks = 10
|
const numBlocks = 10
|
||||||
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
chain, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
blockSubID := callSubscribe(t, c, respMsgs, `["block_added", {"primary":3}]`)
|
blockSubID := callSubscribe(t, c, respMsgs, `["block_added", {"primary":3}]`)
|
||||||
|
|
||||||
|
@ -475,10 +464,7 @@ func TestFilteredBlockSubscriptions(t *testing.T) {
|
||||||
|
|
||||||
func TestHeaderOfAddedBlockSubscriptions(t *testing.T) {
|
func TestHeaderOfAddedBlockSubscriptions(t *testing.T) {
|
||||||
const numBlocks = 10
|
const numBlocks = 10
|
||||||
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
chain, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
headerSubID := callSubscribe(t, c, respMsgs, `["header_of_added_block", {"primary":3}]`)
|
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) {
|
func TestMaxSubscriptions(t *testing.T) {
|
||||||
var subIDs = make([]string, 0)
|
var subIDs = make([]string, 0)
|
||||||
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
_, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
for i := 0; i < maxFeeds+1; i++ {
|
for i := 0; i < maxFeeds+1; i++ {
|
||||||
var s string
|
var s string
|
||||||
|
@ -559,10 +542,7 @@ func TestBadSubUnsub(t *testing.T) {
|
||||||
"bad id": `{"jsonrpc": "2.0", "method": "unsubscribe", "params": ["vasiliy"], "id": 1}`,
|
"bad id": `{"jsonrpc": "2.0", "method": "unsubscribe", "params": ["vasiliy"], "id": 1}`,
|
||||||
"not subscribed id": `{"jsonrpc": "2.0", "method": "unsubscribe", "params": ["7"], "id": 1}`,
|
"not subscribed id": `{"jsonrpc": "2.0", "method": "unsubscribe", "params": ["7"], "id": 1}`,
|
||||||
}
|
}
|
||||||
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
_, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
testF := func(t *testing.T, cases map[string]string) func(t *testing.T) {
|
testF := func(t *testing.T, cases map[string]string) func(t *testing.T) {
|
||||||
return func(t *testing.T) {
|
return func(t *testing.T) {
|
||||||
|
@ -602,11 +582,9 @@ func TestWSClientsLimit(t *testing.T) {
|
||||||
effectiveClients = 0
|
effectiveClients = 0
|
||||||
}
|
}
|
||||||
t.Run(tname, func(t *testing.T) {
|
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
|
cfg.ApplicationConfiguration.RPC.MaxWebSocketClients = limit
|
||||||
})
|
})
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
dialer := websocket.Dialer{HandshakeTimeout: time.Second}
|
dialer := websocket.Dialer{HandshakeTimeout: time.Second}
|
||||||
url := "ws" + strings.TrimPrefix(httpSrv.URL, "http") + "/ws"
|
url := "ws" + strings.TrimPrefix(httpSrv.URL, "http") + "/ws"
|
||||||
|
@ -647,10 +625,7 @@ func TestSubscriptionOverflow(t *testing.T) {
|
||||||
const blockCnt = notificationBufSize * 5
|
const blockCnt = notificationBufSize * 5
|
||||||
var receivedMiss bool
|
var receivedMiss bool
|
||||||
|
|
||||||
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
chain, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
|
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
resp := callWSGetRaw(t, c, `{"jsonrpc": "2.0","method": "subscribe","params": ["block_added"],"id": 1}`, respMsgs)
|
resp := callWSGetRaw(t, c, `{"jsonrpc": "2.0","method": "subscribe","params": ["block_added"],"id": 1}`, respMsgs)
|
||||||
require.Nil(t, resp.Error)
|
require.Nil(t, resp.Error)
|
||||||
|
@ -688,9 +663,7 @@ func TestFilteredSubscriptions_InvalidFilter(t *testing.T) {
|
||||||
params: `["transaction_executed", {"state":"NOTHALT"}]`,
|
params: `["transaction_executed", {"state":"NOTHALT"}]`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
chain, rpcSrv, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
_, _, c, respMsgs, finishedFlag := initCleanServerAndWSClient(t)
|
||||||
defer chain.Close()
|
|
||||||
defer rpcSrv.Shutdown()
|
|
||||||
|
|
||||||
for name, this := range cases {
|
for name, this := range cases {
|
||||||
t.Run(name, func(t *testing.T) {
|
t.Run(name, func(t *testing.T) {
|
||||||
|
|
Loading…
Reference in a new issue