1 //===-- AnsiTerminalTest.cpp ------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "gtest/gtest.h" 11 12 #include "lldb/Utility/AnsiTerminal.h" 13 14 using namespace lldb_utility; 15 16 TEST(AnsiTerminal, Empty) { EXPECT_EQ("", ansi::FormatAnsiTerminalCodes("")); } 17 18 TEST(AnsiTerminal, WhiteSpace) { 19 EXPECT_EQ(" ", ansi::FormatAnsiTerminalCodes(" ")); 20 } 21 22 TEST(AnsiTerminal, AtEnd) { 23 EXPECT_EQ("abc\x1B[30m", 24 ansi::FormatAnsiTerminalCodes("abc${ansi.fg.black}")); 25 } 26 27 TEST(AnsiTerminal, AtStart) { 28 EXPECT_EQ("\x1B[30mabc", 29 ansi::FormatAnsiTerminalCodes("${ansi.fg.black}abc")); 30 } 31 32 TEST(AnsiTerminal, KnownPrefix) { 33 EXPECT_EQ("${ansi.fg.redish}abc", 34 ansi::FormatAnsiTerminalCodes("${ansi.fg.redish}abc")); 35 } 36 37 TEST(AnsiTerminal, Unknown) { 38 EXPECT_EQ("${ansi.fg.foo}abc", 39 ansi::FormatAnsiTerminalCodes("${ansi.fg.foo}abc")); 40 } 41 42 TEST(AnsiTerminal, Incomplete) { 43 EXPECT_EQ("abc${ansi.", ansi::FormatAnsiTerminalCodes("abc${ansi.")); 44 } 45 46 TEST(AnsiTerminal, Twice) { 47 EXPECT_EQ("\x1B[30m\x1B[31mabc", 48 ansi::FormatAnsiTerminalCodes("${ansi.fg.black}${ansi.fg.red}abc")); 49 } 50 51 TEST(AnsiTerminal, Basic) { 52 EXPECT_EQ( 53 "abc\x1B[31mabc\x1B[0mabc", 54 ansi::FormatAnsiTerminalCodes("abc${ansi.fg.red}abc${ansi.normal}abc")); 55 } 56