aboutsummaryrefslogtreecommitdiffstats
path: root/les/handler_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'les/handler_test.go')
-rw-r--r--les/handler_test.go81
1 files changed, 14 insertions, 67 deletions
diff --git a/les/handler_test.go b/les/handler_test.go
index 5cf31b8f5..856a72d53 100644
--- a/les/handler_test.go
+++ b/les/handler_test.go
@@ -46,7 +46,6 @@ func expectResponse(r p2p.MsgReader, msgcode, reqID, bv uint64, data interface{}
}
// Tests that block headers can be retrieved from a remote chain based on user queries.
-func TestGetBlockHeadersLes1(t *testing.T) { testGetBlockHeaders(t, 1) }
func TestGetBlockHeadersLes2(t *testing.T) { testGetBlockHeaders(t, 2) }
func testGetBlockHeaders(t *testing.T, protocol int) {
@@ -174,7 +173,6 @@ func testGetBlockHeaders(t *testing.T, protocol int) {
}
// Tests that block contents can be retrieved from a remote chain based on their hashes.
-func TestGetBlockBodiesLes1(t *testing.T) { testGetBlockBodies(t, 1) }
func TestGetBlockBodiesLes2(t *testing.T) { testGetBlockBodies(t, 2) }
func testGetBlockBodies(t *testing.T, protocol int) {
@@ -249,7 +247,6 @@ func testGetBlockBodies(t *testing.T, protocol int) {
}
// Tests that the contract codes can be retrieved based on account addresses.
-func TestGetCodeLes1(t *testing.T) { testGetCode(t, 1) }
func TestGetCodeLes2(t *testing.T) { testGetCode(t, 2) }
func testGetCode(t *testing.T, protocol int) {
@@ -281,7 +278,6 @@ func testGetCode(t *testing.T, protocol int) {
}
// Tests that the transaction receipts can be retrieved based on hashes.
-func TestGetReceiptLes1(t *testing.T) { testGetReceipt(t, 1) }
func TestGetReceiptLes2(t *testing.T) { testGetReceipt(t, 2) }
func testGetReceipt(t *testing.T, protocol int) {
@@ -307,7 +303,6 @@ func testGetReceipt(t *testing.T, protocol int) {
}
// Tests that trie merkle proofs can be retrieved
-func TestGetProofsLes1(t *testing.T) { testGetProofs(t, 1) }
func TestGetProofsLes2(t *testing.T) { testGetProofs(t, 2) }
func testGetProofs(t *testing.T, protocol int) {
@@ -316,10 +311,7 @@ func testGetProofs(t *testing.T, protocol int) {
defer tearDown()
bc := server.pm.blockchain.(*core.BlockChain)
- var (
- proofreqs []ProofReq
- proofsV1 [][]rlp.RawValue
- )
+ var proofreqs []ProofReq
proofsV2 := light.NewNodeSet()
accounts := []common.Address{testBankAddress, acc1Addr, acc2Addr, {}}
@@ -334,42 +326,24 @@ func testGetProofs(t *testing.T, protocol int) {
Key: crypto.Keccak256(acc[:]),
}
proofreqs = append(proofreqs, req)
-
- switch protocol {
- case 1:
- var proof light.NodeList
- trie.Prove(crypto.Keccak256(acc[:]), 0, &proof)
- proofsV1 = append(proofsV1, proof)
- case 2:
- trie.Prove(crypto.Keccak256(acc[:]), 0, proofsV2)
- }
+ trie.Prove(crypto.Keccak256(acc[:]), 0, proofsV2)
}
}
// Send the proof request and verify the response
- switch protocol {
- case 1:
- cost := server.tPeer.GetRequestCost(GetProofsV1Msg, len(proofreqs))
- sendRequest(server.tPeer.app, GetProofsV1Msg, 42, cost, proofreqs)
- if err := expectResponse(server.tPeer.app, ProofsV1Msg, 42, testBufLimit, proofsV1); err != nil {
- t.Errorf("proofs mismatch: %v", err)
- }
- case 2:
- cost := server.tPeer.GetRequestCost(GetProofsV2Msg, len(proofreqs))
- sendRequest(server.tPeer.app, GetProofsV2Msg, 42, cost, proofreqs)
- if err := expectResponse(server.tPeer.app, ProofsV2Msg, 42, testBufLimit, proofsV2.NodeList()); err != nil {
- t.Errorf("proofs mismatch: %v", err)
- }
+ cost := server.tPeer.GetRequestCost(GetProofsV2Msg, len(proofreqs))
+ sendRequest(server.tPeer.app, GetProofsV2Msg, 42, cost, proofreqs)
+ if err := expectResponse(server.tPeer.app, ProofsV2Msg, 42, testBufLimit, proofsV2.NodeList()); err != nil {
+ t.Errorf("proofs mismatch: %v", err)
}
}
// Tests that CHT proofs can be correctly retrieved.
-func TestGetCHTProofsLes1(t *testing.T) { testGetCHTProofs(t, 1) }
func TestGetCHTProofsLes2(t *testing.T) { testGetCHTProofs(t, 2) }
func testGetCHTProofs(t *testing.T, protocol int) {
config := light.TestServerIndexerConfig
frequency := config.ChtSize
- if protocol == 2 {
+ if protocol == 2 { //qqq
frequency = config.PairChtSize
}
@@ -395,31 +369,13 @@ func testGetCHTProofs(t *testing.T, protocol int) {
key := make([]byte, 8)
binary.BigEndian.PutUint64(key, frequency-1)
- proofsV1 := []ChtResp{{
- Header: header,
- }}
proofsV2 := HelperTrieResps{
AuxData: [][]byte{rlp},
}
- switch protocol {
- case 1:
- root := light.GetChtRoot(server.db, 0, bc.GetHeaderByNumber(frequency-1).Hash())
- trie, _ := trie.New(root, trie.NewDatabase(rawdb.NewTable(server.db, light.ChtTablePrefix)))
-
- var proof light.NodeList
- trie.Prove(key, 0, &proof)
- proofsV1[0].Proof = proof
-
- case 2:
- root := light.GetChtRoot(server.db, (frequency/config.ChtSize)-1, bc.GetHeaderByNumber(frequency-1).Hash())
- trie, _ := trie.New(root, trie.NewDatabase(rawdb.NewTable(server.db, light.ChtTablePrefix)))
- trie.Prove(key, 0, &proofsV2.Proofs)
- }
+ root := light.GetChtRoot(server.db, (frequency/config.ChtSize)-1, bc.GetHeaderByNumber(frequency-1).Hash())
+ trie, _ := trie.New(root, trie.NewDatabase(rawdb.NewTable(server.db, light.ChtTablePrefix)))
+ trie.Prove(key, 0, &proofsV2.Proofs)
// Assemble the requests for the different protocols
- requestsV1 := []ChtReq{{
- ChtNum: frequency / config.ChtSize,
- BlockNum: frequency - 1,
- }}
requestsV2 := []HelperTrieReq{{
Type: htCanonical,
TrieIdx: frequency/config.PairChtSize - 1,
@@ -427,19 +383,10 @@ func testGetCHTProofs(t *testing.T, protocol int) {
AuxReq: auxHeader,
}}
// Send the proof request and verify the response
- switch protocol {
- case 1:
- cost := server.tPeer.GetRequestCost(GetHeaderProofsMsg, len(requestsV1))
- sendRequest(server.tPeer.app, GetHeaderProofsMsg, 42, cost, requestsV1)
- if err := expectResponse(server.tPeer.app, HeaderProofsMsg, 42, testBufLimit, proofsV1); err != nil {
- t.Errorf("proofs mismatch: %v", err)
- }
- case 2:
- cost := server.tPeer.GetRequestCost(GetHelperTrieProofsMsg, len(requestsV2))
- sendRequest(server.tPeer.app, GetHelperTrieProofsMsg, 42, cost, requestsV2)
- if err := expectResponse(server.tPeer.app, HelperTrieProofsMsg, 42, testBufLimit, proofsV2); err != nil {
- t.Errorf("proofs mismatch: %v", err)
- }
+ cost := server.tPeer.GetRequestCost(GetHelperTrieProofsMsg, len(requestsV2))
+ sendRequest(server.tPeer.app, GetHelperTrieProofsMsg, 42, cost, requestsV2)
+ if err := expectResponse(server.tPeer.app, HelperTrieProofsMsg, 42, testBufLimit, proofsV2); err != nil {
+ t.Errorf("proofs mismatch: %v", err)
}
}