diff mbox series

risu: Add test summary

Message ID 20231108162356.36670-1-smitterl@redhat.com (mailing list archive)
State New, archived
Headers show
Series risu: Add test summary | expand

Commit Message

Sebastian Mitterle Nov. 8, 2023, 4:23 p.m. UTC
Currently, a successful test run finishes silently with exit code 0.
The last message on the console is "starting image" which can leave
the user wondering if they executed the commands correctly.

Now add a summary of the number of executed instructions in case
of success. Don't add that message when printing the trace to
stdout (`-t -`).

Tested:
a) master/apprentice mode
b) trace mode to file
c) trace mode to stdout

Suggested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Sebastian Mitterle <smitterl@redhat.com>
---
 risu.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Comments

Thomas Huth Nov. 13, 2023, 5:04 p.m. UTC | #1
On 08/11/2023 17.23, Sebastian Mitterle wrote:
> Currently, a successful test run finishes silently with exit code 0.
> The last message on the console is "starting image" which can leave
> the user wondering if they executed the commands correctly.

Thanks for the patch, I think this is a good idea - it also initially 
puzzled me a couple of times due to the missing feedback.

> Now add a summary of the number of executed instructions in case
> of success. Don't add that message when printing the trace to
> stdout (`-t -`).
> 
> Tested:
> a) master/apprentice mode
> b) trace mode to file
> c) trace mode to stdout
> 
> Suggested-by: Thomas Huth <thuth@redhat.com>
> Signed-off-by: Sebastian Mitterle <smitterl@redhat.com>
> ---
>   risu.c | 12 ++++++++++--
>   1 file changed, 10 insertions(+), 2 deletions(-)
> 
> diff --git a/risu.c b/risu.c
> index 36fc82a..740663a 100644
> --- a/risu.c
> +++ b/risu.c
> @@ -551,6 +551,7 @@ int main(int argc, char **argv)
>       struct option *longopts;
>       char *shortopts;
>       stack_t ss;
> +    int ret;
>   
>       longopts = setup_options(&shortopts);
>   
> @@ -635,8 +636,15 @@ int main(int argc, char **argv)
>       arch_init();
>   
>       if (ismaster) {
> -        return master();
> +        ret = master();
>       } else {
> -        return apprentice();
> +        ret = apprentice();
>       }
> +
> +    if (ret == EXIT_SUCCESS && (!trace || (trace  && strcmp(trace_fn, "-") != 0))) {

There's a superfluous white space here ------------^

Apart from that, I wonder whether the check for trace-to-stdout is really 
necessary, since you print the message to stderr below instead?

> +        fprintf(stderr, "No mismatches found. Executed %zd checkpoints.\n",
> +                signal_count);
> +    }
> +
> +    return ret;
>   }

  Thomas
Peter Maydell Nov. 13, 2023, 5:14 p.m. UTC | #2
On Mon, 13 Nov 2023 at 17:04, Thomas Huth <thuth@redhat.com> wrote:
>
> On 08/11/2023 17.23, Sebastian Mitterle wrote:
> > Currently, a successful test run finishes silently with exit code 0.
> > The last message on the console is "starting image" which can leave
> > the user wondering if they executed the commands correctly.
>
> Thanks for the patch, I think this is a good idea - it also initially
> puzzled me a couple of times due to the missing feedback.
>
> > Now add a summary of the number of executed instructions in case
> > of success. Don't add that message when printing the trace to
> > stdout (`-t -`).
> >
> > Tested:
> > a) master/apprentice mode
> > b) trace mode to file
> > c) trace mode to stdout
> >
> > Suggested-by: Thomas Huth <thuth@redhat.com>
> > Signed-off-by: Sebastian Mitterle <smitterl@redhat.com>
> > ---
> >   risu.c | 12 ++++++++++--
> >   1 file changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/risu.c b/risu.c
> > index 36fc82a..740663a 100644
> > --- a/risu.c
> > +++ b/risu.c
> > @@ -551,6 +551,7 @@ int main(int argc, char **argv)
> >       struct option *longopts;
> >       char *shortopts;
> >       stack_t ss;
> > +    int ret;
> >
> >       longopts = setup_options(&shortopts);
> >
> > @@ -635,8 +636,15 @@ int main(int argc, char **argv)
> >       arch_init();
> >
> >       if (ismaster) {
> > -        return master();
> > +        ret = master();
> >       } else {
> > -        return apprentice();
> > +        ret = apprentice();
> >       }
> > +
> > +    if (ret == EXIT_SUCCESS && (!trace || (trace  && strcmp(trace_fn, "-") != 0))) {
>
> There's a superfluous white space here ------------^
>
> Apart from that, I wonder whether the check for trace-to-stdout is really
> necessary, since you print the message to stderr below instead?

Yes, we print other kinds of progress chatter to stderr and we
don't need to check for trace-to-stdout in those other places.

thanks
-- PMM
diff mbox series

Patch

diff --git a/risu.c b/risu.c
index 36fc82a..740663a 100644
--- a/risu.c
+++ b/risu.c
@@ -551,6 +551,7 @@  int main(int argc, char **argv)
     struct option *longopts;
     char *shortopts;
     stack_t ss;
+    int ret;
 
     longopts = setup_options(&shortopts);
 
@@ -635,8 +636,15 @@  int main(int argc, char **argv)
     arch_init();
 
     if (ismaster) {
-        return master();
+        ret = master();
     } else {
-        return apprentice();
+        ret = apprentice();
     }
+
+    if (ret == EXIT_SUCCESS && (!trace || (trace  && strcmp(trace_fn, "-") != 0))) {
+        fprintf(stderr, "No mismatches found. Executed %zd checkpoints.\n",
+                signal_count);
+    }
+
+    return ret;
 }