2011/7/9 Eric Blake <eblake@xxxxxxxxxx>: > On 07/08/2011 07:40 PM, Eric Blake wrote: >>> >>> Instead count from 0 to 39 to fix this. >>> --- >>> tests/test-lib.sh | 6 +++--- >>> 1 files changed, 3 insertions(+), 3 deletions(-) >>> >>> diff --git a/tests/test-lib.sh b/tests/test-lib.sh >>> index 768f96b..9eb6864 100644 >>> --- a/tests/test-lib.sh >>> +++ b/tests/test-lib.sh >>> @@ -54,9 +54,9 @@ test_final() >>> status=$2 >>> >>> if test "$verbose" = "0" ; then >>> - mod=`expr \( $counter + 1 \) % 40` >>> - if test "$mod" != "0" && test "$mod" != "1" ; then >>> - for i in `seq $mod 40` >>> + mod=`expr $counter % 40` >>> + if test "$mod" != "0" ; then >>> + for i in `seq $mod 39` >> >> seq is a GNU-ism, but this is no less portable than what it was before. >> (To be portable to platforms that lack seq, this should really be >> written as: >> >> for i in 0 1 2 3 4 ... 39 > > Why iterate in the first place? > > + if test "$mod" != "0" ; then > + for i in `seq $mod 39` > do > printf " " > > can portably be replaced by: > > printf "%${len}s" "" > > with len computed via expr. Yes, that approach is nicer and also the logic it a bit simpler. Here's a v2. -- Matthias Bolte http://photron.blogspot.com
From ed10abe21a27b2fddce50b0caf3273cbb40dfafd Mon Sep 17 00:00:00 2001 From: Matthias Bolte <matthias.bolte@xxxxxxxxxxxxxx> Date: Sat, 9 Jul 2011 10:40:37 +0200 Subject: [PATCH] tests: Fix compressed test output padding logic The current logic tries to count from 1 to 40 and ignores paddings of 0 and 1 to 40. This doesn't work for counter + 1 mod 40 == 0 like here for counter value 159 TEST: virsh-all ........................................ 40 ........................................ 80 ........................................ 120 ....................................... 159 OK PASS: virsh-all Also seq isn't portable. Therefore, calculate the correct padding length directly and use printf to output it at once. --- tests/test-lib.sh | 9 ++------- 1 files changed, 2 insertions(+), 7 deletions(-) diff --git a/tests/test-lib.sh b/tests/test-lib.sh index 768f96b..527dfda 100644 --- a/tests/test-lib.sh +++ b/tests/test-lib.sh @@ -54,13 +54,8 @@ test_final() status=$2 if test "$verbose" = "0" ; then - mod=`expr \( $counter + 1 \) % 40` - if test "$mod" != "0" && test "$mod" != "1" ; then - for i in `seq $mod 40` - do - printf " " - done - fi + len=`expr 40 - \( $counter % 40 \)` + printf "%${len}s" "" if test "$status" = "0" ; then printf " %-3d OK\n" $counter else -- 1.7.4.1
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list