[LTP PATCH v2 0/5] ftrace: Convert shell tests to C implementation

Praveen K Pandey <[email protected]>
Newsgroups gmane.linux.ltp
Message-ID <[email protected]>
This patch series converts ftrace shell-based tests to C implementation
to address GitHub issue #1282. The conversion provides better
maintainability, performance, and integration with LTP's C test
framework.

Changes in v2:
- Fixed compilation issues identified during testing
- Added TST_NO_DEFAULT_MAIN to ftrace_lib.c to prevent multiple main() definitions
- Changed tst_get_tmpdir() to tst_tmpdir_path() (correct LTP API)
- Removed tst_test.h from ftrace_lib.h (library headers shouldn't include it)
- Added tst_test.h includes to all test files
- Replaced SAFE_FPRINTF with SAFE_FILE_PRINTF in ftrace_regression01.c
- Removed unused variable in ftrace_stress_test.c
- Changed max_runtime to timeout in ftrace_stress_test.c
- Removed deprecated [Description] headers from test files
- Replaced usleep() with TST_RETRY_FUNC() to comply with LTP Ground Rule 2
- Fixed Makefile: moved dependency rules after generic_leaf_target.mk include
- Added FILTER_OUT_MAKE_TARGETS for library object
- Changed to per-target LDLIBS for pthread linking
- Removed unnecessary INSTALL_TARGETS
- Updated runtest/tracing to use C binaries
- Removed invalid "Fixes: #1282" tags from all commits
- All patches now have proper Signed-off-by tags

Summary of changes:
- Patch 1: Add common ftrace library (ftrace_lib.c/h)
- Patch 2: Convert ftrace_regression01.sh to C
- Patch 3: Convert ftrace_regression02.sh to C  
- Patch 4: Convert 18 ftrace_stress/*.sh scripts to single C implementation
- Patch 5: Remove obsolete shell scripts

Key improvements:
- Multi-threaded stress testing using pthread
- Proper LTP API usage (TST_RETRY_FUNC, SAFE_* macros)
- Better error handling and resource management
- Reduced code duplication through shared library
- Compliance with LTP coding standards and ground rules

Testing:
- All tests compile successfully without warnings
- Tests run correctly and produce expected results (PASS/TCONF)
- Verified on Power architecture (ppc64le)

Praveen K Pandey (5):
  ftrace: Add common library for C implementation
  ftrace: Add C implementation of ftrace_regression01
  ftrace: Add C implementation of ftrace_regression02
  ftrace: Add C implementation of ftrace_stress_test and update build
  ftrace: Remove obsolete shell scripts from ftrace_stress folder

 runtest/tracing                                   |   6 +-
 testcases/kernel/tracing/ftrace_test/Makefile     |  19 +-
 .../kernel/tracing/ftrace_test/ftrace_lib.c       | 352 +++++++++++++++++++++
 .../kernel/tracing/ftrace_test/ftrace_lib.h       | 140 ++++++++
 .../tracing/ftrace_test/ftrace_regression01.c     | 124 +++++++
 .../tracing/ftrace_test/ftrace_regression02.c     |  99 ++++++
 .../tracing/ftrace_test/ftrace_stress_test.c      | 320 ++++++++++++++++++
 .../ftrace_stress/ftrace_buffer_size_kb.sh        |  44 ---
 .../ftrace_stress/ftrace_current_tracer.sh        |  44 ---
 .../ftrace_stress/ftrace_ftrace_enabled.sh        |  44 ---
 .../ftrace_function_profile_enabled.sh             |  44 ---
 .../ftrace_test/ftrace_stress/ftrace_set_event.sh |  44 ---
 .../ftrace_stress/ftrace_set_ftrace_filter.sh     |  44 ---
 .../ftrace_stress/ftrace_set_ftrace_pid.sh        |  44 ---
 .../ftrace_stress/ftrace_stack_max_size.sh        |  44 ---
 .../ftrace_stress/ftrace_stack_trace.sh           |  44 ---
 .../ftrace_test/ftrace_stress/ftrace_trace.sh     |  44 ---
 .../ftrace_stress/ftrace_trace_clock.sh           |  44 ---
 .../ftrace_stress/ftrace_trace_options.sh         |  44 ---
 .../ftrace_stress/ftrace_trace_pipe.sh            |  44 ---
 .../ftrace_stress/ftrace_trace_stat.sh            |  44 ---
 .../ftrace_stress/ftrace_tracing_cpumask.sh       |  44 ---
 .../ftrace_stress/ftrace_tracing_enabled.sh       |  44 ---
 .../ftrace_stress/ftrace_tracing_max_latency.sh   |  44 ---
 .../ftrace_stress/ftrace_tracing_on.sh            |  44 ---
 25 files changed, 1053 insertions(+), 809 deletions(-)
 create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_lib.c
 create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_lib.h
 create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_regression01.c
 create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_regression02.c
 create mode 100644 testcases/kernel/tracing/ftrace_test/ftrace_stress_test.c
 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

-- 
2.43.0


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.