Lines Matching refs:test

41  * data", or control messages.  This regression test is intended to exercise
44 * there are cyclic file descriptor references. Right now we test only with
45 * stream sockets, but ideally we'd also test with datagram sockets.
49 domainsocketpair(const char *test, int *fdp)
53 err(-1, "%s: socketpair(PF_UNIX, SOCK_STREAM)", test);
65 tempfile(const char *test, int *fdp)
73 err(-1, "%s: mkstemp(%s)", test, path);
79 dofstat(const char *test, int fd, struct stat *sb)
83 err(-1, "%s: fstat", test);
87 samefile(const char *test, struct stat *sb1, struct stat *sb2)
91 err(-1, "%s: samefile: different device", test);
93 err(-1, "%s: samefile: different inode", test);
97 sendfd(const char *test, int sockfd, int sendfd)
129 err(-1, "%s: sendmsg", test);
131 errx(-1, "%s: sendmsg: %d bytes sent", test, len);
135 recvfd(const char *test, int sockfd, int *recvfd)
171 err(-1, "%s: recvmsg", test);
173 errx(-1, "%s: recvmsg: %d bytes received", test, len);
175 errx(-1, "%s: recvmsg: received fd -1", test);
184 const char *test;
187 * First test: put a temporary file into a UNIX domain socket, then
191 test = "test1-simplesendfd";
192 printf("beginning %s\n", test);
194 domainsocketpair(test, fd);
195 tempfile(test, &putfd_1);
196 dofstat(test, putfd_1, &putfd_1_stat);
197 sendfd(test, fd[0], putfd_1);
198 recvfd(test, fd[1], &getfd_1);
199 dofstat(test, getfd_1, &getfd_1_stat);
200 samefile(test, &putfd_1_stat, &getfd_1_stat);
205 printf("%s passed\n", test);
208 * Second test: same as first, only close the file reference after
212 test = "test2-sendandclose";
213 printf("beginning %s\n", test);
215 domainsocketpair(test, fd);
216 tempfile(test, &putfd_1);
217 dofstat(test, putfd_1, &putfd_1_stat);
218 sendfd(test, fd[0], putfd_1);
220 recvfd(test, fd[1], &getfd_1);
221 dofstat(test, getfd_1, &getfd_1_stat);
222 samefile(test, &putfd_1_stat, &getfd_1_stat);
226 printf("%s passed\n", test);
229 * Third test: put a temporary file into a UNIX domain socket, then
232 test = "test3-sendandcancel";
233 printf("beginning %s\n", test);
235 domainsocketpair(test, fd);
236 tempfile(test, &putfd_1);
237 sendfd(test, fd[0], putfd_1);
241 printf("%s passed\n", test);
248 test = "test4-twofile";
249 printf("beginning %s\n", test);
251 domainsocketpair(test, fd);
252 tempfile(test, &putfd_1);
253 tempfile(test, &putfd_2);
254 dofstat(test, putfd_1, &putfd_1_stat);
255 dofstat(test, putfd_2, &putfd_2_stat);
256 sendfd(test, fd[0], putfd_1);
257 sendfd(test, fd[0], putfd_2);
260 recvfd(test, fd[1], &getfd_1);
261 recvfd(test, fd[1], &getfd_2);
262 dofstat(test, getfd_1, &getfd_1_stat);
263 dofstat(test, getfd_2, &getfd_2_stat);
264 samefile(test, &putfd_1_stat, &getfd_1_stat);
265 samefile(test, &putfd_2_stat, &getfd_2_stat);
270 printf("%s passed\n", test);
273 * Big bundling test. Send an endpoint of the UNIX domain socket
277 test = "test5-bundle";
278 printf("beginning %s\n", test);
280 domainsocketpair(test, fd);
282 sendfd(test, fd[0], fd[0]);
284 recvfd(test, fd[1], &getfd_1);
288 printf("%s passed\n", test);
291 * Big bundling test part two: Send an endpoint of the UNIX domain
296 test = "test6-bundlecancel";
297 printf("beginning %s\n", test);
299 domainsocketpair(test, fd);
300 sendfd(test, fd[0], fd[0]);
301 sendfd(test, fd[1], fd[0]);
304 printf("%s passed\n", test);