From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH kvm-unit-tests] report: add report_xfail for expected failures Date: Tue, 17 Jun 2014 20:46:48 +0200 Message-ID: <53A08D18.4090309@redhat.com> References: <1403015808-20909-1-git-send-email-drjones@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Andrew Jones , jan.kiszka@siemens.com Return-path: Received: from mail-qa0-f43.google.com ([209.85.216.43]:40863 "EHLO mail-qa0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932657AbaFQSqw (ORCPT ); Tue, 17 Jun 2014 14:46:52 -0400 Received: by mail-qa0-f43.google.com with SMTP id k15so9652387qaq.2 for ; Tue, 17 Jun 2014 11:46:51 -0700 (PDT) In-Reply-To: <1403015808-20909-1-git-send-email-drjones@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Il 17/06/2014 16:36, Andrew Jones ha scritto: > Add report_xfail(), which is report(), but with another condition > allowing it to output PASS/FAIL/XPASS/XFAIL, rather than only > PASS/FAIL. This allows report output to stay more consistent > between systems/configurations that may or may not support all > tests. > > Signed-off-by: Andrew Jones > --- > lib/libcflat.h | 1 + > lib/report.c | 37 +++++++++++++++++++++++++++++-------- > 2 files changed, 30 insertions(+), 8 deletions(-) > > diff --git a/lib/libcflat.h b/lib/libcflat.h > index cb6663d33ef5a..c9577350ec275 100644 > --- a/lib/libcflat.h > +++ b/lib/libcflat.h > @@ -63,5 +63,6 @@ extern long atol(const char *ptr); > #define NULL ((void *)0UL) > > void report(const char *msg_fmt, bool pass, ...); > +void report_xfail(const char *msg_fmt, bool xfail, bool pass, ...); > int report_summary(void); > #endif > diff --git a/lib/report.c b/lib/report.c > index ff562a13c541e..43d7a65ec8812 100644 > --- a/lib/report.c > +++ b/lib/report.c > @@ -5,32 +5,53 @@ > * > * Authors: > * Jan Kiszka > + * Andrew Jones > * > * This work is licensed under the terms of the GNU LGPL, version 2. > */ > > #include "libcflat.h" > > -static unsigned int tests, failures; > +static unsigned int tests, failures, xfailures; > > -void report(const char *msg_fmt, bool pass, ...) > +void va_report_xfail(const char *msg_fmt, bool xfail, bool cond, va_list va) > { > + char *pass = xfail ? "XPASS" : "PASS"; > + char *fail = xfail ? "XFAIL" : "FAIL"; > char buf[2000]; > - va_list va; > > tests++; > - printf("%s: ", pass ? "PASS" : "FAIL"); > - va_start(va, pass); > + printf("%s: ", cond ? pass : fail); > vsnprintf(buf, sizeof(buf), msg_fmt, va); > - va_end(va); > puts(buf); > puts("\n"); > - if (!pass) > + if (xfail && cond) > + failures++; > + else if (xfail) > + xfailures++; > + else if (!cond) > failures++; > } > > +void report(const char *msg_fmt, bool pass, ...) > +{ > + va_list va; > + va_start(va, pass); > + va_report_xfail(msg_fmt, false, pass, va); > + va_end(va); > +} > + > +void report_xfail(const char *msg_fmt, bool xfail, bool pass, ...) > +{ > + va_list va; > + va_start(va, pass); > + va_report_xfail(msg_fmt, xfail, pass, va); > + va_end(va); > +} > + > int report_summary(void) > { > - printf("\nSUMMARY: %d tests, %d failures\n", tests, failures); > + printf("\nSUMMARY: %d tests, %d failures, %d xfailures\n", > + tests, failures, xfailures); > return failures > 0 ? 1 : 0; > } > Looks good, will apply in the next few days. Paolo