diff options
Diffstat (limited to 'contrib/llvm/unittests/Support/raw_ostream_test.cpp')
-rw-r--r-- | contrib/llvm/unittests/Support/raw_ostream_test.cpp | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/contrib/llvm/unittests/Support/raw_ostream_test.cpp b/contrib/llvm/unittests/Support/raw_ostream_test.cpp deleted file mode 100644 index 2b797b4..0000000 --- a/contrib/llvm/unittests/Support/raw_ostream_test.cpp +++ /dev/null @@ -1,146 +0,0 @@ -//===- llvm/unittest/Support/raw_ostream_test.cpp - raw_ostream tests -----===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "gtest/gtest.h" -#include "llvm/ADT/SmallString.h" -#include "llvm/Support/Format.h" -#include "llvm/Support/raw_ostream.h" - -using namespace llvm; - -namespace { - -template<typename T> std::string printToString(const T &Value) { - std::string res; - llvm::raw_string_ostream(res) << Value; - return res; -} - -/// printToString - Print the given value to a stream which only has \arg -/// BytesLeftInBuffer bytes left in the buffer. This is useful for testing edge -/// cases in the buffer handling logic. -template<typename T> std::string printToString(const T &Value, - unsigned BytesLeftInBuffer) { - // FIXME: This is relying on internal knowledge of how raw_ostream works to - // get the buffer position right. - SmallString<256> SVec; - assert(BytesLeftInBuffer < 256 && "Invalid buffer count!"); - llvm::raw_svector_ostream OS(SVec); - unsigned StartIndex = 256 - BytesLeftInBuffer; - for (unsigned i = 0; i != StartIndex; ++i) - OS << '?'; - OS << Value; - return OS.str().substr(StartIndex); -} - -template<typename T> std::string printToStringUnbuffered(const T &Value) { - std::string res; - llvm::raw_string_ostream OS(res); - OS.SetUnbuffered(); - OS << Value; - return res; -} - -TEST(raw_ostreamTest, Types_Buffered) { - // Char - EXPECT_EQ("c", printToString('c')); - - // String - EXPECT_EQ("hello", printToString("hello")); - EXPECT_EQ("hello", printToString(std::string("hello"))); - - // Int - EXPECT_EQ("0", printToString(0)); - EXPECT_EQ("2425", printToString(2425)); - EXPECT_EQ("-2425", printToString(-2425)); - - // Long long - EXPECT_EQ("0", printToString(0LL)); - EXPECT_EQ("257257257235709", printToString(257257257235709LL)); - EXPECT_EQ("-257257257235709", printToString(-257257257235709LL)); - - // Double - EXPECT_EQ("1.100000e+00", printToString(1.1)); - - // void* - EXPECT_EQ("0x0", printToString((void*) 0)); - EXPECT_EQ("0xbeef", printToString((void*) 0xbeef)); - EXPECT_EQ("0xdeadbeef", printToString((void*) 0xdeadbeef)); - - // Min and max. - EXPECT_EQ("18446744073709551615", printToString(UINT64_MAX)); - EXPECT_EQ("-9223372036854775808", printToString(INT64_MIN)); -} - -TEST(raw_ostreamTest, Types_Unbuffered) { - // Char - EXPECT_EQ("c", printToStringUnbuffered('c')); - - // String - EXPECT_EQ("hello", printToStringUnbuffered("hello")); - EXPECT_EQ("hello", printToStringUnbuffered(std::string("hello"))); - - // Int - EXPECT_EQ("0", printToStringUnbuffered(0)); - EXPECT_EQ("2425", printToStringUnbuffered(2425)); - EXPECT_EQ("-2425", printToStringUnbuffered(-2425)); - - // Long long - EXPECT_EQ("0", printToStringUnbuffered(0LL)); - EXPECT_EQ("257257257235709", printToStringUnbuffered(257257257235709LL)); - EXPECT_EQ("-257257257235709", printToStringUnbuffered(-257257257235709LL)); - - // Double - EXPECT_EQ("1.100000e+00", printToStringUnbuffered(1.1)); - - // void* - EXPECT_EQ("0x0", printToStringUnbuffered((void*) 0)); - EXPECT_EQ("0xbeef", printToStringUnbuffered((void*) 0xbeef)); - EXPECT_EQ("0xdeadbeef", printToStringUnbuffered((void*) 0xdeadbeef)); - - // Min and max. - EXPECT_EQ("18446744073709551615", printToStringUnbuffered(UINT64_MAX)); - EXPECT_EQ("-9223372036854775808", printToStringUnbuffered(INT64_MIN)); -} - -TEST(raw_ostreamTest, BufferEdge) { - EXPECT_EQ("1.20", printToString(format("%.2f", 1.2), 1)); - EXPECT_EQ("1.20", printToString(format("%.2f", 1.2), 2)); - EXPECT_EQ("1.20", printToString(format("%.2f", 1.2), 3)); - EXPECT_EQ("1.20", printToString(format("%.2f", 1.2), 4)); - EXPECT_EQ("1.20", printToString(format("%.2f", 1.2), 10)); -} - -TEST(raw_ostreamTest, TinyBuffer) { - std::string Str; - raw_string_ostream OS(Str); - OS.SetBufferSize(1); - OS << "hello"; - OS << 1; - OS << 'w' << 'o' << 'r' << 'l' << 'd'; - EXPECT_EQ("hello1world", OS.str()); -} - -TEST(raw_ostreamTest, WriteEscaped) { - std::string Str; - - Str = ""; - raw_string_ostream(Str).write_escaped("hi"); - EXPECT_EQ("hi", Str); - - Str = ""; - raw_string_ostream(Str).write_escaped("\\\t\n\""); - EXPECT_EQ("\\\\\\t\\n\\\"", Str); - - Str = ""; - raw_string_ostream(Str).write_escaped("\1\10\200"); - EXPECT_EQ("\\001\\010\\200", Str); -} - -} |