xref: /llvm-project/libc/test/UnitTest/TestLogger.h (revision 5ff3ff33ff930e4ec49da7910612d8a41eb068cb)
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