xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH OSSTEST] crontab: adjust to remove "." from mg-list-all-branches output
@ 2016-02-18 16:56 Ian Campbell
  2016-02-19 17:52 ` [OSSTEST PATCH] mg-list-all-branches: avoid mistakenly generating `.' in the output Ian Jackson
  0 siblings, 1 reply; 3+ messages in thread
From: Ian Campbell @ 2016-02-18 16:56 UTC (permalink / raw)
  To: ian.jackson, xen-devel; +Cc: Ian Campbell

The regex in mg-list-all-branches assumes that the BRANCHES= will
either be a singleton entry separated from the following command by a hard tab
or a single quoted list of space separated entries, however the
xen-unstable-coverity line is singleton separated from the command by a single
space.

Rather than using a hard tab (which ends up aligning things in an
aesthetically displeasing way) simply quote the single list entry.

This will (I assume) have the effect of removing this line from
http://logs.test-lab.xenproject.org/osstest/results/all-branch-statuses.txt:

.                                     Error!      0    -   n/a        n/a

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
 crontab | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/crontab b/crontab
index 2cfad74..c8d8cac 100755
--- a/crontab
+++ b/crontab
@@ -8,7 +8,7 @@ MAILTO=ian.jackson@citrix.com,ian.campbell@eu.citrix.com
 0		*	* * *		cd testing.git && BRANCHES=xen-unstable-smoke	./cr-for-branches branches -q "./cr-daily-branch --real"
 4-59/30		*	* * *		cd testing.git &&				./cr-for-branches branches -q "./cr-daily-branch --real"
 18		9	* * 1,3,5	cd testing.git && BRANCHES=linux-next		./cr-for-branches branches -w "./cr-daily-branch --real"
-18		9	* * 3,7		cd testing.git && BRANCHES=xen-unstable-coverity ./cr-for-branches branches -w "./cr-daily-branch --real"
+18		9	* * 3,7		cd testing.git && BRANCHES='xen-unstable-coverity' ./cr-for-branches branches -w "./cr-daily-branch --real"
 18		4	* * *		cd testing.git && BRANCHES='linux-linus linux-mingo-tip-master linux-3.0 libvirt rumpuserxen' ./cr-for-branches branches -w "./cr-daily-branch --real"
 6-59/15   	*	* * *		cd testing.git && EXTRA_BRANCHES='linux-linus linux-3.0 rumpuserxen libvirt' ./cr-for-branches bisects -w "./cr-try-bisect --real"
 #8-59/5		*	* * *		cd bisects/adhoc.git &&	with-lock-ex -q data-tree-lock bash -c "./cr-try-bisect-adhoc; exit $?"
-- 
2.6.1

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

* [OSSTEST PATCH] mg-list-all-branches: avoid mistakenly generating `.' in the output
  2016-02-18 16:56 [PATCH OSSTEST] crontab: adjust to remove "." from mg-list-all-branches output Ian Campbell
@ 2016-02-19 17:52 ` Ian Jackson
  2016-02-23 10:25   ` Ian Campbell
  0 siblings, 1 reply; 3+ messages in thread
From: Ian Jackson @ 2016-02-19 17:52 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

The regex in mg-list-all-branches assumes that the BRANCHES= will
either be a singleton entry separated from the following command by a
hard tab or a single quoted list of space separated entries, however
the xen-unstable-coverity line is singleton separated from the command
by a single space.

We could fix this by using a hard tab, but that ends up aligning
things in an aesthetically displeasing way, and relying on hard tabs
is fragile.

Instead, improve the parsing in mg-list-all-branches: break out a
couple of semantically (as well as syntactically) common regexp
elements out into variables, and then provide two regexps: one which
matches shell "assign default values" substitutions, and the other
which matches the ordinary shell assignments.

We use an empty pair of () in the first regexp to make sure that they
both produce the branch name list in $2.  (It would be possible to use
named capture groups but I'm not sure whether all our perls are recent
enough.)

I have verified that the actual difference in output right now is just
to remove the erroneous `.' entry.

Reported-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
 mg-list-all-branches |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/mg-list-all-branches b/mg-list-all-branches
