Page MenuHomePhabricator

[tests] Connect peer in outbound_slow_chain_eviction by sending p2p messages
ClosedPublic

Authored by PiRK on Nov 7 2023, 12:08.

Details

Summary

Prior to this commit, the peer was connected, and then the services and
connectivity fields in the CNode object were manually set. Instead, send
p2p version and verack messages, and have net_processing's internal
logic set the state of the node.

This ensures that the node's internal state is consistent with how it
would be set in the live code.

Prior to this commit, dummyNode1.nServices was set to NODE_NONE
which was not a problem since CNode::fClient and
CNode::m_limited_node are default initialised to false. Now that we
are doing the actual version handshake, the values of fClient and
m_limited_node are set during the handshake and cause the test to fail
if we do not set dummyNode1.nServices to a reasonable value
(NODE_NETWORK).

This is a partial backport of core#25514 and core#25591
https://github.com/bitcoin/bitcoin/pull/25591/commits/fa7098947ceff1964812d430e769af6d1ad561bd (for Handshake)
https://github.com/bitcoin/bitcoin/pull/25514/commits/fc5eb528f7d7b33e2f2e443c5610a1551c7f099b

Depends on D14745

Test Plan

ninja check

Diff Detail

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

Event Timeline

PiRK requested review of this revision.Nov 7 2023, 12:08
Fabien added a subscriber: Fabien.
Fabien added inline comments.
src/test/util/net.cpp
20 ↗(On Diff #42972)

Nice comment

52 ↗(On Diff #42972)

You can limit to peerman here, the avalanche processor will do nothing

72 ↗(On Diff #42972)

dito

This revision is now accepted and ready to land.Nov 8 2023, 09:19

rebase, inline the CAddress serialization (D14753) and limit SendMessage to peerman

Tail of the build log:

warning: some crates are on edition 2021 which defaults to `resolver = "2"`, but virtual workspaces default to `resolver = "1"`
note: to keep the current resolver, specify `workspace.resolver = "1"` in the workspace root's manifest
note: to use the edition 2021 resolver, specify `workspace.resolver = "2"` in the workspace root's manifest
    Finished release [optimized] target(s) in 0.11s
[2/12] Running utility command for _cargo-build_chronik-lib
[3/12] Generating ../cargo/build/x86_64-pc-windows-gnu/cxxbridge/chronik-bridge/src/ffi.rs.cc, ../cargo/build/x86_64-pc-windows-gnu/cxxbridge/chronik-lib/src/ffi.rs.cc
Generating cxx bridge files
[3/4] Run CPack packaging tool...
CPack: Create package using NSIS
CPack: Install projects
CPack: - Install directory: /work/doc
CPack: - Install project: bitcoin-abc []
CPack: Create package
CPack: - package: /work/abc-ci-builds/build-win64/bitcoin-abc-0.28.3-x86_64-w64-mingw32.exe generated.
CPack: Create package using ZIP
CPack: Install projects
CPack: - Install directory: /work/doc
CPack: - Install project: bitcoin-abc []
CPack: Create package
CPack: - package: /work/abc-ci-builds/build-win64/bitcoin-abc-0.28.3-x86_64-w64-mingw32.zip generated.
wine: created the configuration directory '/root/.wine'
002c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
002c:fixme:winediag:loader_init wine-staging 8.19 is a testing version containing experimental patches.
002c:fixme:winediag:loader_init Please mention your exact version when filing bug reports on winehq.org.
004c:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.Common-Controls" (6.0.0.0)
004c:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
004c:err:winediag:nodrv_CreateWindow L"The explorer process failed to start."
004c:err:systray:initialize_systray Could not create tray window
004c:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
004c:err:ole:CoMarshalInterface Failed to marshal the interface {6d5140c1-7436-11ce-8034-00aa006009fa}, hr 0x80004002
004c:err:ole:apartment_get_local_server_stream Failed: 0x80004002
002c:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
002c:err:winediag:nodrv_CreateWindow L"Make sure that your X server is running and that $DISPLAY is set correctly."
0044:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0044:err:winediag:nodrv_CreateWindow L"Make sure that your X server is running and that $DISPLAY is set correctly."
0070:err:ntoskrnl:ServiceMain Failed to load L"C:\\windows\\system32\\win32k.sys"
0070:err:ntoskrnl:ServiceMain Failed to load L"C:\\windows\\system32\\drivers\\dxgkrnl.sys"
0070:err:ntoskrnl:ServiceMain Failed to load L"C:\\windows\\system32\\drivers\\dxgmms1.sys"
0088:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0088:err:winediag:nodrv_CreateWindow L"Make sure that your X server is running and that $DISPLAY is set correctly."
0090:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0090:err:winediag:nodrv_CreateWindow L"Make sure that your X server is running and that $DISPLAY is set correctly."
00d8:fixme:msg:pack_message msg 14 (WM_ERASEBKGND) not supported yet
00d8:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
00d8:err:winediag:nodrv_CreateWindow L"Make sure that your X server is running and that $DISPLAY is set correctly."
0100:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0100:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0100:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
0100:fixme:hid:handle_IRP_MN_QUERY_ID Unhandled type 00000005
wine: configuration in L"/root/.wine" has been updated.
0128:fixme:winspool:PerfOpen (null): stub
0128:fixme:winspool:PerfCollect L"Global", 00007FFFFE2FEA98, 00007FFFFE2FEA7C, 00007FFFFE2FEA80: stub
0128:fixme:winspool:PerfClose stub
Running 582 test cases...
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0128:fixme:file:NtLockFile I/O completion on lock not implemented yet
0070:fixme:mountmgr:harddisk_ioctl Unsupported ioctl 90064 (device=9 access=0 func=19 method=0)
0  0070:fixme:mountmgr:harddisk_ioctl Unsupported ioctl 90064 (device=9 access=0 func=19 method=0)
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  Assertion failed: nPreferredDownload == 0, file ../../src/net_processing.cpp, line 1997

Build build-win64 failed with exit code 3