diff options
Diffstat (limited to 'gnu/llvm/lldb/unittests/Utility/AnsiTerminalTest.cpp')
-rw-r--r-- | gnu/llvm/lldb/unittests/Utility/AnsiTerminalTest.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/gnu/llvm/lldb/unittests/Utility/AnsiTerminalTest.cpp b/gnu/llvm/lldb/unittests/Utility/AnsiTerminalTest.cpp new file mode 100644 index 00000000000..5361b0b9590 --- /dev/null +++ b/gnu/llvm/lldb/unittests/Utility/AnsiTerminalTest.cpp @@ -0,0 +1,54 @@ +//===-- AnsiTerminalTest.cpp ------------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "gtest/gtest.h" + +#include "lldb/Utility/AnsiTerminal.h" + +using namespace lldb_private; + +TEST(AnsiTerminal, Empty) { EXPECT_EQ("", ansi::FormatAnsiTerminalCodes("")); } + +TEST(AnsiTerminal, WhiteSpace) { + EXPECT_EQ(" ", ansi::FormatAnsiTerminalCodes(" ")); +} + +TEST(AnsiTerminal, AtEnd) { + EXPECT_EQ("abc\x1B[30m", + ansi::FormatAnsiTerminalCodes("abc${ansi.fg.black}")); +} + +TEST(AnsiTerminal, AtStart) { + EXPECT_EQ("\x1B[30mabc", + ansi::FormatAnsiTerminalCodes("${ansi.fg.black}abc")); +} + +TEST(AnsiTerminal, KnownPrefix) { + EXPECT_EQ("${ansi.fg.redish}abc", + ansi::FormatAnsiTerminalCodes("${ansi.fg.redish}abc")); +} + +TEST(AnsiTerminal, Unknown) { + EXPECT_EQ("${ansi.fg.foo}abc", + ansi::FormatAnsiTerminalCodes("${ansi.fg.foo}abc")); +} + +TEST(AnsiTerminal, Incomplete) { + EXPECT_EQ("abc${ansi.", ansi::FormatAnsiTerminalCodes("abc${ansi.")); +} + +TEST(AnsiTerminal, Twice) { + EXPECT_EQ("\x1B[30m\x1B[31mabc", + ansi::FormatAnsiTerminalCodes("${ansi.fg.black}${ansi.fg.red}abc")); +} + +TEST(AnsiTerminal, Basic) { + EXPECT_EQ( + "abc\x1B[31mabc\x1B[0mabc", + ansi::FormatAnsiTerminalCodes("abc${ansi.fg.red}abc${ansi.normal}abc")); +} |