1/* 2 * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10#include "../testutil.h" 11#include "output.h" 12#include "tu_local.h" 13 14#include <openssl/crypto.h> 15#include <openssl/bio.h> 16 17BIO *bio_out = NULL; 18BIO *bio_err = NULL; 19 20void test_open_streams(void) 21{ 22 bio_out = BIO_new_fp(stdout, BIO_NOCLOSE | BIO_FP_TEXT); 23 bio_err = BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT); 24#ifdef __VMS 25 bio_out = BIO_push(BIO_new(BIO_f_linebuffer()), bio_out); 26 bio_err = BIO_push(BIO_new(BIO_f_linebuffer()), bio_err); 27#endif 28 bio_err = BIO_push(BIO_new(BIO_f_tap()), bio_err); 29 30 OPENSSL_assert(bio_out != NULL); 31 OPENSSL_assert(bio_err != NULL); 32} 33 34void test_close_streams(void) 35{ 36 BIO_free_all(bio_out); 37 BIO_free_all(bio_err); 38} 39 40int test_vprintf_stdout(const char *fmt, va_list ap) 41{ 42 return BIO_vprintf(bio_out, fmt, ap); 43} 44 45int test_vprintf_stderr(const char *fmt, va_list ap) 46{ 47 return BIO_vprintf(bio_err, fmt, ap); 48} 49 50int test_flush_stdout(void) 51{ 52 return BIO_flush(bio_out); 53} 54 55int test_flush_stderr(void) 56{ 57 return BIO_flush(bio_err); 58} 59