| 16 | BOOST_FIXTURE_TEST_SUITE(banman_tests, BasicTestingSetup) |
| 17 | |
| 18 | BOOST_AUTO_TEST_CASE(file) |
| 19 | { |
| 20 | SetMockTime(777s); |
| 21 | const fs::path banlist_path{m_args.GetDataDirBase() / "banlist_test"}; |
| 22 | { |
| 23 | const std::string entries_write{ |
| 24 | "{ \"banned_nets\": [" |
| 25 | " { \"version\": 1, \"ban_created\": 0, \"banned_until\": 778, \"address\": \"aaaaaaaaa\" }," |
| 26 | " { \"version\": 2, \"ban_created\": 0, \"banned_until\": 778, \"address\": \"bbbbbbbbb\" }," |
| 27 | " { \"version\": 1, \"ban_created\": 0, \"banned_until\": 778, \"address\": \"1.0.0.0/8\" }" |
| 28 | "] }", |
| 29 | }; |
| 30 | assert(WriteBinaryFile(banlist_path + ".json", entries_write)); |
| 31 | { |
| 32 | // The invalid entries will be dropped, but the valid one remains |
| 33 | ASSERT_DEBUG_LOG("Dropping entry with unparseable address or subnet (aaaaaaaaa) from ban list"); |
| 34 | ASSERT_DEBUG_LOG("Dropping entry with unknown version (2) from ban list"); |
| 35 | BanMan banman{banlist_path, /*client_interface=*/nullptr, /*default_ban_time=*/0}; |
| 36 | banmap_t entries_read; |
| 37 | banman.GetBanned(entries_read); |
| 38 | assert(entries_read.size() == 1); |
| 39 | } |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | BOOST_AUTO_TEST_SUITE_END() |
nothing calls this directly
no test coverage detected