sysstat/systest.h

109 lines
2.5 KiB
C

/*
* sysstat: System performance tools for Linux
* (C) 1999-2022 by Sebastien Godard (sysstat <at> orange.fr)
*/
#ifndef _SYSTEST_H
#define _SYSTEST_H
#include <time.h>
#include <dirent.h>
#include <sys/utsname.h>
#include <sys/statvfs.h>
#include <sys/stat.h>
#ifndef MINORBITS
#define MINORBITS 20
#endif
#define S_MAXMINOR ((1U << MINORBITS) - 1)
#define S_MAXMAJOR ((1U << (32 - MINORBITS)) - 1)
/* Test mode: Use alternate files and syscalls */
#ifdef TEST
#define PRE "./tests/root"
#define __time(m) get_unix_time(m)
#define __uname(m) get_uname(m)
#define __statvfs(m,n) get_fs_stat(m,n)
#define __getenv(m) get_env_value(m)
#define __alarm(m)
#define __pause() next_time_step()
#define __stat(m,n) virtual_stat(m,n)
#define __opendir(m) open_list(m)
#define __readdir(m) read_list(m)
#define __closedir(m) close_list(m)
#define __realpath(m,n) get_realname(m,n)
#define __gettimeofday(m,n) get_day_time(m)
#define __getpwuid(m) get_usrname(m)
#define __fork(m) get_known_pid(m)
#define __major(m) (m >> MINORBITS)
#define __minor(m) (m & S_MAXMINOR)
#define ROOTDIR "./tests/root"
#define ROOTFILE "root"
#define TESTDIR "./tests"
#define VIRTUALHD "./tests/root/dev/mapper/virtualhd"
#define _LIST "_list"
#else
#define PRE ""
#define __time(m) time(m)
#define __uname(m) uname(m)
#define __statvfs(m,n) statvfs(m,n)
#define __getenv(m) getenv(m)
#define __alarm(m) alarm(m)
#define __pause() pause()
#define __stat(m,n) stat(m,n)
#define __opendir(m) opendir(m)
#define __readdir(m) readdir(m)
#define __closedir(m) closedir(m)
#define __realpath(m,n) realpath(m,n)
#define __gettimeofday(m,n) gettimeofday(m,n)
#define __getpwuid(m) getpwuid(m)
#define __fork(m) fork(m)
#define __major(m) major(m)
#define __minor(m) minor(m)
#endif /* TEST */
/*
***************************************************************************
* Functions prototypes
***************************************************************************
*/
#ifdef TEST
void close_list
(DIR *);
void get_day_time
(struct timeval *);
char *get_env_value
(const char *);
int get_fs_stat
(char *, struct statvfs *);
pid_t get_known_pid
(void);
char *get_realname
(char *, char *);
void get_uname
(struct utsname *);
time_t get_unix_time
(time_t *);
struct passwd *get_usrname
(uid_t);
void next_time_step
(void);
DIR *open_list
(const char *);
struct dirent *read_list
(DIR *);
int virtual_stat
(const char *, struct stat *);
void int_handler
(int);
#endif /* TEST */
#endif /* _SYSTEST_H */