diff --git a/test/unittests/test_sitnl.cpp b/test/unittests/test_sitnl.cpp index e8cc2143..4865ed5a 100644 --- a/test/unittests/test_sitnl.cpp +++ b/test/unittests/test_sitnl.cpp @@ -242,13 +242,27 @@ namespace unittests std::string dst{"fe80:20c3:cccc:dddd:cccc:dddd:eeee:ffff"}; - ip_route_get(dst, [this, &dst](std::vector &v, const std::string &out, bool &called) { - if (v[0] == dst) + ip_route_get(dst, [this, &dst](std::vector &v1, const std::string &out, bool &called) { + if (v1[0] == dst) { called = true; - v.resize(7); - auto expected = std::vector{dst, "from", "::", "via", gw6, "dev", dev}; - ASSERT_EQ(v, expected) << out; + v1.resize(7); + // iptools 4.15 (Ubuntu 18) + auto expected1 = std::vector{dst, "from", "::", "via", gw6, "dev", dev}; + auto ok1 = (v1 == expected1); + + auto v2 = v1; + v2.resize(5); + // iptools 4.11 (CentOS 7) + auto expected2 = std::vector{dst, "via", gw6, "dev", dev}; + auto ok2 = (v2 == expected2); + + if (!ok1 && !ok2) + { + // this is just a way to print actual value and all expected values + EXPECT_EQ(v1, expected1); + EXPECT_EQ(v2, expected2); + } } }); }