Page MenuHomePhabricator

Remove func test code duplication
ClosedPublic

Authored by deadalnix on Jan 18 2018, 02:18.

Details

Summary

Backport of core's PR10169

Depends on D977

From 52e15aa4d067fc4ace12c80be5c82e85c04fcfec :

Adds helper functions to NodeConnCB

This commit adds some helper functions to NodeConnCB which are useful
for many tests:

  • NodeConnCB now keeps track of the number of each message type that

it's received and the most recent message of each type. Many tests
assert on the most recent block, tx or reject message.

  • NodeConnCB now keeps track of its connection state by setting a

connected boolean in on_open() and on_close()

  • NodeConnCB now has wait_for_block, wait_for_getdata,

wait_for_getheaders, wait_for_inv and wait_for_verack methods

I have updated the individual test cases to make sure that there are no
namespace problems that cause them to fail with these new definitions.
Future commits will remove the duplicate code.

From 2a52ae63bfdde948250df1c876dcdd5af99f03b5 :

Remove duplicate method definitions in NodeConnCB subclasses

All Node classes in individual test cases subclass from NodeConnCB. Many
have duplicate definitions for methods that are defined in the base
class. This commit removes those duplicate definitions.

This commit removes ~290 lines of duplicate code.

Test Plan
make check
./test/functional/test_runner.py

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable