public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH v2] tst_test_macros.h: Add TST_EXP_VAL macro
@ 2021-08-30  7:09 zhanglianjie
  2021-08-30  9:55 ` Li Wang
  2021-08-30 14:17 ` Cyril Hrubis
  0 siblings, 2 replies; 3+ messages in thread
From: zhanglianjie @ 2021-08-30  7:09 UTC (permalink / raw)
  To: ltp

Add TST_EXP_VAL to determine whether the return value
is equal to the given value.

Signed-off-by: zhanglianjie <zhanglianjie@uniontech.com>

diff --git a/include/tst_test_macros.h b/include/tst_test_macros.h
index 50598aa15..0ccc01f49 100644
--- a/include/tst_test_macros.h
+++ b/include/tst_test_macros.h
@@ -132,6 +132,34 @@ extern void *TST_RET_PTR;
 			TST_MSG_(TPASS, " passed", #SCALL, ##__VA_ARGS__);     \
 	} while (0)                                                            \

+
+#define TST_EXP_VAL_SILENT_(SCALL, SSCALL, VAL, ...)                           \
+	do {                                                                   \
+		TEST(SCALL);                                                   \
+		                                                               \
+		TST_PASS = 0;                                                  \
+		                                                               \
+		if (TST_RET != VAL) {                                          \
+			TST_MSGP_(TFAIL | TTERRNO, " retval not %ld",          \
+			          (long )VAL, SSCALL, ##__VA_ARGS__);          \
+			break;                                                 \
+		}                                                              \
+		                                                               \
+		TST_PASS = 1;                                                  \
+		                                                               \
+	} while (0)
+
+#define TST_EXP_VAL_SILENT(SCALL, VAL, ...) TST_EXP_VAL_SILENT_(SCALL, #SCALL, VAL, ##__VA_ARGS__)
+
+#define TST_EXP_VAL(SCALL, VAL, ...)                                           \
+	do {                                                                   \
+		TST_EXP_VAL_SILENT(SCALL, VAL, ##__VA_ARGS__);                 \
+		                                                               \
+		if (TST_PASS)                                                  \
+			TST_MSG_(TPASS, " passed", #SCALL, ##__VA_ARGS__);     \
+			                                                       \
+	} while(0)
+
 #define TST_EXP_FAIL_(PASS_COND, SCALL, SSCALL, ERRNO, ...)                    \
 	do {                                                                   \
 		TEST(SCALL);                                                   \
--
2.20.1




^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [LTP] [PATCH v2] tst_test_macros.h: Add TST_EXP_VAL macro
  2021-08-30  7:09 [LTP] [PATCH v2] tst_test_macros.h: Add TST_EXP_VAL macro zhanglianjie
@ 2021-08-30  9:55 ` Li Wang
  2021-08-30 14:17 ` Cyril Hrubis
  1 sibling, 0 replies; 3+ messages in thread
From: Li Wang @ 2021-08-30  9:55 UTC (permalink / raw)
  To: ltp

On Mon, Aug 30, 2021 at 3:10 PM zhanglianjie <zhanglianjie@uniontech.com>
wrote:

> Add TST_EXP_VAL to determine whether the return value
> is equal to the given value.
>
> Signed-off-by: zhanglianjie <zhanglianjie@uniontech.com>
>
 Reviewed-by: Li Wang <liwang@redhat.com>


>
> diff --git a/include/tst_test_macros.h b/include/tst_test_macros.h
> index 50598aa15..0ccc01f49 100644
> --- a/include/tst_test_macros.h
> +++ b/include/tst_test_macros.h
> @@ -132,6 +132,34 @@ extern void *TST_RET_PTR;
>                         TST_MSG_(TPASS, " passed", #SCALL,
> ##__VA_ARGS__);     \
>         } while (0)
>     \
>
> +
> +#define TST_EXP_VAL_SILENT_(SCALL, SSCALL, VAL, ...)
>      \
> +       do {
>      \
> +               TEST(SCALL);
>      \
> +
>     \
> +               TST_PASS = 0;
>     \
> +
>     \
> +               if (TST_RET != VAL) {
>     \
> +                       TST_MSGP_(TFAIL | TTERRNO, " retval not %ld",
>     \
> +                                 (long )VAL, SSCALL, ##__VA_ARGS__);
>     \
> +                       break;
>      \
> +               }
>     \
> +
>     \
> +               TST_PASS = 1;
>     \
> +
>     \
> +       } while (0)
> +
> +#define TST_EXP_VAL_SILENT(SCALL, VAL, ...) TST_EXP_VAL_SILENT_(SCALL,
> #SCALL, VAL, ##__VA_ARGS__)
> +
> +#define TST_EXP_VAL(SCALL, VAL, ...)
>      \
> +       do {
>      \
> +               TST_EXP_VAL_SILENT(SCALL, VAL, ##__VA_ARGS__);
>      \
> +
>     \
> +               if (TST_PASS)
>     \
> +                       TST_MSG_(TPASS, " passed", #SCALL,
> ##__VA_ARGS__);     \
> +
>     \
> +       } while(0)
> +
>  #define TST_EXP_FAIL_(PASS_COND, SCALL, SSCALL, ERRNO, ...)
>       \
>         do {
>      \
>                 TEST(SCALL);
>      \
> --
> 2.20.1
>
>
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
>
>

-- 
Regards,
Li Wang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20210830/f0150db9/attachment.htm>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [LTP] [PATCH v2] tst_test_macros.h: Add TST_EXP_VAL macro
  2021-08-30  7:09 [LTP] [PATCH v2] tst_test_macros.h: Add TST_EXP_VAL macro zhanglianjie
  2021-08-30  9:55 ` Li Wang
@ 2021-08-30 14:17 ` Cyril Hrubis
  1 sibling, 0 replies; 3+ messages in thread
From: Cyril Hrubis @ 2021-08-30 14:17 UTC (permalink / raw)
  To: ltp

Hi!
> +#define TST_EXP_VAL_SILENT_(SCALL, SSCALL, VAL, ...)                           \
> +	do {                                                                   \
> +		TEST(SCALL);                                                   \
> +		                                                               \
> +		TST_PASS = 0;                                                  \
> +		                                                               \
> +		if (TST_RET != VAL) {                                          \
> +			TST_MSGP_(TFAIL | TTERRNO, " retval not %ld",          \
> +			          (long )VAL, SSCALL, ##__VA_ARGS__);          \
> +			break;                                                 \
> +		}                                                              \
> +		                                                               \
> +		TST_PASS = 1;                                                  \
> +		                                                               \
> +	} while (0)
> +
> +#define TST_EXP_VAL_SILENT(SCALL, VAL, ...) TST_EXP_VAL_SILENT_(SCALL, #SCALL, VAL, ##__VA_ARGS__)
> +
> +#define TST_EXP_VAL(SCALL, VAL, ...)                                           \
> +	do {                                                                   \
> +		TST_EXP_VAL_SILENT(SCALL, VAL, ##__VA_ARGS__);                 \

Shouldn't we call the VAL_SILENT_() variant here and stringify the SCALL
here? Otherwise I guess that this will introduce the same problem I was
fixing in the "stringify early" patch.

Other than this it looks good.

-- 
Cyril Hrubis
chrubis@suse.cz

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-08-30 14:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-08-30  7:09 [LTP] [PATCH v2] tst_test_macros.h: Add TST_EXP_VAL macro zhanglianjie
2021-08-30  9:55 ` Li Wang
2021-08-30 14:17 ` Cyril Hrubis

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox