[LTP] [PATCH] tst_test_macros.h: Add TST_EXP_VAL macro

zhanglianjie zhanglianjie@uniontech.com
Mon Aug 30 08:35:31 CEST 2021


Hi,

For example, it is necessary to determine whether TST_RET and child_pid 
are equal :

TST_EXP_POSITIVE(ltp_clone(SIGCHLD, child_fn, NULL, CHILD_STACK_SIZE, 
 

               child_stack));

TST_EXP_PASS(!(TST_RET == child_pid), "pid(%d)", child_pid);

Can be changed to:

TST_EXP_VAL(TST_RET, child_pid);



On 2021-08-27 17:27, Li Wang wrote:
> Hi Lianjie,
> 
> Some queries:
> 
> Do we have test scenarios for making use of these macros?
> 
> And can you write a test to verify the macros you added at the same time?
> (just like what we had done in test_macros0*.c)
> 
> Btw, you should keep the code indent consistent with the original.
> (especially for backlash \)
I will resubmit and add a test_macros0*.c.
> 
> 
> On Fri, Aug 27, 2021 at 10:31 AM zhanglianjie 
> <zhanglianjie@uniontech.com <mailto: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
>     <mailto:zhanglianjie@uniontech.com>>
> 
>     diff --git a/include/tst_test_macros.h b/include/tst_test_macros.h
>     index 50598aa15..d23455362 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

-- 
Regards,
Zhang Lianjie




More information about the ltp mailing list