1f5dcab0dSGuillaume Chatelet //===-- Utilities to log to standard output during tests --------*- C++ -*-===// 2f5dcab0dSGuillaume Chatelet // 3f5dcab0dSGuillaume Chatelet // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4f5dcab0dSGuillaume Chatelet // See https://llvm.org/LICENSE.txt for license information. 5f5dcab0dSGuillaume Chatelet // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6f5dcab0dSGuillaume Chatelet // 7f5dcab0dSGuillaume Chatelet //===----------------------------------------------------------------------===// 8f5dcab0dSGuillaume Chatelet 9f5dcab0dSGuillaume Chatelet #ifndef LLVM_LIBC_TEST_UNITTEST_TESTLOGGER_H 10f5dcab0dSGuillaume Chatelet #define LLVM_LIBC_TEST_UNITTEST_TESTLOGGER_H 11f5dcab0dSGuillaume Chatelet 12*5ff3ff33SPetr Hosek #include "src/__support/macros/config.h" 13*5ff3ff33SPetr Hosek 14*5ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL { 15f5dcab0dSGuillaume Chatelet namespace testing { 16f5dcab0dSGuillaume Chatelet 17f5dcab0dSGuillaume Chatelet // A class to log to standard output in the context of hermetic tests. 18f5dcab0dSGuillaume Chatelet struct TestLogger { 19f5dcab0dSGuillaume Chatelet constexpr TestLogger() = default; 20f5dcab0dSGuillaume Chatelet template <typename T> TestLogger &operator<<(T); 21f5dcab0dSGuillaume Chatelet }; 22f5dcab0dSGuillaume Chatelet 23f5dcab0dSGuillaume Chatelet // A global TestLogger instance to be used in tests. 24f5dcab0dSGuillaume Chatelet extern TestLogger tlog; 25f5dcab0dSGuillaume Chatelet 26f5dcab0dSGuillaume Chatelet } // namespace testing 27*5ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL 28f5dcab0dSGuillaume Chatelet 29f5dcab0dSGuillaume Chatelet #endif /* LLVM_LIBC_TEST_UNITTEST_TESTLOGGER_H */ 30