[LTP] [PATCH v4 3/5] shell: add kconfig parse api
xuyang2018.jy@fujitsu.com
xuyang2018.jy@fujitsu.com
Fri Jan 14 10:19:45 CET 2022
Hi Petr
I find ltp doesn't update wiki automatically. Or I miss something?
This occurs the last patch doesn't update doc when we merged a patchset.
Best Regards
Yang Xu
> Hi Cyril, Li, Petr
>
>> Hi!
>>> int main(int argc, char *argv[])
>>> {
>>> char *str = argv[1];
>>> char *delim = argv[2];
>>> unsigned int i, cnt = 1;
>>> int ret = 0;
>>>
>>> if (argc == 2) {
>>> delim = ",";
>>> } else if (argc == 3) {
>>> if (strlen(delim)> 1) {
>>> fprintf(stderr, "The delim must be a single
>>> character\n");
>>> return 1;
>>> }
>>> } else {
>>> fprintf(stderr, "Please provide kernel kconfig list and
>>> delim "
>>> "(optinal, default value is ',')\n");
>>> return 1;
>>> }
>>
>> We can make the code a bit easier to read with a switch()
>>
>> switch (argc) {
>> case 2:
>> delim = ",";
>> break;
>> case 3:
>> if (strlen(delim)> 1) {
>> fprintf(stderr, "...");
>> return 1;
>> }
>> break;
>> default:
>> fprintf(stderr, "...");
>> return 1;
>> }
>>
>>
>>> for (i = 0; str[i]; i++) {
>>> if (str[i] == delim[0])
>>> cnt++;
>>> }
>>>
>>> char **kconfigs = malloc(++cnt * sizeof(char *));
>>
>> It's unlikely that this will fail the allocation, but for the sake of
>> correctness we should also do:
>>
>> if (!kconfigs) {
>> fprintf(stderr, "malloc failed");
>> return 1;
>> }
>>
>>> for (i = 0; i< cnt; i++)
>>> kconfigs[i] = strtok_r(str, delim,&str);
>>>
>>> if (tst_kconfig_check((const char * const*)kconfigs))
>>> ret = 1;
>>>
>>> free(kconfigs);
>>> return ret;
>>> }
>>
>> Other than the two minor issues this version looks good to me:
>
> I modify this patch with the above comment and also move tst_res into
> kconfig_skip_check in the 2nd patch. Then I pushed this patchset.
>
> Thanks for your patient review.
>
> Best Regards
> Yang Xu
>>
>> Reviewed-by: Cyril Hrubis<chrubis@suse.cz>
>>
>
More information about the ltp
mailing list