xref: /trueos/usr.bin/mach-tests/kqueue-tests/tests.h (revision 4c26ab344835e45587dd7ff3e3af149b4a89959f)
1 #ifndef _TESTS_H_
2 #define	_TESTS_H_
3 
4 #ifndef CONFORMANCE_TESTS_IN_XNU
5 #define CONFORMANCE_TESTS_IN_XNU       0
6 #endif
7 #ifndef TEST_SYSTEM_CALLS
8 #define TEST_SYSTEM_CALLS              0
9 #endif
10 
11 #include <errno.h>
12 #include <fcntl.h>
13 #include <signal.h>		/* Install signal handlers*/
14 #include <spawn.h>
15 #include <stdio.h>
16 #include <stdlib.h>
17 #include <string.h>
18 #include <unistd.h>
19 #include <stdbool.h>
20 #include <assert.h>
21 #include <stdarg.h>		/* Used to support printf() in misc.c */
22 #include <mach/machine.h>	/* Used to determine host properties */
23 #include <mach/vm_inherit.h>
24 #include <mach/mach.h>
25 #include <mach/message.h>
26 #include <mach/vm_map.h>
27 #include <sys/acct.h>
28 #include <sys/aio.h>
29 #include <sys/dirent.h>
30 #include <sys/disk.h>
31 #include <sys/uio.h>
32 #include <sys/mman.h>
33 #include <sys/mount.h>
34 #include <sys/param.h>
35 #include <sys/ptrace.h>
36 #include <sys/resource.h>
37 #include <sys/select.h>
38 #include <sys/signal.h>
39 #include <sys/socket.h>
40 #include <sys/stat.h>
41 #include <sys/syscall.h>
42 #include <sys/sysctl.h>		/* Used to determine host properties */
43 #include <sys/syslimits.h>
44 #include <sys/time.h>
45 #include <sys/ttycom.h>
46 #include <sys/types.h>
47 #include <sys/ucred.h>
48 #include <sys/vnode.h>
49 #include <sys/wait.h>
50 #include <TargetConditionals.h> /* for TARGET_OS_EMBEDDED */
51 
52 #define MY_BUFFER_SIZE (1024 * 10)
53 #define ARM 	100  /* I am not sure if the value really matters? */
54 #define INTEL	38947			/*
55 					 * Random values used by execve tests to
56 					 * determine architecture of machine.
57 					 */
58 
59 #define FILE_NOTME "/private/tmp/notme"		/* file in /private/tmp not owned by the current user */
60 #define FILE_ME "/private/tmp/me"		/* file in /private/tmp owned by the current user */
61 
62 typedef int (*test_rtn_t)(void *);
63 
64 int access_chmod_fchmod_test( void * the_argp );
65 int acct_test( void * the_argp );
66 int aio_tests( void * the_argp );
67 int bsd_shm_tests( void * the_argp );
68 int chdir_fchdir_test( void * the_argp );
69 int chflags_fchflags_test( void * the_argp );
70 int chroot_test( void * the_argp );
71 int chown_fchown_lchown_lstat_symlink_test( void * the_argp );
72 int create_file_with_name( char *the_pathp, char *the_namep, int remove_existing );
73 int create_random_name( char *the_pathp, int do_open );
74 int directory_tests( void * the_argp );
75 int do_execve_test(char * path, char * argv[], void * envpi, int killwait);
76 int do_spawn_test(int arch, int shouldfail);
77 int dup_test( void * the_argp );
78 int exchangedata_test( void * the_argp );
79 int execve_kill_vfork_test( void * the_argp );
80 int fcntl_test( void * the_argp );
81 int fork_wait4_exit_test( void * the_argp );
82 int fs_stat_tests( void * the_argp );
83 int get_architecture(void);				/* Intel or PPC */
84 int get_bits(void);					/* 64 or 32 */
85 int getlogin_setlogin_test( void * the_argp );
86 int getpid_getppid_pipe_test( void * the_argp );
87 int getpriority_setpriority_test( void * the_argp );
88 int getrusage_test( void * the_argp );
89 int groups_test( void * the_argp );
90 int ioctl_test( void * the_argp );
91 int kqueue_tests( void * the_argp );
92 int limit_tests( void * the_argp );
93 int link_stat_unlink_test( void * the_argp );
94 int locking_test( void * the_argp );
95 int memory_tests( void * the_argp );
96 int message_queue_tests( void * the_argp );
97 int mkdir_rmdir_umask_test( void * the_argp );
98 int mkfifo_test( void * the_argp );
99 int mknod_sync_test( void * the_argp );
100 int open_close_test( void * the_argp );
101 int process_group_test( void * the_argp );
102 int quotactl_test( void * the_argp );
103 int read_write_test( void * the_argp );
104 int rename_test( void * the_argp );
105 int searchfs_test( void * the_argp );
106 int sema_tests( void * the_argp );
107 int sema2_tests( void * the_argp );
108 int shm_tests( void * the_argp );
109 int signals_test( void * the_argp );
110 int socket_tests( void * the_argp );
111 int socket2_tests( void * the_argp );
112 int syscall_test( void * the_argp );
113 int time_tests( void * the_argp );
114 int uid_tests( void * the_argp );
115 int xattr_tests( void * the_argp );
116 int data_exec_tests( void * the_argp );
117 int machvm_tests( void * the_argp );
118 int getdirentries_test( void * the_argp );
119 int statfs_32bit_inode_tests( void * the_argp );
120 int commpage_data_tests( void * the_argp );
121 int atomic_fifo_queue_test( void * the_argp );
122 int sched_tests( void * the_argp );
123 int content_protection_test( void * the_argp );
124 int pipes_test( void * the_argp );
125 int kaslr_test( void * the_argp );
126 int getattrlistbulk_test( void * the_argp );
127 int openat_close_test( void * the_argp );
128 int linkat_fstatat_unlinkat_test( void * the_argp );
129 int faccessat_fchmodat_fchmod_test( void * the_argp );
130 int fchownat_fchown_symlinkat_test( void * the_argp );
131 int mkdirat_unlinkat_umask_test( void * the_argp );
132 int renameat_test( void * the_argp );
133 int set_exception_ports_test( void * the_argp );
134 
135 struct test_entry
136 {
137 	int				test_run_it;		/* 0 means do not run this test, else run it */
138 	test_rtn_t		test_routine;		/* routine to call */
139 	void *			test_input;			/* optional input to test_routine */
140 	char *			test_infop;			/* information about what is tested */
141 };
142 typedef struct test_entry * test_entryp;
143 
144 
145 
146 /*
147    If running xnu_quick_test under testbots, disable special
148    printf defined in the previous step. This is done in order
149    to generate log messages in a format which testbots understands
150 */
151 
152 #if RUN_UNDER_TESTBOTS
153 #undef printf
154 #endif
155 
156 #endif /* !_TESTS_H_ */
157