//===- 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/Support/raw_ostream.h" using namespace llvm; namespace { template std::string printToString(const T &Value) { std::string res; llvm::raw_string_ostream(res) << Value; return res; } template 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)); } 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)); } }