Files
linux/tools/tracing/rtla/Makefile.config
Costa Shulyupin 3a4080e5e4 tools/rtla: Add unit tests for utils.c
Add unit tests for utility functions in src/utils.c using the Check
testing framework. The tests verify parse_cpu_set(), strtoi(), and
parse_prio() functions.

Unit tests are built conditionally when libcheck is available.
Run tests with 'make unit-test'.

The test framework uses the Check library which provides process
isolation for each test, preventing failures in one test from
affecting others.

Signed-off-by: Costa Shulyupin <costa.shul@redhat.com>
Link: https://lore.kernel.org/r/20260119105857.797498-3-costa.shul@redhat.com
Signed-off-by: Tomas Glozar <tglozar@redhat.com>
2026-03-04 15:51:56 +01:00

117 lines
3.4 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0-only
include $(srctree)/tools/scripts/utilities.mak
STOP_ERROR :=
LIBTRACEEVENT_MIN_VERSION = 1.5
LIBTRACEFS_MIN_VERSION = 1.6
ifndef ($(NO_LIBTRACEEVENT),1)
ifeq ($(call get-executable,$(PKG_CONFIG)),)
$(error Error: $(PKG_CONFIG) needed by libtraceevent/libtracefs is missing on this system, please install it)
endif
endif
define lib_setup
$(eval LIB_INCLUDES += $(shell sh -c "$(PKG_CONFIG) --cflags lib$(1)"))
$(eval LDFLAGS += $(shell sh -c "$(PKG_CONFIG) --libs-only-L lib$(1)"))
$(eval EXTLIBS += $(shell sh -c "$(PKG_CONFIG) --libs-only-l lib$(1)"))
endef
$(call feature_check,libtraceevent)
ifeq ($(feature-libtraceevent), 1)
$(call detected,CONFIG_LIBTRACEEVENT)
TEST = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEEVENT_MIN_VERSION) libtraceevent > /dev/null 2>&1 && echo y || echo n")
ifeq ($(TEST),n)
$(info libtraceevent version is too low, it must be at least $(LIBTRACEEVENT_MIN_VERSION))
STOP_ERROR := 1
endif
$(call lib_setup,traceevent)
else
STOP_ERROR := 1
$(info libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel)
endif
$(call feature_check,libtracefs)
ifeq ($(feature-libtracefs), 1)
$(call detected,CONFIG_LIBTRACEFS)
TEST = $(shell sh -c "$(PKG_CONFIG) --atleast-version $(LIBTRACEFS_MIN_VERSION) libtracefs > /dev/null 2>&1 && echo y || echo n")
ifeq ($(TEST),n)
$(info libtracefs version is too low, it must be at least $(LIBTRACEFS_MIN_VERSION))
STOP_ERROR := 1
endif
$(call lib_setup,tracefs)
else
STOP_ERROR := 1
$(info libtracefs is missing. Please install libtracefs-dev/libtracefs-devel)
endif
$(call feature_check,libcpupower)
ifeq ($(feature-libcpupower), 1)
$(call detected,CONFIG_LIBCPUPOWER)
CFLAGS += -DHAVE_LIBCPUPOWER_SUPPORT
EXTLIBS += -lcpupower
else
$(info libcpupower is missing, building without --deepest-idle-state support.)
$(info Please install libcpupower-dev/kernel-tools-libs-devel)
endif
$(call feature_check,libcheck)
ifeq ($(feature-libcheck), 1)
$(call detected,CONFIG_LIBCHECK)
else
$(info libcheck is missing, building without unit tests support.)
$(info Please install check-devel/check)
endif
ifndef BUILD_BPF_SKEL
# BPF skeletons are used to implement improved sample collection, enable
# them by default.
BUILD_BPF_SKEL := 1
endif
ifeq ($(BUILD_BPF_SKEL),0)
$(info BPF skeleton support disabled, building without BPF skeleton support.)
endif
$(call feature_check,libbpf)
ifeq ($(feature-libbpf), 1)
$(call detected,CONFIG_LIBBPF)
else
$(info libbpf is missing, building without BPF skeleton support.)
$(info Please install libbpf-dev/libbpf-devel)
BUILD_BPF_SKEL := 0
endif
$(call feature_check,clang-bpf-co-re)
ifeq ($(feature-clang-bpf-co-re), 1)
$(call detected,CONFIG_CLANG_BPF_CO_RE)
else
$(info clang is missing or does not support BPF CO-RE, building without BPF skeleton support.)
$(info Please install clang)
BUILD_BPF_SKEL := 0
endif
$(call feature_check,bpftool-skeletons)
ifeq ($(feature-bpftool-skeletons), 1)
$(call detected,CONFIG_BPFTOOL_SKELETONS)
else
$(info bpftool is missing or not supporting skeletons, building without BPF skeleton support.)
$(info Please install bpftool)
BUILD_BPF_SKEL := 0
endif
ifeq ($(BUILD_BPF_SKEL),1)
CFLAGS += -DHAVE_BPF_SKEL
EXTLIBS += -lbpf
endif
ifeq ($(STOP_ERROR),1)
$(error Please, check the errors above.)
endif