| 636 | } |
| 637 | |
| 638 | func testBatchedJSONRPCCalls(t *testing.T, c *rpchttp.HTTP) { |
| 639 | k1, v1, tx1 := MakeTxKV() |
| 640 | k2, v2, tx2 := MakeTxKV() |
| 641 | |
| 642 | batch := c.NewBatch() |
| 643 | r1, err := batch.BroadcastTxCommit(context.Background(), tx1) |
| 644 | require.NoError(t, err) |
| 645 | r2, err := batch.BroadcastTxCommit(context.Background(), tx2) |
| 646 | require.NoError(t, err) |
| 647 | require.Equal(t, 2, batch.Count()) |
| 648 | bresults, err := batch.Send(ctx) |
| 649 | require.NoError(t, err) |
| 650 | require.Len(t, bresults, 2) |
| 651 | require.Equal(t, 0, batch.Count()) |
| 652 | |
| 653 | bresult1, ok := bresults[0].(*ctypes.ResultBroadcastTxCommit) |
| 654 | require.True(t, ok) |
| 655 | require.Equal(t, *bresult1, *r1) |
| 656 | bresult2, ok := bresults[1].(*ctypes.ResultBroadcastTxCommit) |
| 657 | require.True(t, ok) |
| 658 | require.Equal(t, *bresult2, *r2) |
| 659 | apph := tmmath.MaxInt64(bresult1.Height, bresult2.Height) + 1 |
| 660 | |
| 661 | err = client.WaitForHeight(c, apph, nil) |
| 662 | require.NoError(t, err) |
| 663 | |
| 664 | q1, err := batch.ABCIQuery(context.Background(), "/key", k1) |
| 665 | require.NoError(t, err) |
| 666 | q2, err := batch.ABCIQuery(context.Background(), "/key", k2) |
| 667 | require.NoError(t, err) |
| 668 | require.Equal(t, 2, batch.Count()) |
| 669 | qresults, err := batch.Send(ctx) |
| 670 | require.NoError(t, err) |
| 671 | require.Len(t, qresults, 2) |
| 672 | require.Equal(t, 0, batch.Count()) |
| 673 | |
| 674 | qresult1, ok := qresults[0].(*ctypes.ResultABCIQuery) |
| 675 | require.True(t, ok) |
| 676 | require.Equal(t, *qresult1, *q1) |
| 677 | qresult2, ok := qresults[1].(*ctypes.ResultABCIQuery) |
| 678 | require.True(t, ok) |
| 679 | require.Equal(t, *qresult2, *q2) |
| 680 | |
| 681 | require.Equal(t, qresult1.Response.Key, k1) |
| 682 | require.Equal(t, qresult2.Response.Key, k2) |
| 683 | require.Equal(t, qresult1.Response.Value, v1) |
| 684 | require.Equal(t, qresult2.Response.Value, v2) |
| 685 | } |
| 686 | |
| 687 | func TestBatchedJSONRPCCallsCancellation(t *testing.T) { |
| 688 | c := getHTTPClient() |