[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] automation: restore CR filtering



On Mon, 19 Aug 2024, Anthony PERARD wrote:
> On Mon, Aug 19, 2024 at 09:21:22AM +0200, Michal Orzel wrote:
> > On 17/08/2024 01:46, Stefano Stabellini wrote:
> > > diff --git a/automation/scripts/qemu-xtf-dom0less-arm64.sh 
> > > b/automation/scripts/qemu-xtf-dom0less-arm64.sh
> > > index 0666f6363e..ed44aab0f0 100755
> > > --- a/automation/scripts/qemu-xtf-dom0less-arm64.sh
> > > +++ b/automation/scripts/qemu-xtf-dom0less-arm64.sh
> > > @@ -65,4 +65,4 @@ export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 
> > > boot.scr; source 0x4000000
> > >  export QEMU_LOG="smoke.serial"
> > >  export PASSED="${passed}"
> > > 
> > > -./automation/scripts/qemu-key.exp
> > > +./automation/scripts/qemu-key.exp | sed 's/\r//'
> > 
> > I compared 3 pipelines:
> > 1) one before c36efb7fcea6 
> > (https://gitlab.com/xen-project/hardware/xen/-/jobs/7566986885)
> > 2) one after c36efb7fcea6 
> > (https://gitlab.com/xen-project/hardware/xen/-/jobs/7603830706)
> > 3) one with this fix 
> > (https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/7603783403)
> > 
> > In 1), there is Xen log + Linux log in Gitlab web page
> > In 2), there is no log at all
> > In 3), there is only Xen log visible
> 
> It's nice that you can select uboot/Xen logs or Linux logs based on the
> number of '\r' at the end of a line (output cat -A):
>     U-Boot 2023.01+dfsg-2+deb12u1 (Apr 18 2024 - 22:00:21 +0000)^M^M$
>     (XEN) [    0.013864] Xen version 4.20-unstable (root@) (gcc (Alpine 
> 12.2.1_git20220924-r10) 12.2.1 20220924) debug=n Sat Aug 17 00:54:57 UTC 
> 2024^M^M$
>     [    0.000000] Booting Linux on physical CPU 0x0000000000 
> [0x411fd070]^M^M^M$
> 
> But to display to GitLab's job logs, we want: sed 's/\r\+$//'
> 
> Also, do you have to edit every single script to overcome a shortcoming
> from the "expect" script? Can't you write a bit of Tcl and edit the line
> in the script instead?

The sed route is not perfect but it works :-)

I did try using expect but the logs were mangled. I think I missed that
there can be multilple \r. I managed to get close to the wanted behavior
with the below, but the Xen logs are still missing and I don't know why. 

https://gitlab.com/xen-project/people/sstabellini/xen/-/jobs/7617161552

diff --git a/automation/scripts/qemu-key.exp b/automation/scripts/qemu-key.exp
index 35eb903a31..38061f2deb 100755
--- a/automation/scripts/qemu-key.exp
+++ b/automation/scripts/qemu-key.exp
@@ -9,7 +9,8 @@ match_max 10000
 eval spawn $env(QEMU_CMD)
 
 expect_after {
-    -re "(.*)\r" {
+    -re "(.*)\r+$" {
+        puts $expect_out(1,string)
         exp_continue
     }
     timeout {send_error "ERROR-Timeout!\n"; exit 1}



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.