• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <stdint.h>
2 #include <unistd.h>
3 #include <stdbool.h>
4 
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8 
9 /* TODO: not thread-safe nor fork-safe */
10 extern volatile int t_status;
11 
12 #define T_LOC2(l) __FILE__ ":" #l
13 #define T_LOC1(l) T_LOC2(l)
14 #define t_error(...) t_printf(T_LOC1(__LINE__) ": " __VA_ARGS__)
15 
16 int t_printf(const char *s, ...);
17 
18 int t_vmfill(void **, size_t *, int);
19 int t_memfill(void);
20 
21 void t_fdfill(void);
22 
23 void t_randseed(uint64_t s);
24 uint64_t t_randn(uint64_t n);
25 uint64_t t_randint(uint64_t a, uint64_t b);
26 void t_shuffle(uint64_t *p, size_t n);
27 void t_randrange(uint64_t *p, size_t n);
28 int t_choose(uint64_t n, size_t k, uint64_t *p);
29 
30 char *t_pathrel(char *buf, size_t n, char *argv0, char *p);
31 
32 int t_setrlim(int r, long lim);
33 
34 int t_setutf8(void);
35 
36 void check_log(const char *file, const char *pattern, bool regex_match);
37 void clear_log(const char *log_dir, const char *file_tag);
38 // Use the file_tag to match all the files in log_dir, and then check if the file contain pattern.
39 void find_and_check_file(const char *log_dir, const char *file_tag, const char *pattern, bool regex_match);
40 
41 #ifndef __arm__
42 #define __clock_gettime64 clock_gettime
43 #define __pthread_cond_timedwait_time64 pthread_cond_timedwait
44 #define  __nanosleep_time64 nanosleep
45 #define __fstat_time64 fstat
46 #define __lstat_time64 lstat
47 #define __stat_time64 stat
48 #define __utimensat_time64 utimensat
49 #define __adjtimex_time64 adjtimex
50 #define __clock_adjtime64 clock_adjtime
51 #define __clock_getres_time64 clock_getres
52 #define __clock_nanosleep_time64 clock_nanosleep
53 #define __clock_settime64 clock_settime
54 #define __cnd_timedwait_time64 cnd_timedwait
55 #define __ctime64 ctime
56 #define __ctime64_r ctime_r
57 #define __difftime64 difftime
58 #define __dlsym_time64 dlsym
59 #define __fstatat_time64 fstatat
60 #define __futimens_time64 futimens
61 #define __futimes_time64 futimes
62 #define __futimesat_time64 futimesat
63 #define __getitimer_time64 getitimer
64 #define __getrusage_time64 getrusage
65 #define __gettimeofday_time64 gettimeofday
66 #define __gmtime64 gmtime
67 #define __gmtime64_r gmtime_r
68 #define __localtime64 localtime
69 #define __localtime64_r localtime_r
70 #define __lutimes_time64 lutimes
71 #define __mktime64 mktime
72 #define __mtx_timedlock_time64 mtx_timedlock
73 #define __ppoll_time64 ppoll
74 #define __pselect_time64 pselect
75 #define __pthread_mutex_timedlock_time64 pthread_mutex_timedlock
76 #define __pthread_rwlock_timedrdlock_time64 pthread_rwlock_timedrdlock
77 #define __pthread_rwlock_timedwrlock_time64 pthread_rwlock_timedwrlock
78 #define __recvmmsg_time64 recvmmsg
79 #define __sched_rr_get_interval_time64 sched_rr_get_interval
80 #define __select_time64 select
81 #define __sem_timedwait_time64 sem_timedwait
82 #define __semtimedop_time64 semtimedop
83 #define __setitimer_time64 setitimer
84 #define __settimeofday_time64 settimeofday
85 #define __sigtimedwait_time64 sigtimedwait
86 #define __thrd_sleep_time64 thrd_sleep
87 #define __time64 time
88 #define __timegm_time64 timegm
89 #define __timer_gettime64 timer_gettime
90 #define __timer_settime64 timer_settime
91 #define __timerfd_gettime64 timerfd_gettime
92 #define __timerfd_settime64 timerfd_settime
93 #define __timespec_get_time64 timespec_get
94 #define __utime64 utime
95 #define __utimes_time64 utimes
96 #define __wait4_time64 wait4
97 #endif
98 
99 #define TEST_MODE 0666
100 
101 #ifdef __cplusplus
102 }
103 #endif
104