Skip to content

Commit 986a182

Browse files
leoparenteclaude
andcommitted
chore: upgrade catch2 3.8.0→3.14.0; fix test ordering issues
catch2 3.14.0 randomizes test execution order by default (3.8.0 ran in declaration order), exposing pre-existing singleton state issues: - Add MaxmindDB::disable() to reset GeoIP/GeoASN singletons between tests - Reset singletons at start of "Geo enablement" test section - Add IpPort::set_csv_iana_ports() setup to flow test cases that depend on port name resolution but didn't load the CSV themselves Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent af65af3 commit 986a182

4 files changed

Lines changed: 15 additions & 1 deletion

File tree

conanfile.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class Pktvisor(ConanFile):
77
generators = "CMakeToolchain", "CMakeDeps"
88

99
def requirements(self):
10-
self.requires("catch2/3.8.0")
10+
self.requires("catch2/3.14.0")
1111
self.requires("corrade/2020.06")
1212
self.requires("cpp-httplib/0.18.3")
1313
self.requires("docopt.cpp/0.6.3")

src/GeoDB.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ class MaxmindDB
5757
~MaxmindDB();
5858

5959
void enable(const std::string &database_filename, int cache_size = DEFAULT_CACHE_SIZE);
60+
void disable()
61+
{
62+
if (_enabled) {
63+
MMDB_close(&_mmdb);
64+
_enabled = false;
65+
}
66+
_lru_geo_cache.reset();
67+
_lru_asn_cache.reset();
68+
}
6069
bool enabled() const
6170
{
6271
return _enabled;

src/handlers/flow/test_flows.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ TEST_CASE("Parse sflow stream without sampling", "[sflow][flow]")
156156

157157
TEST_CASE("Parse sflow stream with ip filter", "[sflow][flow]")
158158
{
159+
visor::network::IpPort::set_csv_iana_ports("tests/fixtures/pktvisor-port-service-names.csv");
159160

160161
FlowInputStream stream{"sflow-test"};
161162
stream.config_set("flow_type", "sflow");
@@ -196,6 +197,7 @@ TEST_CASE("Parse sflow stream with ip filter", "[sflow][flow]")
196197

197198
TEST_CASE("Parse sflow stream with device filter", "[sflow][flow]")
198199
{
200+
visor::network::IpPort::set_csv_iana_ports("tests/fixtures/pktvisor-port-service-names.csv");
199201

200202
FlowInputStream stream{"sflow-test"};
201203
stream.config_set("flow_type", "sflow");
@@ -240,6 +242,7 @@ TEST_CASE("Parse sflow stream with device filter", "[sflow][flow]")
240242

241243
TEST_CASE("Parse sflow stream with port filter", "[sflow][flow]")
242244
{
245+
visor::network::IpPort::set_csv_iana_ports("tests/fixtures/pktvisor-port-service-names.csv");
243246

244247
FlowInputStream stream{"sflow-test"};
245248
stream.config_set("flow_type", "sflow");

src/tests/test_geoip.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ TEST_CASE("GeoIP", "[geoip]")
1313
{
1414
SECTION("Geo enablement")
1515
{
16+
visor::geo::GeoIP().disable();
17+
visor::geo::GeoASN().disable();
1618
CHECK(!visor::geo::GeoIP().enabled());
1719
CHECK_THROWS(visor::geo::GeoIP().enable("nonexistent.mmdb"));
1820
CHECK(!visor::geo::GeoIP().enabled());

0 commit comments

Comments
 (0)