==> tests/term.c <==1/* Without a terminal (as under the test runner): enter refuses and changes nothing, leave is
2 * harmless, reads from a pipe time out and then deliver. */
3#include "mesh/check.h"
4#include "tui/term.h"
5
6#include <unistd.h>
7
8int main(void) {
9 int fds[2];
10 CHECK(pipe(fds) == 0);
11 int saved = dup(STDIN_FILENO);
12 dup2(fds[0], STDIN_FILENO);
13 CHECK(!tui_term_enter());
14 tui_term_leave();
15 char buf[16];
16 CHECK_I(tui_term_read(buf, sizeof buf, 10), 0);
17 CHECK(write(fds[1], "ab", 2) == 2);
18 CHECK_I(tui_term_read(buf, sizeof buf, 100), 2);
19 CHECK(buf[0] == 'a' && buf[1] == 'b');
20 CHECK(!tui_term_resized());
21 dup2(saved, STDIN_FILENO);
22 close(fds[0]);
23 close(fds[1]);
24 close(saved);
25 return mesh_check_done();
26}