[LTP] [LTP PATCH v3 0/5] ftrace: Convert shell tests to C
Praveen K Pandey
praveen@linux.ibm.com
Sun Jun 7 06:41:55 CEST 2026
This patch series converts the ftrace shell-based tests to C
implementation using LTP's new API, addressing GitHub issue #1282.
The conversion provides:
- Better integration with LTP framework
- Improved error handling and reporting
- More maintainable code structure
- Consistent test behavior across platforms
Changes in v3:
- Fixed tst_tmpdir_path() usage by adding .needs_tmpdir = 1 to all tests
- Removed incorrect CVE-2015-8550 tag from ftrace_regression01
- Fixed memory leak in TST_RETRY_FUNC usage by assigning to variable and freeing
- Changed [Algorithm] sections from numbered lists to bullet points (using '-')
- Added root requirement documentation to all test doc comments
- Fixed Makefile LDLIBS placement (moved before generic_leaf_target.mk include)
- Created .gitignore for new test binaries
- Removed deprecated [Description] header from ftrace_stress_test
- Deleted orphaned shell files that were replaced by C implementations
Changes in v2:
- Fixed TST_NO_DEFAULT_MAIN placement in ftrace_lib.c (before includes)
- Removed tst_test.h include from ftrace_lib.h (libraries shouldn't include it)
- Fixed include order in test files (tst_test.h before ftrace_lib.h)
- Added proper cleanup of allocated memory in tests
- Improved error messages and test documentation
- Fixed Makefile dependencies and library filtering
Testing:
All tests have been compiled and verified to work correctly on x86_64
and ppc64le systems with various kernel versions.
Praveen K Pandey (5):
ftrace: Add common library for C implementation
ftrace: Convert ftrace_regression01.sh to C
ftrace: Convert ftrace_regression02.sh to C
ftrace: Convert ftrace_stress_test.sh to C
ftrace: Remove obsolete shell test files
runtest/tracing | 6 +-
.../kernel/tracing/ftrace_test/.gitignore | 4 +
testcases/kernel/tracing/ftrace_test/Makefile | 19 +-
.../kernel/tracing/ftrace_test/ftrace_lib.c | 356 ++++++++++++++++++
.../kernel/tracing/ftrace_test/ftrace_lib.h | 139 +++++++
.../kernel/tracing/ftrace_test/ftrace_lib.sh | 180 ---------
.../tracing/ftrace_test/ftrace_regression01.c | 127 +++++++
.../ftrace_test/ftrace_regression01.sh | 83 ----
.../tracing/ftrace_test/ftrace_regression02.c | 102 +++++
.../ftrace_test/ftrace_regression02.sh | 63 ----
.../ftrace_stress/ftrace_buffer_size_kb.sh | 45 ---
.../ftrace_stress/ftrace_current_tracer.sh | 32 --
.../ftrace_stress/ftrace_ftrace_enabled.sh | 38 --
.../ftrace_function_profile_enabled.sh | 38 --
.../ftrace_stress/ftrace_set_event.sh | 46 ---
.../ftrace_stress/ftrace_set_ftrace_filter.sh | 119 ------
.../ftrace_stress/ftrace_set_ftrace_pid.sh | 37 --
.../ftrace_stress/ftrace_stack_max_size.sh | 27 --
.../ftrace_stress/ftrace_stack_trace.sh | 35 --
.../ftrace_test/ftrace_stress/ftrace_trace.sh | 25 --
.../ftrace_stress/ftrace_trace_clock.sh | 27 --
.../ftrace_stress/ftrace_trace_options.sh | 58 ---
.../ftrace_stress/ftrace_trace_pipe.sh | 45 ---
.../ftrace_stress/ftrace_trace_stat.sh | 38 --
.../ftrace_stress/ftrace_tracing_cpumask.sh | 91 -----
.../ftrace_stress/ftrace_tracing_enabled.sh | 38 --
.../ftrace_tracing_max_latency.sh | 27 --
.../ftrace_stress/ftrace_tracing_on.sh | 38 --
.../tracing/ftrace_test/ftrace_stress_test.c | 326 ++++++++++++++++
.../tracing/ftrace_test/ftrace_stress_test.sh | 121 ------
30 files changed, 1074 insertions(+), 1256 deletions(-)
create mode 100644 testcases/kernel/tracing/ftrace_test/.gitignore
create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_lib.c
create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_lib.h
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_lib.sh
create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_regression01.c
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_regression01.sh
create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_regression02.c
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_regression02.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_buffer_size_kb.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_current_tracer.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_ftrace_enabled.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_function_profile_enabled.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_event.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_ftrace_filter.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_set_ftrace_pid.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_max_size.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_stack_trace.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace_clock.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace_options.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace_pipe.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_trace_stat.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_cpumask.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_enabled.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_max_latency.sh
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress/ftrace_tracing_on.sh
create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_stress_test.c
delete mode 100755 testcases/kernel/tracing/ftrace_test/ftrace_stress_test.sh
--
2.50.1
More information about the ltp
mailing list