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 void tracefs_unmount(void)
16 umount("/sys/kernel/tracing");
19 static inline bool tracefs_enabled(char **message
, bool *fail
, bool *umount
)
28 /* Ensure tracefs is installed */
29 ret
= stat("/sys/kernel/tracing", &buf
);
32 *message
= "Tracefs is not installed";
36 /* Ensure mounted tracefs */
37 ret
= stat("/sys/kernel/tracing/README", &buf
);
39 if (ret
== -1 && errno
== ENOENT
) {
40 if (mount(NULL
, "/sys/kernel/tracing", "tracefs", 0, NULL
) != 0) {
41 *message
= "Cannot mount tracefs";
48 ret
= stat("/sys/kernel/tracing/README", &buf
);
52 *message
= "Cannot access tracefs";
60 static inline bool user_events_enabled(char **message
, bool *fail
, bool *umount
)
70 *message
= "Must be run as root";
75 if (!tracefs_enabled(message
, fail
, umount
))
78 /* Ensure user_events is installed */
79 ret
= stat("/sys/kernel/tracing/user_events_data", &buf
);
84 *message
= "user_events is not installed";
88 *message
= "Cannot access user_events_data";
97 #define USER_EVENT_FIXTURE_SETUP(statement, umount) do { \
100 if (!user_events_enabled(&message, &fail, &(umount))) { \
102 TH_LOG("Setup failed due to: %s", message); \
103 ASSERT_FALSE(fail); \
105 SKIP(statement, "Skipping due to: %s", message); \
109 #define USER_EVENT_FIXTURE_TEARDOWN(umount) do { \
114 #endif /* _USER_EVENTS_SELFTESTS_H */