platform/tests: workaround test failure for routing rules with older kernels

# NetworkManager-MESSAGE: <warn>  [1553100541.6609] platform-linux: do-add-rule: failure 17 (File exists)
  >>> failing... errno=-17, rule=[routing-rule,0xe9c540,1,+alive,+visible; [6] 4294967295: from all suppress_prefixlen 3 none goto-target 2955537847]
  0:      from all to 73.165.79.8/2 iif nm-test-device 178
  0:      from all 109
  0:      from all tos 0x13 lookup 10004 suppress_prefixlength 0 none
  0:      from all none
  4294967295:     not from all none

  test:ERROR:../src/platform/tests/test-route.c:1607:test_rule: assertion failed (r == 0): (-17 == 0)

Possibly fixed by https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7c8f4e6dc30996bff806285730a0bb4e714d3d52
This commit is contained in:
Thomas Haller 2019-03-20 18:11:29 +01:00
parent d3c60326eb
commit 72bdeebd73

View file

@ -1307,6 +1307,8 @@ _rule_fuzzy_equal (const NMPObject *obj,
rr_co.flow = 0;
if (rr->tos == 0)
rr_co.tos = 0;
rr_co.suppress_prefixlen_inverse = rr->suppress_prefixlen_inverse;
rr_co.suppress_ifgroup_inverse = rr->suppress_ifgroup_inverse;
if (!NM_FLAGS_HAS (rr->flags, FIB_RULE_INVERT))
rr_co.flags &= ~((guint32) FIB_RULE_INVERT);
else