1#pragma once
2#undef NDEBUG
3#include <assert.h>
4#include <dirent.h>
5#include <errno.h>
6#include <stdbool.h>
7#include <stdlib.h>
8#include <string.h>
9#include <unistd.h>
10#include <sys/syscall.h>
11
12static inline pid_t sys_getpid(void)
13{
14 return syscall(SYS_getpid);
15}
16
17static inline pid_t sys_gettid(void)
18{
19 return syscall(SYS_gettid);
20}
21
22static inline bool streq(const char *s1, const char *s2)
23{
24 return strcmp(s1, s2) == 0;
25}
26
27static unsigned long long xstrtoull(const char *p, char **end)
28{
29 if (*p == '0') {
30 *end = (char *)p + 1;
31 return 0;
32 } else if ('1' <= *p && *p <= '9') {
33 unsigned long long val;
34
35 errno = 0;
36 val = strtoull(p, end, 10);
37 assert(errno == 0);
38 return val;
39 } else
40 assert(0);
41}
42
43static struct dirent *xreaddir(DIR *d)
44{
45 struct dirent *de;
46
47 errno = 0;
48 de = readdir(d);
49 assert(de || errno == 0);
50 return de;
51}
52

source code of linux/tools/testing/selftests/proc/proc.h