Skip to content

Commit

Permalink
Merge #29872: test: Add missing Assert(mock_time_in >= 0s) to SetMock…
Browse files Browse the repository at this point in the history
…Time

fae0db5 refactor: Use chrono type for g_mock_time (MarcoFalke)
fa382d3 test: Add missing Assert(mock_time_in >= 0s) to SetMockTime (MarcoFalke)

Pull request description:

  Seems odd to have the assert in the *deprecated* function, but not in the other.

  Fix this by adding it to the other, and by inlining the deprecated one.

  Also, use chrono type for the global mocktime variable.

ACKs for top commit:
  davidgumberg:
    crACK fae0db5
  stickies-v:
    ACK fae0db5

Tree-SHA512: 630c2917422ff2a7fa307114f95f22ad3c205429ffe36e67f0b2650733e40c876289c1aecebe882a9123d3106db7606bd6eff067ed6e2ecb95765984d3fe8612
  • Loading branch information
fanquake committed Apr 29, 2024
2 parents 4d2d91a + fae0db5 commit 0c45d73
Showing 1 changed file with 6 additions and 10 deletions.
16 changes: 6 additions & 10 deletions src/util/time.cpp
Expand Up @@ -16,11 +16,11 @@

void UninterruptibleSleep(const std::chrono::microseconds& n) { std::this_thread::sleep_for(n); }

static std::atomic<int64_t> nMockTime(0); //!< For testing
static std::atomic<std::chrono::seconds> g_mock_time{}; //!< For testing

NodeClock::time_point NodeClock::now() noexcept
{
const std::chrono::seconds mocktime{nMockTime.load(std::memory_order_relaxed)};
const auto mocktime{g_mock_time.load(std::memory_order_relaxed)};
const auto ret{
mocktime.count() ?
mocktime :
Expand All @@ -29,20 +29,16 @@ NodeClock::time_point NodeClock::now() noexcept
return time_point{ret};
};

void SetMockTime(int64_t nMockTimeIn)
{
Assert(nMockTimeIn >= 0);
nMockTime.store(nMockTimeIn, std::memory_order_relaxed);
}

void SetMockTime(int64_t nMockTimeIn) { SetMockTime(std::chrono::seconds{nMockTimeIn}); }
void SetMockTime(std::chrono::seconds mock_time_in)
{
nMockTime.store(mock_time_in.count(), std::memory_order_relaxed);
Assert(mock_time_in >= 0s);
g_mock_time.store(mock_time_in, std::memory_order_relaxed);
}

std::chrono::seconds GetMockTime()
{
return std::chrono::seconds(nMockTime.load(std::memory_order_relaxed));
return g_mock_time.load(std::memory_order_relaxed);
}

int64_t GetTime() { return GetTime<std::chrono::seconds>().count(); }
Expand Down

0 comments on commit 0c45d73

Please sign in to comment.