[LTP] [PATCH v3] lib: Introduce tst_path_macros.h to consolidate system paths
Petr Vorel
pvorel@suse.cz
Fri May 15 17:58:14 CEST 2026
Hi Li,
could you please rebase to master and push branch to your fork?
Patch now does not apply:
Description: [v3] lib: Introduce tst_path_macros.h to consolidate system paths
Applying: lib: Introduce tst_path_macros.h to consolidate system paths
error: patch failed: testcases/kernel/syscalls/newuname/newuname01.c:31
error: testcases/kernel/syscalls/newuname/newuname01.c: patch does not apply
Which is strange, I'm trying to apply on 1e619620eda111cbd94672dd5a0e1cc92567b15d~
(prior Cyril's changes to newuname01.c).
Ideally your for always had rebased version.
I suppose metadata will work with it correctly since Cyril's support for macros
in past (i.e. metadata/ltp.json will have "/proc/sys/kernel/hostname", not
PATH_HOSTNAME, which tells nothing to LTP users).
> We have a lot of hardcoded strings and duplicated macros for /proc
> and /sys paths scattered throughout the testcases.
> This patch introduces a new common header, tst_path_macros.h, to centralize
> and standardize these path definitions. By unifying these macros, we
> reduce code duplication, improve maintainability, and ensure consistent
> path usage across the entire LTP codebase.
> Signed-off-by: Li Wang <li.wang@linux.dev>
> ---
> Notes:
> v3:
> * Rename to tst_path_macros.h to reflect its macro-only content.
I slightly prefer the previous name tst_path.h (for me macros are complex
functions, not just simple definitions, what info gives me "macro-only content"?
I care more about the actual content). I'm ok with it current name, but maybe
kernel_paths.h or proc_sys_paths.h would be more obvious which paths is it
about. Also, it's not just about paths, but also about the content in these
/proc|sys files (e.g. "HugePages_Total:").
> * Replaced generic string concatenation macros with explicit.
> * Manualy built & Tested all touched tests on my c10s vm.
...
> +/* KERNEL */
> +#define PATH_HOSTNAME "/proc/sys/kernel/hostname"
> +#define PATH_OSRELEASE "/proc/sys/kernel/osrelease"
...
> +/* USER */
> +#define PATH_MAX_USER_NAMESPACES "/proc/sys/user/max_user_namespaces"
I have 2 concerns:
1) we often try to have LTP specific 'TST_' prefix to avoid clash with
whatever definition. Is it ok to ignore it now?
2) I'm pretty sure I will have to look into this file often, because from
definition name I have no idea where exactly file is. I'd be ok with long name
TST_PROC_SYS_KERNEL_HOSTNAME, but understand Cyril wants short names. Maybe at
least TST_PATH_KERNEL_HOSTNAME and TST_PATH_USER_MAX_USER_NAMESPACES(last
directory and file)? That would be similar to what sysctl is using:
sysctl kernel.hostname
sysctl user.max_user_namespaces
Kind regards,
Petr
More information about the ltp
mailing list