[PATCH v5 0/5] ftrace: Convert shell tests to C
Praveen K Pandey <[email protected]>
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
This patch series converts the ftrace shell-based tests to C using the new LTP test API. This addresses issue #1282 and provides better error handling, maintainability, and integration with LTP's modern test infrastructure. Changes in v5: - ftrace_lib.c: Major refactoring based on review feedback * Removed static variable initialization to 0/NULL (C standard) * Removed obvious comments for cleaner code * Replaced manual debugfs mount check with tst_is_mounted() * Used SAFE_ASPRINTF() for all path construction * Used SAFE_FILE_PRINTF() in ftrace_set_tracer() * Simplified ftrace_get_available_tracers() to read line by line * Added proper error checking for strdup() calls - ftrace_lib.h: Cleaned up API * Fixed kernel-doc comment format (use - instead of ()) * Removed low-level implementation details from header - ftrace_regression01.c/ftrace_regression02.c: * Removed deprecated [Description] header line - ftrace_stress_test.c: * Fixed use-after-free: join threads before ftrace_cleanup() Changes in v4: - Fixed trailing whitespace issues - Corrected commit message format and content - Replaced tst_kvercmp() with .min_kver = "2.6.29" - Removed LTP_TIMEOUT_MUL parsing (handled by framework) - Updated documentation to reflect root requirement Changes in v3: - Fixed tst_tmpdir_path() usage in ftrace_lib.c - Removed CVE tag from test documentation - Fixed memory leaks in ftrace_get_available_tracers() - Changed Algorithm sections to bullet points - Added root requirement to test documentation - Fixed Makefile to include ftrace_lib.o in LDLIBS - Created .gitignore for compiled binaries - Removed deprecated tst_reinit.h include - Deleted orphaned shell test files Changes in v2: - Moved TST_NO_DEFAULT_MAIN before includes - Fixed include order (tst_test.h before tst_safe_*.h) - Removed tst_reinit() calls (not needed with new API) - Fixed test structure initialization - Improved error messages The conversion provides: - Better error handling using LTP's SAFE_* macros - Proper resource cleanup and state restoration - Modern LTP test API usage - Improved code maintainability - Type safety and compile-time checks Testing: - Compiled successfully on x86_64 and ppc64le - All tests pass on systems with ftrace support - Proper cleanup verified (settings restored after test) 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 | 371 ++++++++++++++++++ .../kernel/tracing/ftrace_test/ftrace_lib.h | 136 +++++++ .../kernel/tracing/ftrace_test/ftrace_lib.sh | 180 --------- .../tracing/ftrace_test/ftrace_regression01.c | 126 ++++++ .../ftrace_test/ftrace_regression01.sh | 83 ---- .../tracing/ftrace_test/ftrace_regression02.c | 101 +++++ .../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 | 325 +++++++++++++++ .../tracing/ftrace_test/ftrace_stress_test.sh | 121 ------ 30 files changed, 1083 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 -- Mailing list info: https://lists.linux.it/listinfo/ltp