+ plan_tests(15);
+
+ pipe(readyfd);
+ pipe(exitfd);
+ if (fork() == 0) {
+ close(exitfd[1]);
+ close(readyfd[0]);
+ run_server(readyfd[1], exitfd[0]);
+ err(1, "Event loop failed");
+ }
+ close(exitfd[0]);
+ close(readyfd[1]);
+
+ sfd1 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ sfd2 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
+
+ u.in.sin_family = AF_INET;
+ u.in.sin_port = htons(OSERVER_PORT);
+ u.in.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
+
+ /* Wait until child is ready... */
+ if (read(readyfd[0], &c, 1) != 1)
+ errx(1, "Child problems");
+
+ /* Go! */
+ ok1(connect(sfd1, &u.addr, sizeof(u.in)) == 0);
+ ok1(connect(sfd2, &u.addr, sizeof(u.in)) == 0);
+
+ ok1(input_is(sfd1, "Welcome. Please ask your question.\n"));
+ ok1(input_is(sfd2, "Welcome. Please ask your question.\n"));