From: "Clément Léger" <cleger@rivosinc.com>
To: Andrew Jones <andrew.jones@linux.dev>,
kvm-riscv@lists.infradead.org, kvm@vger.kernel.org
Cc: atishp@rivosinc.com, akshaybehl231@gmail.com
Subject: Re: [kvm-unit-tests PATCH 2/3] riscv: sbi: Add kfail versions of sbiret_report functions
Date: Fri, 21 Mar 2025 21:17:16 +0100 [thread overview]
Message-ID: <1f900b99-e260-42cc-9e5d-ea4e7a4365ec@rivosinc.com> (raw)
In-Reply-To: <20250321165403.57859-7-andrew.jones@linux.dev>
On 21/03/2025 17:54, Andrew Jones wrote:
> report_kfail is useful for SBI testing to allowing CI to PASS even
> when SBI implementations have known failures. Since sbiret_report
> functions are frequently used by SBI tests, make kfail versions of
> them too.
>
> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
> ---
> riscv/sbi-tests.h | 20 +++++++++++++++-----
> 1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/riscv/sbi-tests.h b/riscv/sbi-tests.h
> index ddfad7fef293..d5c4ae709632 100644
> --- a/riscv/sbi-tests.h
> +++ b/riscv/sbi-tests.h
> @@ -39,7 +39,8 @@
> #include <libcflat.h>
> #include <asm/sbi.h>
>
> -#define __sbiret_report(ret, expected_error, expected_value, has_value, expected_error_name, fmt, ...) ({ \
> +#define __sbiret_report(kfail, ret, expected_error, expected_value, \
> + has_value, expected_error_name, fmt, ...) ({ \
> long ex_err = expected_error; \
> long ex_val = expected_value; \
> bool has_val = !!(has_value); \
> @@ -48,9 +49,9 @@
> bool pass; \
> \
> if (has_val) \
> - pass = report(ch_err && ch_val, fmt, ##__VA_ARGS__); \
> + pass = report_kfail(kfail, ch_err && ch_val, fmt, ##__VA_ARGS__); \
> else \
> - pass = report(ch_err, fmt ": %s", ##__VA_ARGS__, expected_error_name); \
> + pass = report_kfail(kfail, ch_err, fmt ": %s", ##__VA_ARGS__, expected_error_name); \
> \
> if (!pass && has_val) \
> report_info(fmt ": expected (error: %ld, value: %ld), received: (error: %ld, value %ld)", \
> @@ -63,14 +64,23 @@
> })
>
> #define sbiret_report(ret, expected_error, expected_value, ...) \
> - __sbiret_report(ret, expected_error, expected_value, true, #expected_error, __VA_ARGS__)
> + __sbiret_report(false, ret, expected_error, expected_value, true, #expected_error, __VA_ARGS__)
>
> #define sbiret_report_error(ret, expected_error, ...) \
> - __sbiret_report(ret, expected_error, 0, false, #expected_error, __VA_ARGS__)
> + __sbiret_report(false, ret, expected_error, 0, false, #expected_error, __VA_ARGS__)
>
> #define sbiret_check(ret, expected_error, expected_value) \
> sbiret_report(ret, expected_error, expected_value, "check sbi.error and sbi.value")
>
> +#define sbiret_kfail(kfail, ret, expected_error, expected_value, ...) \
> + __sbiret_report(kfail, ret, expected_error, expected_value, true, #expected_error, __VA_ARGS__)
> +
> +#define sbiret_kfail_error(kfail, ret, expected_error, ...) \
> + __sbiret_report(kfail, ret, expected_error, 0, false, #expected_error, __VA_ARGS__)
> +
> +#define sbiret_check_kfail(kfail, ret, expected_error, expected_value) \
> + sbiret_kfail(kfail, ret, expected_error, expected_value, "check sbi.error and sbi.value")
> +
> static inline bool env_or_skip(const char *env)
> {
> if (!getenv(env)) {
Hi Andrew,
I needed that as well in another test so:
Reviewed-by: Clément Léger <cleger@rivosinc.com>
Thanks,
Clément
--
kvm-riscv mailing list
kvm-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv
WARNING: multiple messages have this Message-ID (diff)
From: "Clément Léger" <cleger@rivosinc.com>
To: Andrew Jones <andrew.jones@linux.dev>,
kvm-riscv@lists.infradead.org, kvm@vger.kernel.org
Cc: atishp@rivosinc.com, akshaybehl231@gmail.com
Subject: Re: [kvm-unit-tests PATCH 2/3] riscv: sbi: Add kfail versions of sbiret_report functions
Date: Fri, 21 Mar 2025 21:17:16 +0100 [thread overview]
Message-ID: <1f900b99-e260-42cc-9e5d-ea4e7a4365ec@rivosinc.com> (raw)
In-Reply-To: <20250321165403.57859-7-andrew.jones@linux.dev>
On 21/03/2025 17:54, Andrew Jones wrote:
> report_kfail is useful for SBI testing to allowing CI to PASS even
> when SBI implementations have known failures. Since sbiret_report
> functions are frequently used by SBI tests, make kfail versions of
> them too.
>
> Signed-off-by: Andrew Jones <andrew.jones@linux.dev>
> ---
> riscv/sbi-tests.h | 20 +++++++++++++++-----
> 1 file changed, 15 insertions(+), 5 deletions(-)
>
> diff --git a/riscv/sbi-tests.h b/riscv/sbi-tests.h
> index ddfad7fef293..d5c4ae709632 100644
> --- a/riscv/sbi-tests.h
> +++ b/riscv/sbi-tests.h
> @@ -39,7 +39,8 @@
> #include <libcflat.h>
> #include <asm/sbi.h>
>
> -#define __sbiret_report(ret, expected_error, expected_value, has_value, expected_error_name, fmt, ...) ({ \
> +#define __sbiret_report(kfail, ret, expected_error, expected_value, \
> + has_value, expected_error_name, fmt, ...) ({ \
> long ex_err = expected_error; \
> long ex_val = expected_value; \
> bool has_val = !!(has_value); \
> @@ -48,9 +49,9 @@
> bool pass; \
> \
> if (has_val) \
> - pass = report(ch_err && ch_val, fmt, ##__VA_ARGS__); \
> + pass = report_kfail(kfail, ch_err && ch_val, fmt, ##__VA_ARGS__); \
> else \
> - pass = report(ch_err, fmt ": %s", ##__VA_ARGS__, expected_error_name); \
> + pass = report_kfail(kfail, ch_err, fmt ": %s", ##__VA_ARGS__, expected_error_name); \
> \
> if (!pass && has_val) \
> report_info(fmt ": expected (error: %ld, value: %ld), received: (error: %ld, value %ld)", \
> @@ -63,14 +64,23 @@
> })
>
> #define sbiret_report(ret, expected_error, expected_value, ...) \
> - __sbiret_report(ret, expected_error, expected_value, true, #expected_error, __VA_ARGS__)
> + __sbiret_report(false, ret, expected_error, expected_value, true, #expected_error, __VA_ARGS__)
>
> #define sbiret_report_error(ret, expected_error, ...) \
> - __sbiret_report(ret, expected_error, 0, false, #expected_error, __VA_ARGS__)
> + __sbiret_report(false, ret, expected_error, 0, false, #expected_error, __VA_ARGS__)
>
> #define sbiret_check(ret, expected_error, expected_value) \
> sbiret_report(ret, expected_error, expected_value, "check sbi.error and sbi.value")
>
> +#define sbiret_kfail(kfail, ret, expected_error, expected_value, ...) \
> + __sbiret_report(kfail, ret, expected_error, expected_value, true, #expected_error, __VA_ARGS__)
> +
> +#define sbiret_kfail_error(kfail, ret, expected_error, ...) \
> + __sbiret_report(kfail, ret, expected_error, 0, false, #expected_error, __VA_ARGS__)
> +
> +#define sbiret_check_kfail(kfail, ret, expected_error, expected_value) \
> + sbiret_kfail(kfail, ret, expected_error, expected_value, "check sbi.error and sbi.value")
> +
> static inline bool env_or_skip(const char *env)
> {
> if (!getenv(env)) {
Hi Andrew,
I needed that as well in another test so:
Reviewed-by: Clément Léger <cleger@rivosinc.com>
Thanks,
Clément
next prev parent reply other threads:[~2025-03-21 20:28 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-21 16:54 [kvm-unit-tests PATCH 0/3] riscv: sbi: Ensure we can pass with any opensbi Andrew Jones
2025-03-21 16:54 ` Andrew Jones
2025-03-21 16:54 ` [kvm-unit-tests PATCH 1/3] lib/riscv: Also provide sbiret impl functions Andrew Jones
2025-03-21 16:54 ` Andrew Jones
2025-03-21 20:15 ` Clément Léger
2025-03-21 20:15 ` Clément Léger
2025-03-21 16:54 ` [kvm-unit-tests PATCH 2/3] riscv: sbi: Add kfail versions of sbiret_report functions Andrew Jones
2025-03-21 16:54 ` Andrew Jones
2025-03-21 20:17 ` Clément Léger [this message]
2025-03-21 20:17 ` Clément Léger
2025-03-21 16:54 ` [kvm-unit-tests PATCH 3/3] riscv: sbi: Use kfail for known opensbi failures Andrew Jones
2025-03-21 16:54 ` Andrew Jones
2025-03-21 20:22 ` Clément Léger
2025-03-21 20:22 ` Clément Léger
2025-03-22 7:38 ` Andrew Jones
2025-03-22 7:38 ` Andrew Jones
2025-03-22 10:47 ` [kvm-unit-tests PATCH 0/3] riscv: sbi: Ensure we can pass with any opensbi Andrew Jones
2025-03-22 10:47 ` Andrew Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1f900b99-e260-42cc-9e5d-ea4e7a4365ec@rivosinc.com \
--to=cleger@rivosinc.com \
--cc=akshaybehl231@gmail.com \
--cc=andrew.jones@linux.dev \
--cc=atishp@rivosinc.com \
--cc=kvm-riscv@lists.infradead.org \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.