From: Cyril Hrubis <chrubis@suse.cz>
To: Andrea Cervesato <andrea.cervesato@suse.de>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v1] doc: Add new API conversion stats
Date: Tue, 16 Apr 2024 15:08:29 +0200 [thread overview]
Message-ID: <Zh54TZT7boknYdN8@rei> (raw)
In-Reply-To: <20240415121719.3798-1-andrea.cervesato@suse.de>
> +def generate_old_api_stats(_):
> + """
> + Generate statistics for old API tests. We enter the tests folder and we
> + count all tests implementations using old API. The way we count them, is to
> + open every *.c file and to verify that "#include <test.h>" directive is
> + present.
> + """
> + output = '_static/old_api.rst'
> +
> + old_regex = re.compile(r'#include.*[<"\']test\.h[>"\']')
> + new_regex = re.compile(r'#include.*[<"\']tst_test\.h[>"\']')
> +
> + old_tests = 0
> + new_tests = 0
> +
> + for root, _, files in os.walk('../testcases'):
> + for fname in files:
> + if not fname.endswith('.c'):
> + continue
There are at least two cases where the test.h header is included
indirectly from a test specific header. I guess that it would be cleaner
to actually fix these tests instead of working around it here.
> + path = os.path.join(root, fname)
> + with open(path, 'r', errors='ignore') as fdata:
> + for line in fdata:
> + if old_regex.match(line):
> + old_tests += 1
> + break
> +
> + if new_regex.match(line):
> + new_tests += 1
> + break
> +
> + if old_tests == 0 and new_tests == 0:
> + return
> +
> + text = [
> + 'New API conversion status\n',
> + '-------------------------\n\n',
> + 'The current LTP refactoring plan aims to convert all LTP test\n',
> + f'cases using the new LTP API. There are currently **{old_tests}** tests\n',
> + f'which need to be converted and **{new_tests}** have been converted\n',
> + 'already.\n',
> + ]
> +
> + with open(output, 'w+') as stats:
> + stats.writelines(text)
Maybe we should generate a table with the test filenames and links to
github code here? So that people interested in rewriting these tests
could check here and click on the filename to see the code?
> def generate_syscalls_stats(_):
> """
> Generate statistics for syscalls. We fetch the syscalls list from the kernel
> @@ -198,4 +245,5 @@ def generate_syscalls_stats(_):
>
> def setup(app):
> app.add_css_file('custom.css')
> + app.connect('builder-inited', generate_old_api_stats)
> app.connect('builder-inited', generate_syscalls_stats)
> diff --git a/doc/users/stats.rst b/doc/users/stats.rst
> index 7073442aa..a8b322b5f 100644
> --- a/doc/users/stats.rst
> +++ b/doc/users/stats.rst
> @@ -6,4 +6,5 @@ Statistics
> In this section we collect some statistics related to the current state of
> LTP tests.
>
> +.. include:: ../_static/old_api.rst
> .. include:: ../_static/syscalls.rst
> --
> 2.35.3
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2024-04-16 13:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-15 12:17 [LTP] [PATCH v1] doc: Add new API conversion stats Andrea Cervesato
2024-04-16 13:08 ` Cyril Hrubis [this message]
2024-04-16 14:16 ` Andrea Cervesato via ltp
2024-04-16 14:46 ` Cyril Hrubis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zh54TZT7boknYdN8@rei \
--to=chrubis@suse.cz \
--cc=andrea.cervesato@suse.de \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox