diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-11-02 01:27:45 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-11-02 01:27:45 +0100 |
| commit | fb41e23423854a865201c0803803191d1f65c8fa (patch) | |
| tree | 515ba48b4bc97f1e7b550e46a4dbff6e5de12a92 /moulitest_read_stdout.c | |
| parent | 762ff2fcaf45d6b94fb580e168baf3f01ebd61e1 (diff) | |
| download | ft_printf_test-fb41e23423854a865201c0803803191d1f65c8fa.tar.gz ft_printf_test-fb41e23423854a865201c0803803191d1f65c8fa.tar.bz2 ft_printf_test-fb41e23423854a865201c0803803191d1f65c8fa.zip | |
Fixed false positive, basic prettier, more test from pft
Diffstat (limited to 'moulitest_read_stdout.c')
| -rw-r--r-- | moulitest_read_stdout.c | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/moulitest_read_stdout.c b/moulitest_read_stdout.c deleted file mode 100644 index e2e61d2..0000000 --- a/moulitest_read_stdout.c +++ /dev/null @@ -1,74 +0,0 @@ -/* - * This is a copy and paste from - * https://github.com/yyang42/moulitest/blob/205892c29f77027dc45c6a09b6ec26b5a5f8116c/testframework/v3/srcs/capture/capture.c - */ - -#include <stdio.h> -#include <fcntl.h> -#include <unistd.h> -#include <stdlib.h> -/* #include <capture.h> */ -#include <errno.h> -#include <assert.h> - -#define MAX_LEN 42000 -#define BUF_SIZE MAX_LEN + 1 -#define READ 0 -#define WRITE 1 -#define NO_FD_OPENED -1 - -int saved_stdout = NO_FD_OPENED; -int out_pipe[2]; -char out_buffer[10 * 1000]; - -void capture_close_saved_stdout(void) -{ - extern int saved_stdout; - - if (saved_stdout != NO_FD_OPENED) - { - /* fprintf(stderr, "== close %d ==\n", saved_stdout); */ - dup2(saved_stdout, STDOUT_FILENO); - close(saved_stdout); /* important ! */ - saved_stdout = NO_FD_OPENED; - close(out_pipe[READ]); - close(out_pipe[WRITE]); - } -} - -void capture_stdout(void) -{ - capture_close_saved_stdout(); - if(pipe(out_pipe) != 0) { /* make a pipe */ - assert(0); - } - assert(saved_stdout < 100); - saved_stdout = dup(STDOUT_FILENO); /* save stdout for display later */ - dup2(out_pipe[WRITE], STDOUT_FILENO); /* redirect stdout to the pipe */ -} - -static void capture_unblock_fd(int fd) -{ - int flags = fcntl(fd, F_GETFL, 0); - fcntl(fd, F_SETFL, flags | O_NONBLOCK); -} - -char *capture_stdout_get_buf(void) -{ - int ret; - fflush(stdout); - - capture_unblock_fd(out_pipe[0]); - *(out_buffer) = '\0'; - ret = read(out_pipe[READ], out_buffer, MAX_LEN); /* read from pipe into buffer */ - out_buffer[ret] = '\0'; - return (out_buffer); -} - -void capture_stdout_destroy(void) -{ - extern int saved_stdout; - dup2(saved_stdout, STDOUT_FILENO); /* reconnect stdout for testing */ - capture_close_saved_stdout(); - //free(cap); -} |
