diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2022-03-18 12:40:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-18 12:40:39 +0100 |
commit | e00e06de9ab8c9c26b4248f673db09bf3667917c (patch) | |
tree | 346a9a31e28d132a1f7a4e461505dc2257c5bd1e /contrib/cirrus/logformatter | |
parent | b0fefb3e8fea73114b7401a098cf32f6443448d3 (diff) | |
parent | d3e3ea843e48375ac41ea3d0ce1e95cb7d39ea03 (diff) | |
download | podman-e00e06de9ab8c9c26b4248f673db09bf3667917c.tar.gz podman-e00e06de9ab8c9c26b4248f673db09bf3667917c.tar.bz2 podman-e00e06de9ab8c9c26b4248f673db09bf3667917c.zip |
Merge pull request #13542 from edsantiago/logformatter_linkto_bats
logformatter: link to bats sources on error
Diffstat (limited to 'contrib/cirrus/logformatter')
-rwxr-xr-x | contrib/cirrus/logformatter | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/contrib/cirrus/logformatter b/contrib/cirrus/logformatter index 43173eaa6..5b8e2f2a1 100755 --- a/contrib/cirrus/logformatter +++ b/contrib/cirrus/logformatter @@ -307,10 +307,18 @@ END_HTML elsif ($line =~ /^#\s#\|\s/) { $css = 'log-esm' } elsif ($line =~ /^#\s/) { $css = 'log' } + # Link to source file. This is ugly: we have to hardcode 'podman' + # and 'test/system' because there's no way to get them from log. + # + # 1 2 2 13 4 43 5 + $line =~ s{(in(\stest)?\s+file\s+\S+/)(\S+\.(bats|bash)),\s+line\s+(\d+)}{$1<a class="codelink" href="https://github.com/containers/podman/blob/$git_commit/test/system/$3#L$5">$3, line $5</a>}; + if ($css) { # Make it linkable, e.g. foo.html#t--00001 - if ($line =~ /^(not\s+)?ok\s+(\d+)/) { + if ($line =~ /^(not\s+)?ok\s+(\d+)\s+(.*)/) { $line = sprintf("<a name='t--%05d'>%s</a>", $2, $line); + + push @{$bats_count{__fail_list}}, [ $2, $3 ] if $1; } $line = "<span class='bats-$css'>$line</span>"; @@ -515,6 +523,15 @@ END_HTML } } + # Grumble. Github only shows the last N lines of the log... which is + # anti-helpful when you want a quick synopsis of what failed. Write a + # summary at the tail, to make it easier for humans to see what went wrong. + if (my $fails = $bats_count{__fail_list}) { + print "\n"; + printf "Failed tests (%d):\n", scalar(@$fails); + printf " - %d %s\n", @$_ for @$fails; + } + # If Cirrus magic envariables are available, write a link to results. # FIXME: it'd be so nice to make this a clickable live link. # |