1 /* SPDX-License-Identifier: GPL-2.0 */
3 #ifndef _USER_EVENTS_SELFTESTS_H
4 #define _USER_EVENTS_SELFTESTS_H
12 #include "../kselftest.h"
14 static inline bool tracefs_enabled(char **message, bool *fail)
22 /* Ensure tracefs is installed */
23 ret = stat("/sys/kernel/tracing", &buf);
26 *message = "Tracefs is not installed";
30 /* Ensure mounted tracefs */
31 ret = stat("/sys/kernel/tracing/README", &buf);
33 if (ret == -1 && errno == ENOENT) {
34 if (mount(NULL, "/sys/kernel/tracing", "tracefs", 0, NULL) != 0) {
35 *message = "Cannot mount tracefs";
40 ret = stat("/sys/kernel/tracing/README", &buf);
44 *message = "Cannot access tracefs";
52 static inline bool user_events_enabled(char **message, bool *fail)
61 *message = "Must be run as root";
66 if (!tracefs_enabled(message, fail))
69 /* Ensure user_events is installed */
70 ret = stat("/sys/kernel/tracing/user_events_data", &buf);
75 *message = "user_events is not installed";
79 *message = "Cannot access user_events_data";
88 #define USER_EVENT_FIXTURE_SETUP(statement) do { \
91 if (!user_events_enabled(&message, &fail)) { \
93 TH_LOG("Setup failed due to: %s", message); \
96 SKIP(statement, "Skipping due to: %s", message); \
100 #endif /* _USER_EVENTS_SELFTESTS_H */