GNU bug report logs - #42111
tests/syscalls.scm stumbles on network interface aliases

Previous Next

Package: guix;

Reported by: Marius Bakke <marius <at> gnu.org>

Date: Sun, 28 Jun 2020 15:53:02 UTC

Severity: normal

Done: Marius Bakke <marius <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Marius Bakke <marius <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#42111: closed (tests/syscalls.scm stumbles on network
 interface aliases)
Date: Sun, 28 Jun 2020 21:38:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sun, 28 Jun 2020 23:37:07 +0200
with message-id <87r1tyc1oc.fsf <at> gnu.org>
and subject line Re: bug#42111: tests/syscalls.scm stumbles on network interface aliases
has caused the debbugs.gnu.org bug report #42111,
regarding tests/syscalls.scm stumbles on network interface aliases
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
42111: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=42111
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Marius Bakke <marius <at> gnu.org>
To: bug-guix <at> gnu.org
Subject: tests/syscalls.scm stumbles on network interface aliases
Date: Sun, 28 Jun 2020 17:52:20 +0200
[Message part 3 (text/plain, inline)]
Hello,

The "network-interface-names" test from tests/syscalls.scm fails if a
network interface alias is configured.

I.e. this command:

  ip addr add 127.0.0.2/8 dev lo label lo:lcat

causes the interface to show up in (network-interface-names), but not
(all-network-interface-names), breaking the test.

I could not find a procfs file that displays network aliases, so ISTM
we either need to add syscalls to check IFLA_IFALIAS, or simply ignore
interfaces with a colon (which seems to be required).

This patch does the latter and makes the test succeed:

[diff (text/x-patch, inline)]
diff --git a/tests/syscalls.scm b/tests/syscalls.scm
index 6acaa0b131..7aa16ce3f4 100644
--- a/tests/syscalls.scm
+++ b/tests/syscalls.scm
@@ -382,7 +382,10 @@
      (member "lo" names))))
 
 (test-assert "network-interface-names"
-  (match (network-interface-names)
+  (match (filter (lambda (if)
+                   ;; Ignore interface aliases.
+                   (not (string-contains if ":")))
+                 (network-interface-names))
     (((? string? names) ..1)
      (lset<= string=? names (all-network-interface-names)))))
 
[signature.asc (application/pgp-signature, inline)]
[Message part 6 (message/rfc822, inline)]
From: Marius Bakke <marius <at> gnu.org>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 42111-done <at> debbugs.gnu.org
Subject: Re: bug#42111: tests/syscalls.scm stumbles on network interface
 aliases
Date: Sun, 28 Jun 2020 23:37:07 +0200
[Message part 7 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

>> diff --git a/tests/syscalls.scm b/tests/syscalls.scm
>> index 6acaa0b131..7aa16ce3f4 100644
>> --- a/tests/syscalls.scm
>> +++ b/tests/syscalls.scm
>> @@ -382,7 +382,10 @@
>>       (member "lo" names))))
>>  
>>  (test-assert "network-interface-names"
>> -  (match (network-interface-names)
>> +  (match (filter (lambda (if)
>> +                   ;; Ignore interface aliases.
>
> Perhaps add “since they don’t show up in (all-network-interface-names)”.
>
>> +                   (not (string-contains if ":")))
>> +                 (network-interface-names))
>
> You can use ‘remove’ instead of ‘filter’ + ‘not’.

ah, much clearer with those suggestions, thanks!

Pushed in 5e113cf4424b2746cbf3633cd2106c62b89e5b49.
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 4 years and 327 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.