diff mbox series

[v2,03/15] tests/tcg: Run timeout cmds using --foreground

Message ID 20200604085441.103087-4-kbastian@mail.uni-paderborn.de (mailing list archive)
State New, archived
Headers show
Series tests/tcg: Add TriCore tests | expand

Commit Message

Bastian Koppelmann June 4, 2020, 8:54 a.m. UTC
when trying to run successful short tests from the Makefile timeout would no
terminate. Rather it would wait until the time runs out. Excerpt from the
manpage:

--foreground
    when not running timeout directly from a shell prompt,
    allow COMMAND to read from the TTY and get TTY signals; in this mode, chil‐
    dren of COMMAND will not be timed out

Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
---
 tests/tcg/Makefile.target | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Alex Bennée June 16, 2020, 4:22 p.m. UTC | #1
Bastian Koppelmann <kbastian@mail.uni-paderborn.de> writes:

> when trying to run successful short tests from the Makefile timeout would no
> terminate. Rather it would wait until the time runs out. Excerpt from the
> manpage:

Which tests hang without this change?

>
> --foreground
>     when not running timeout directly from a shell prompt,
>     allow COMMAND to read from the TTY and get TTY signals; in this mode, chil‐
>     dren of COMMAND will not be timed out
>
> Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
> ---
>  tests/tcg/Makefile.target | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
> index b3cff3cad1..423caffa56 100644
> --- a/tests/tcg/Makefile.target
> +++ b/tests/tcg/Makefile.target
> @@ -40,9 +40,10 @@ quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
>  
>  # $1 = test name, $2 = cmd, $3 = desc
>  ifdef CONFIG_USER_ONLY
> -run-test = $(call quiet-command, timeout $(TIMEOUT) $2 > $1.out,"TEST",$3)
> +run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out \
> +	"TEST",$3)

This breaks make check-tcg due to a dropped ,

>  else
> -run-test = $(call quiet-command, timeout $(TIMEOUT) $2,"TEST",$3)
> +run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2,"TEST",$3)
>  endif
>  
>  # $1 = test name, $2 = reference
Bastian Koppelmann June 17, 2020, 6:13 a.m. UTC | #2
On Tue, Jun 16, 2020 at 05:22:42PM +0100, Alex Bennée wrote:
> 
> Bastian Koppelmann <kbastian@mail.uni-paderborn.de> writes:
> 
> > when trying to run successful short tests from the Makefile timeout would no
> > terminate. Rather it would wait until the time runs out. Excerpt from the
> > manpage:
> 
> Which tests hang without this change?

The TriCore tests ;). 

> 
> >
> > --foreground
> >     when not running timeout directly from a shell prompt,
> >     allow COMMAND to read from the TTY and get TTY signals; in this mode, chil‐
> >     dren of COMMAND will not be timed out
> >
> > Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
> > ---
> >  tests/tcg/Makefile.target | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
> > index b3cff3cad1..423caffa56 100644
> > --- a/tests/tcg/Makefile.target
> > +++ b/tests/tcg/Makefile.target
> > @@ -40,9 +40,10 @@ quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
> >  
> >  # $1 = test name, $2 = cmd, $3 = desc
> >  ifdef CONFIG_USER_ONLY
> > -run-test = $(call quiet-command, timeout $(TIMEOUT) $2 > $1.out,"TEST",$3)
> > +run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out \
> > +	"TEST",$3)
> 
> This breaks make check-tcg due to a dropped ,

Whoops

Cheers,
Bastian
Alex Bennée June 17, 2020, 9:59 a.m. UTC | #3
Bastian Koppelmann <kbastian@mail.uni-paderborn.de> writes:

> On Tue, Jun 16, 2020 at 05:22:42PM +0100, Alex Bennée wrote:
>> 
>> Bastian Koppelmann <kbastian@mail.uni-paderborn.de> writes:
>> 
>> > when trying to run successful short tests from the Makefile timeout would no
>> > terminate. Rather it would wait until the time runs out. Excerpt from the
>> > manpage:
>> 
>> Which tests hang without this change?
>
> The TriCore tests ;).

Hmm I wonder why? All the other tests work so is this a function of
output from the test? The softmmu tests for example usually redirect
their output via a chardev device. Tests which require actual input from
the user are skipped (the semiconsole test is MANUAL only).

>
>> 
>> >
>> > --foreground
>> >     when not running timeout directly from a shell prompt,
>> >     allow COMMAND to read from the TTY and get TTY signals; in this mode, chil‐
>> >     dren of COMMAND will not be timed out
>> >
>> > Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
>> > ---
>> >  tests/tcg/Makefile.target | 5 +++--
>> >  1 file changed, 3 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
>> > index b3cff3cad1..423caffa56 100644
>> > --- a/tests/tcg/Makefile.target
>> > +++ b/tests/tcg/Makefile.target
>> > @@ -40,9 +40,10 @@ quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
>> >  
>> >  # $1 = test name, $2 = cmd, $3 = desc
>> >  ifdef CONFIG_USER_ONLY
>> > -run-test = $(call quiet-command, timeout $(TIMEOUT) $2 > $1.out,"TEST",$3)
>> > +run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out \
>> > +	"TEST",$3)
>> 
>> This breaks make check-tcg due to a dropped ,
>
> Whoops
>
> Cheers,
> Bastian
Bastian Koppelmann June 17, 2020, 10:52 a.m. UTC | #4
Hi Alex,

On Wed, Jun 17, 2020 at 10:59:22AM +0100, Alex Bennée wrote:
> 
> Bastian Koppelmann <kbastian@mail.uni-paderborn.de> writes:
> 
> > On Tue, Jun 16, 2020 at 05:22:42PM +0100, Alex Bennée wrote:
> >> 
> >> Bastian Koppelmann <kbastian@mail.uni-paderborn.de> writes:
> >> 
> >> > when trying to run successful short tests from the Makefile timeout would no
> >> > terminate. Rather it would wait until the time runs out. Excerpt from the
> >> > manpage:
> >> 
> >> Which tests hang without this change?
> >
> > The TriCore tests ;).
> 
> Hmm I wonder why? All the other tests work so is this a function of
> output from the test? The softmmu tests for example usually redirect
> their output via a chardev device. Tests which require actual input from
> the user are skipped (the semiconsole test is MANUAL only).
  
I was wondering as well. If you run the test command without --foreground on a
shell, it works. If you run it from make, it times out. Maybe this is just on my
end. I usually run bleeding edge software on my developing machines. I have
timeout 8.32 here.

Cheers,
Bastian
diff mbox series

Patch

diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index b3cff3cad1..423caffa56 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -40,9 +40,10 @@  quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
 
 # $1 = test name, $2 = cmd, $3 = desc
 ifdef CONFIG_USER_ONLY
-run-test = $(call quiet-command, timeout $(TIMEOUT) $2 > $1.out,"TEST",$3)
+run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out \
+	"TEST",$3)
 else
-run-test = $(call quiet-command, timeout $(TIMEOUT) $2,"TEST",$3)
+run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2,"TEST",$3)
 endif
 
 # $1 = test name, $2 = reference