31 # if (defined(__linux__) || defined(__GLIBC__)) && !defined(__ANDROID__)
33 # elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__)
35 # elif defined(__FreeBSD__) || defined(__DragonFly__)
46 int ttyin_fd, ttyout_fd;
53 handle = CreateFileA(
"conin$",
54 GENERIC_READ | GENERIC_WRITE,
55 FILE_SHARE_READ | FILE_SHARE_WRITE,
58 FILE_ATTRIBUTE_NORMAL,
63 handle = CreateFileA(
"conout$",
64 GENERIC_READ | GENERIC_WRITE,
65 FILE_SHARE_READ | FILE_SHARE_WRITE,
68 FILE_ATTRIBUTE_NORMAL,
74 ttyin_fd =
open(
"/dev/tty", O_RDONLY, 0);
76 fprintf(
stderr,
"Cannot open /dev/tty as read-only: %s\n", strerror(errno));
81 ttyout_fd =
open(
"/dev/tty", O_WRONLY, 0);
83 fprintf(
stderr,
"Cannot open /dev/tty as write-only: %s\n", strerror(errno));
179 handle = CreateFileA(
"conin$",
180 GENERIC_READ | GENERIC_WRITE,
181 FILE_SHARE_READ | FILE_SHARE_WRITE,
184 FILE_ATTRIBUTE_NORMAL,
207 record.EventType = KEY_EVENT;
208 record.Event.KeyEvent.bKeyDown =
TRUE;
209 record.Event.KeyEvent.wRepeatCount = 1;
210 record.Event.KeyEvent.wVirtualKeyCode = VK_SPACE;
211 record.Event.KeyEvent.wVirtualScanCode = MapVirtualKeyW(VK_SPACE, MAPVK_VK_TO_VSC);
212 record.Event.KeyEvent.uChar.UnicodeChar =
L' ';
213 record.Event.KeyEvent.dwControlKeyState = 0;
214 WriteConsoleInputW(
handle, &record, 1, &written);
235 handle = CreateFileA(
"conout$",
236 GENERIC_READ | GENERIC_WRITE,
237 FILE_SHARE_READ | FILE_SHARE_WRITE,
240 FILE_ATTRIBUTE_NORMAL,
281 handle = CreateFileA(
"conout$",
282 GENERIC_READ | GENERIC_WRITE,
283 FILE_SHARE_READ | FILE_SHARE_WRITE,
286 FILE_ATTRIBUTE_NORMAL,
321 handle = CreateFileA(
"conin$",
322 GENERIC_READ | GENERIC_WRITE,
323 FILE_SHARE_READ | FILE_SHARE_WRITE,
326 FILE_ATTRIBUTE_NORMAL,
359 fd =
open(
"test/fixtures/empty_file", O_RDONLY);
369 fd =
open(
"/dev/random", O_RDONLY);
376 fd =
open(
"/dev/zero", O_RDONLY);
382 fd =
open(
"/dev/tty", O_RDWR);
393 fd =
open(
"/dev/tty", O_RDONLY);
404 fd =
open(
"/dev/tty", O_WRONLY);
425 #if defined(__APPLE__) || \
426 defined(__DragonFly__) || \
427 defined(__FreeBSD__) || \
428 defined(__FreeBSD_kernel__) || \
429 (defined(__linux__) && !defined(__ANDROID__)) || \
430 defined(__NetBSD__) || \
432 int master_fd, slave_fd,
r;
439 r = openpty(&master_fd, &slave_fd, NULL, NULL, &w);
452 ASSERT(0 == (slave_tty.flags & 0x100000));
455 ASSERT(master_tty.flags & 0x100000);