[LTP] [PATCH 2/2] doc: support for clickable syscalls under stats

Andrea Cervesato andrea.cervesato@suse.com
Thu Dec 12 15:02:42 CET 2024


Hi Petr,

On 12/12/24 14:34, Petr Vorel wrote:
> Hi Andrea,
>
> TL;DR
>
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
>
> I'm glad that my original idea to have links did not get lost :).
>
>> From: Andrea Cervesato <andrea.cervesato@suse.com>
>> Under statistics tab, add possibility to click on a syscalls and
>> being redirected to the source code which is testing them.
>> Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
>> ---
>>   doc/conf.py | 120 ++++++++++++++++++++++++++++++++++--------------------------
>>   1 file changed, 69 insertions(+), 51 deletions(-)
>> diff --git a/doc/conf.py b/doc/conf.py
>> index 1c6a7f74c9401842c01f33dd34a5171d5328248c..258a1b9e285581e40c03caaf643e295fb90cb0c5 100644
>> --- a/doc/conf.py
>> +++ b/doc/conf.py
>> @@ -61,39 +61,38 @@ def generate_syscalls_stats(_):
>>       # because in some cases (i.e. io_ring) syscalls are tested, but they are
>>       # part of a more complex scenario. In the following list, we define syscalls
>>       # which we know they are 100% tested already.
>> -    white_list = [
>> -        'epoll_pwait2',
>> -        'fadvise64',
>> -        'fanotify_init',
>> -        'fanotify_mark',
>> -        'getdents64',
>> -        'getmsg',
>> -        'getpmsg',
> You removed getmsg, getpmsg, putmsg and seccomp.
>
> I originally put them in my patch to black_list (or I wanted)
> https://patchwork.ozlabs.org/project/ltp/patch/20241115033916.1707627-1-petr.vorel@gmail.com/
>
> You haven't noticed you removed them (ok, not everything must be documented),
> but still it would be nice to remove them from "Untested syscalls" table,
> therefore I sent v2.
> https://patchwork.ozlabs.org/project/ltp/patch/20241212133024.1480177-1-pvorel@suse.cz/
Sure, I will send your follow up patch, thanks.
>> -        'inotify_add_watch',
>> -        'inotify_rm_watch',
>> -        'io_uring_enter',
>> -        'io_uring_register',
>> -        'io_uring_setup',
>> -        'landlock_add_rule',
>> -        'landlock_create_ruleset',
>> -        'landlock_restrict_self',
>> -        'lsetxattr',
>> -        'newfstatat',
>> -        'putmsg',
>> -        'putpmsg',
>> -        'pkey_alloc',
>> -        'pkey_free',
>> -        'pkey_mprotect',
>> -        'prlimit64',
>> -        'pread64',
>> -        'pselect6',
>> -        'pwrite64',
>> -        'quotactl_fd',
>> -        'rt_sigpending',
>> -        'seccomp',
>> -        'semtimedop',
>> -        'sethostname',
>> -    ]
>> +    ltp_syscalls_path = "testcases/kernel/syscalls"
>> +    white_list = {
>> +        'bpf': f'{ltp_syscalls_path}/bpf',
>> +        'epoll_pwait2': f'{ltp_syscalls_path}/epoll_pwait',
>> +        'fadvise64': f'{ltp_syscalls_path}/fadvise',
>> +        'fanotify_init': f'{ltp_syscalls_path}/fanotify',
>> +        'fanotify_mark': f'{ltp_syscalls_path}/fanotify',
>> +        'futex': f'{ltp_syscalls_path}/futex',
>> +        'getdents64': f'{ltp_syscalls_path}/gettdents',
>> +        'inotify_add_watch': f'{ltp_syscalls_path}/inotify',
>> +        'inotify_init': f'{ltp_syscalls_path}/inotify',
>> +        'inotify_rm_watch': f'{ltp_syscalls_path}/inotify',
>> +        'io_uring_enter': f'{ltp_syscalls_path}/io_uring',
>> +        'io_uring_register': f'{ltp_syscalls_path}/io_uring',
>> +        'io_uring_setup': f'{ltp_syscalls_path}/io_uring',
>> +        'landlock_add_rule': f'{ltp_syscalls_path}/landlock',
>> +        'landlock_create_ruleset': f'{ltp_syscalls_path}/landlock',
>> +        'landlock_restrict_self': f'{ltp_syscalls_path}/landlock',
>> +        'lsetxattr': f'{ltp_syscalls_path}/lgetxattr',
>> +        'newfstatat': f'{ltp_syscalls_path}/fstatat',
>> +        'pkey_alloc': f'{ltp_syscalls_path}/pkeys',
>> +        'pkey_free': f'{ltp_syscalls_path}/pkeys',
>> +        'pkey_mprotect': f'{ltp_syscalls_path}/pkeys',
>> +        'prlimit64': f'{ltp_syscalls_path}/getrlimit',
>> +        'pread64': f'{ltp_syscalls_path}/pread',
>> +        'pselect6': f'{ltp_syscalls_path}/pselect',
>> +        'pwrite64': f'{ltp_syscalls_path}/pwrite',
>> +        'quotactl_fd': f'{ltp_syscalls_path}/quotactl',
>> +        'rt_sigpending': f'{ltp_syscalls_path}/sigpending',
>> +        'semtimedop': f'{ltp_syscalls_path}/ipc/semop',
>> +        'sethostname': f'{ltp_syscalls_path}/sethostname'
>> +    }
>>       # populate with not implemented, reserved, unmaintained syscalls defined
>>       # inside the syscalls file
>> @@ -134,6 +133,7 @@ def generate_syscalls_stats(_):
>>       if error:
>>           return
>> +    syscalls_base_dir = "https://github.com/linux-test-project/ltp/tree/master"
> nit: we already have some variables for various https://github.com/linux-test-project/ltp
> paths. I would personally define at the top variable holding
> "https://github.com/linux-test-project/ltp" and deriver others from it
> (as a separate commit or a part of previous commit).
Good catch, I will include it in the last patch since it's required by 
stats generator specifically.
>
>>       text = [
>>           'Syscalls\n',
>>           '--------\n\n',
>> @@ -145,15 +145,33 @@ def generate_syscalls_stats(_):
>>       with open("syscalls.tbl", 'r', encoding='utf-8') as data:
>>           for line in data:
>>               match = regexp.search(line)
>> -            if match:
>> -                ker_syscalls.append(match.group('syscall'))
>> +            if not match:
>> +                continue
>> +
>> +            ker_syscalls.append(match.group('syscall'))
>>       # collect all LTP tested syscalls
>> -    ltp_syscalls = []
>> -    for _, _, files in os.walk('../testcases/kernel/syscalls'):
>> +    name_patterns = [
>> +        re.compile(r'(?P<name>[a-zA-Z_]+[^_])\d{2}\.c'),
>> +        re.compile(r'(?P<name>[a-zA-Z_]+[1-9])_\d{2}\.c'),
> Using regexp is probably better than my way to set paths (fewer things to
> maintain).
>
> Thanks!
>
> Kind regards,
> Petr

I will push with the given suggestions and follow up patch, thanks.

Andrea



More information about the ltp mailing list