index 87703c7..62d3ff1 100755
--- a/mg-list-all-branches
+++ b/mg-list-all-branches
@@ -7,11 +7,16 @@ use Sort::Versions;
 
 our %branches;
 
+my $branchvar_re = '(?:EXTRA_)?BRANCHES';
+my $branchchr_re = '[-.0-9a-z ]';
+
 foreach my $f (qw(cr-for-branches crontab)) {
     open C, $f or die $!;
     while (<C>) {
-        next unless m/(?:EXTRA_)?BRANCHES[:+]?='?([-.0-9a-z ]+)/;
-        $branches{$_}=1 foreach split /\s+/, $1;
+        next unless
+	    m/\$\{$branchvar_re[:+]?=()($branchchr_re+)\b/ ||
+	    m/$branchvar_re[:+]?=('?)($branchchr_re+?)\1\s/;
+        $branches{$_}=1 foreach split /\s+/, $2;
     }
     close C or die $!;
 }
-- 
1.7.10.4

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

* Re: [OSSTEST PATCH] mg-list-all-branches: avoid mistakenly generating `.' in the output
  2016-02-19 17:52 ` [OSSTEST PATCH] mg-list-all-branches: avoid mistakenly generating `.' in the output Ian Jackson
@ 2016-02-23 10:25   ` Ian Campbell
  0 siblings, 0 replies; 3+ messages in thread
From: Ian Campbell @ 2016-02-23 10:25 UTC (permalink / raw)
  To: Ian Jackson, xen-devel

On Fri, 2016-02-19 at 17:52 +0000, Ian Jackson wrote:
> The regex in mg-list-all-branches assumes that the BRANCHES= will
> either be a singleton entry separated from the following command by a
> hard tab or a single quoted list of space separated entries, however
> the xen-unstable-coverity line is singleton separated from the command
> by a single space.
> 
> We could fix this by using a hard tab, but that ends up aligning
> things in an aesthetically displeasing way, and relying on hard tabs
> is fragile.
> 
> Instead, improve the parsing in mg-list-all-branches: break out a
> couple of semantically (as well as syntactically) common regexp
> elements out into variables, and then provide two regexps: one which
> matches shell "assign default values" substitutions, and the other
> which matches the ordinary shell assignments.
> 
> We use an empty pair of () in the first regexp to make sure that they
> both produce the branch name list in $2.  (It would be possible to use
> named capture groups but I'm not sure whether all our perls are recent
> enough.)
> 
> I have verified that the actual difference in output right now is just
> to remove the erroneous `.' entry.
> 
> Reported-by: Ian Campbell <ian.campbell@citrix.com>
> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
> Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>

LGTM, Acked-by: Ian Campbell <ian.campbell@citrix.com>

> ---
>  mg-list-all-branches |    9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/mg-list-all-branches b/mg-list-all-branches
> index 87703c7..62d3ff1 100755
> --- a/mg-list-all-branches
> +++ b/mg-list-all-branches
> @@ -7,11 +7,16 @@ use Sort::Versions;
>  
>  our %branches;
>  
> +my $branchvar_re = '(?:EXTRA_)?BRANCHES';
> +my $branchchr_re = '[-.0-9a-z ]';
> +
>  foreach my $f (qw(cr-for-branches crontab)) {
>      open C, $f or die $!;
>      while (<C>) {
> -        next unless m/(?:EXTRA_)?BRANCHES[:+]?='?([-.0-9a-z ]+)/;
> -        $branches{$_}=1 foreach split /\s+/, $1;
> +        next unless
> +	    m/\$\{$branchvar_re[:+]?=()($branchchr_re+)\b/ ||
> +	    m/$branchvar_re[:+]?=('?)($branchchr_re+?)\1\s/;
> +        $branches{$_}=1 foreach split /\s+/, $2;
>      }
>      close C or die $!;
>  }

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

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

end of thread, other threads:[~2016-02-23 10:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-18 16:56 [PATCH OSSTEST] crontab: adjust to remove "." from mg-list-all-branches output Ian Campbell
2016-02-19 17:52 ` [OSSTEST PATCH] mg-list-all-branches: avoid mistakenly generating `.' in the output Ian Jackson
2016-02-23 10:25   ` Ian Campbell

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).