netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment
@ 2018-01-10 15:11 Christian Ehrhardt
  2018-01-10 15:11 ` [PATCH iproute2 v2 1/2] tests: read limited amount from /dev/urandom Christian Ehrhardt
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Christian Ehrhardt @ 2018-01-10 15:11 UTC (permalink / raw)
  To: Netdev; +Cc: Luca Boccassi, Christian Ehrhardt

Hi,
while working on Debian bug [1] and the Ubuntu counterpart of it
I found that the tests can throw a broken pipe warning.

I kept the associated check-and-retry of the length separate to
discuss the changes individually - feel free to squash them on
commit if preferred.

*Updates in v2*
tag with --subject-prefix='PATCH iproute2' to trigger the right
review queues in patchwork as requested by Luca Bocassi.

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879854

Christian Ehrhardt (2):
  tests: read limited amount from /dev/urandom
  tests: make sure rand_dev suffix has 6 chars

 testsuite/lib/generic.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH iproute2 v2 1/2] tests: read limited amount from /dev/urandom
  2018-01-10 15:11 [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment Christian Ehrhardt
@ 2018-01-10 15:11 ` Christian Ehrhardt
  2018-01-10 15:11 ` [PATCH iproute2 v2 2/2] tests: make sure rand_dev suffix has 6 chars Christian Ehrhardt
  2018-01-10 16:31 ` [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment Stephen Hemminger
  2 siblings, 0 replies; 4+ messages in thread
From: Christian Ehrhardt @ 2018-01-10 15:11 UTC (permalink / raw)
  To: Netdev; +Cc: Luca Boccassi, Christian Ehrhardt

In some test environments like e.g. Ubuntu & Debian autopkgtest it
can happen that while generating random device names the pipes
between tr and head are considered dead while processing.
That prints (non fatal) issues like:
  Running ip/link/new_link.t [iproute2-this/4.13.0-17-generic]: tr:
write error: Broken pipe
  tr: write error
  PASS

This only happens if reading an infinite amount of chars with the
read from urandom, so reading a defined amount fixes the issue.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---
 testsuite/lib/generic.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/testsuite/lib/generic.sh b/testsuite/lib/generic.sh
index b7de704..3645ff5 100644
--- a/testsuite/lib/generic.sh
+++ b/testsuite/lib/generic.sh
@@ -87,7 +87,7 @@ ts_qdisc_available()
 
 rand_dev()
 {
-    echo "dev-$(tr -dc "[:alpha:]" < /dev/urandom | head -c 6)"
+    echo "dev-$(head -c 250 /dev/urandom | tr -dc '[:alpha:]' | head -c 6)"
 }
 
 pr_failed()
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH iproute2 v2 2/2] tests: make sure rand_dev suffix has 6 chars
  2018-01-10 15:11 [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment Christian Ehrhardt
  2018-01-10 15:11 ` [PATCH iproute2 v2 1/2] tests: read limited amount from /dev/urandom Christian Ehrhardt
@ 2018-01-10 15:11 ` Christian Ehrhardt
  2018-01-10 16:31 ` [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment Stephen Hemminger
  2 siblings, 0 replies; 4+ messages in thread
From: Christian Ehrhardt @ 2018-01-10 15:11 UTC (permalink / raw)
  To: Netdev; +Cc: Luca Boccassi, Christian Ehrhardt

The change to limit the read size from /dev/urandom is a tradeoff.
Reading too much can trigger an issue, but so it could if the
suggested 250 random chars would not contain enough [:alpha:] chars.
If they contain:
 a) >=6 all is ok
 b) [1-5] the devname would be shorter than expected (non fatal).
 c) 0 things would break

In loops of hundreds of thousands it always was (a) for my, but since
if occuring in a test it might be hard to track what happened avoid
this issue by retrying on the length condition.

Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
---
 testsuite/lib/generic.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/testsuite/lib/generic.sh b/testsuite/lib/generic.sh
index 3645ff5..8cef20f 100644
--- a/testsuite/lib/generic.sh
+++ b/testsuite/lib/generic.sh
@@ -87,7 +87,11 @@ ts_qdisc_available()
 
 rand_dev()
 {
-    echo "dev-$(head -c 250 /dev/urandom | tr -dc '[:alpha:]' | head -c 6)"
+    rnd=""
+    while [ ${#rnd} -ne 6 ]; do
+        rnd="$(head -c 250 /dev/urandom | tr -dc '[:alpha:]' | head -c 6)"
+    done
+    echo "dev-$rnd"
 }
 
 pr_failed()
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment
  2018-01-10 15:11 [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment Christian Ehrhardt
  2018-01-10 15:11 ` [PATCH iproute2 v2 1/2] tests: read limited amount from /dev/urandom Christian Ehrhardt
  2018-01-10 15:11 ` [PATCH iproute2 v2 2/2] tests: make sure rand_dev suffix has 6 chars Christian Ehrhardt
@ 2018-01-10 16:31 ` Stephen Hemminger
  2 siblings, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2018-01-10 16:31 UTC (permalink / raw)
  To: Christian Ehrhardt; +Cc: Netdev, Luca Boccassi

On Wed, 10 Jan 2018 16:11:35 +0100
Christian Ehrhardt <christian.ehrhardt@canonical.com> wrote:

> Hi,
> while working on Debian bug [1] and the Ubuntu counterpart of it
> I found that the tests can throw a broken pipe warning.
> 
> I kept the associated check-and-retry of the length separate to
> discuss the changes individually - feel free to squash them on
> commit if preferred.
> 
> *Updates in v2*
> tag with --subject-prefix='PATCH iproute2' to trigger the right
> review queues in patchwork as requested by Luca Bocassi.
> 
> [1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879854
> 
> Christian Ehrhardt (2):
>   tests: read limited amount from /dev/urandom
>   tests: make sure rand_dev suffix has 6 chars
> 
>  testsuite/lib/generic.sh | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 

Looks good. Applied.
The method of generating a name seems a bit overly complex.
Maybe using something like pwgen would be easier.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-01-10 16:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-10 15:11 [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment Christian Ehrhardt
2018-01-10 15:11 ` [PATCH iproute2 v2 1/2] tests: read limited amount from /dev/urandom Christian Ehrhardt
2018-01-10 15:11 ` [PATCH iproute2 v2 2/2] tests: make sure rand_dev suffix has 6 chars Christian Ehrhardt
2018-01-10 16:31 ` [PATCH iproute2 v2 0/2] tests: fix issues in autopkgtest environment Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).