Merge bitcoin/bitcoin#19499: p2p: Make timeout mockable and type safe, speed up test
fadc0c80aep2p: Make timeout mockable and type safe, speed up test (MarcoFalke)fa6d5a238dscripted-diff: Rename m_last_send and m_last_recv (MarcoFalke) Pull request description: Use type-safe time for better code readability/maintainability and mockable time for better testability. This speeds up the p2p_timeout test. This is also a bugfix for intermittent test issues like: https://cirrus-ci.com/task/4769904156999680?command=ci#L2836 Fixes #20654 ACKs for top commit: laanwj: Code review ACKfadc0c80aenaumenkogs: ACKfadc0c80aeTree-SHA512: 28c6544c97f188c8a0fbc80411c74ab74ffd055885322c325aa3d1c404b29c3fd70a737e86083eecae58ef394db1cb56bc122d06cff63742aa89a8e868730c64
This commit is contained in:
12 files changed
+66
-58
No files matched your search
+3
-1
@@ -20,6 +20,7 @@
|
||||
#include <script/script.h>
|
||||
#include <script/standard.h>
|
||||
#include <util/system.h>
|
||||
#include <util/time.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#ifndef NOMINMAX
|
||||
@@ -705,8 +706,9 @@ QString ConnectionTypeToQString(ConnectionType conn_type, bool prepend_direction
|
||||
assert(false);
|
||||
}
|
||||
|
||||
QString formatDurationStr(int secs)
|
||||
QString formatDurationStr(std::chrono::seconds dur)
|
||||
{
|
||||
const auto secs = count_seconds(dur);
|
||||
QStringList strList;
|
||||
int days = secs / 86400;
|
||||
int hours = (secs % 86400) / 3600;
|
||||
|
||||
+1
-1
@@ -221,7 +221,7 @@ namespace GUIUtil
|
||||
QString ConnectionTypeToQString(ConnectionType conn_type, bool prepend_direction);
|
||||
|
||||
/** Convert seconds into a QString with days, hours, mins, secs */
|
||||
QString formatDurationStr(int secs);
|
||||
QString formatDurationStr(std::chrono::seconds dur);
|
||||
|
||||
/** Format CNodeStats.nServices bitmask into a user-readable string */
|
||||
QString formatServicesStr(quint64 mask);
|
||||
|
||||
@@ -1141,7 +1141,7 @@ void RPCConsole::on_sldGraphRange_valueChanged(int value)
|
||||
void RPCConsole::setTrafficGraphRange(int mins)
|
||||
{
|
||||
ui->trafficGraph->setGraphRangeMins(mins);
|
||||
ui->lblGraphRange->setText(GUIUtil::formatDurationStr(mins * 60));
|
||||
ui->lblGraphRange->setText(GUIUtil::formatDurationStr(std::chrono::minutes{mins}));
|
||||
}
|
||||
|
||||
void RPCConsole::updateTrafficStats(quint64 totalBytesIn, quint64 totalBytesOut)
|
||||
@@ -1172,12 +1172,12 @@ void RPCConsole::updateDetailWidget()
|
||||
if (stats->nodeStats.m_bip152_highbandwidth_from) bip152_hb_settings += (bip152_hb_settings.isEmpty() ? ts.from : QLatin1Char('/') + ts.from);
|
||||
if (bip152_hb_settings.isEmpty()) bip152_hb_settings = ts.no;
|
||||
ui->peerHighBandwidth->setText(bip152_hb_settings);
|
||||
const int64_t time_now{GetTimeSeconds()};
|
||||
ui->peerConnTime->setText(GUIUtil::formatDurationStr(time_now - stats->nodeStats.nTimeConnected));
|
||||
ui->peerLastBlock->setText(TimeDurationField(time_now, stats->nodeStats.nLastBlockTime));
|
||||
ui->peerLastTx->setText(TimeDurationField(time_now, stats->nodeStats.nLastTXTime));
|
||||
ui->peerLastSend->setText(TimeDurationField(time_now, stats->nodeStats.nLastSend));
|
||||
ui->peerLastRecv->setText(TimeDurationField(time_now, stats->nodeStats.nLastRecv));
|
||||
const auto time_now{GetTime<std::chrono::seconds>()};
|
||||
ui->peerConnTime->setText(GUIUtil::formatDurationStr(time_now - std::chrono::seconds{stats->nodeStats.nTimeConnected}));
|
||||
ui->peerLastBlock->setText(TimeDurationField(time_now, std::chrono::seconds{stats->nodeStats.nLastBlockTime}));
|
||||
ui->peerLastTx->setText(TimeDurationField(time_now, std::chrono::seconds{stats->nodeStats.nLastTXTime}));
|
||||
ui->peerLastSend->setText(TimeDurationField(time_now, stats->nodeStats.m_last_send));
|
||||
ui->peerLastRecv->setText(TimeDurationField(time_now, stats->nodeStats.m_last_recv));
|
||||
ui->peerBytesSent->setText(GUIUtil::formatBytes(stats->nodeStats.nSendBytes));
|
||||
ui->peerBytesRecv->setText(GUIUtil::formatBytes(stats->nodeStats.nRecvBytes));
|
||||
ui->peerPingTime->setText(GUIUtil::formatPingTime(stats->nodeStats.m_last_ping_time));
|
||||
|
||||
+3
-2
@@ -175,8 +175,9 @@ private:
|
||||
void updateNetworkState();
|
||||
|
||||
/** Helper for the output of a time duration field. Inputs are UNIX epoch times. */
|
||||
QString TimeDurationField(uint64_t time_now, uint64_t time_at_event) const {
|
||||
return time_at_event ? GUIUtil::formatDurationStr(time_now - time_at_event) : tr("Never");
|
||||
QString TimeDurationField(std::chrono::seconds time_now, std::chrono::seconds time_at_event) const
|
||||
{
|
||||
return time_at_event.count() ? GUIUtil::formatDurationStr(time_now - time_at_event) : tr("Never");
|
||||
}
|
||||
|
||||
private Q_SLOTS:
|
||||
|
||||
Reference in new issue
Block a user