[LTP] [PATCH 0/6] C API: .needs_cmds and SAFE_RUN_CMD()
Xiao Yang
yangx.jy@cn.fujitsu.com
Sun Mar 29 07:29:32 CEST 2020
On 2020/3/28 11:42, Petr Vorel wrote:
> Hi Xiao,
>
>> On 3/28/20 5:39 AM, Petr Vorel wrote:
>>> + There is a double check (first in
>>> .needs_cmds, then in SAFE_RUN_CMD()), maybe that's not needed.
>
>> Hi Petr,
>
>> Why do you need the duplicate .needs_cmds flag?(it introduces the double
>> check as you said)
>
>> Usually, all tests run commands by tst_run_cmd()/SAFE_RUN_CMD() and they can
>> report TCONF
>
>> by passing TST_RUN_CMD_CHECK_CMD so it is fair to be a part of
>> tst_run_cmd()/SAFE_RUN_CMD().
>
> Thanks for your review.
> I guess Cyril will prefer .needs_cmds, as it can be parsed - metadata project:
> https://people.kernel.org/metan/towards-parallel-kernel-test-runs
> https://github.com/metan-ucw/ltp/tree/master/docparse
Hi Petr,
Thank you for sharing these info.
Does Cyril want to get metadata from struct tst_test directly?
How about the rough design?
1) .needs_cmds only saves the required commands.(doesn't do any check)
2) pass the corresponding member of .needs_cmds to
tst_run_cmd()/SAFE_RUN_CMD()(do check in these functions).
For example:
----------------------------------------------
# grep tst_needs_cmds include/tst_cmd.h
extern const char *const *tst_needs_cmds;
# grep -B1 tst_needs_cmds lib/tst_test.c
const char *const *tst_needs_cmds;
--
if (tst_test->needs_cmds)
tst_needs_cmds = tst_test->needs_cmds;
# grep -A2 'needs_cmds' testcases/kernel/syscalls/add_key/add_key05.c
const char *const cmd_useradd[] = {tst_needs_cmds[0], username, NULL};
int rc;
--
const char *const cmd_userdel[] = {tst_needs_cmds[1], "-r",
username, NULL};
if (tst_run_cmd(cmd_userdel, NULL, NULL, 1))
--
.needs_cmds = (const char *const []) {
"useradd",
"userdel",
----------------------------------------------
btw: is it possible for .needs_cmds to save the required commands with
options?
Thanks,
Xiao Yang
>
> I put it there because some command might be run just under some condition (not
> always), thus not suitable for .needs_cmds, but still nice to have reliable
> check. But maybe I'm wrong.
>
> Kind regards,
> Petr
>
More information about the ltp
mailing list