summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/unittests/Support/SourceMgrTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/llvm/unittests/Support/SourceMgrTest.cpp')
-rw-r--r--gnu/llvm/unittests/Support/SourceMgrTest.cpp499
1 files changed, 0 insertions, 499 deletions
diff --git a/gnu/llvm/unittests/Support/SourceMgrTest.cpp b/gnu/llvm/unittests/Support/SourceMgrTest.cpp
deleted file mode 100644
index 7bb76f556f7..00000000000
--- a/gnu/llvm/unittests/Support/SourceMgrTest.cpp
+++ /dev/null
@@ -1,499 +0,0 @@
-//===- unittests/Support/SourceMgrTest.cpp - SourceMgr tests --------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Support/SourceMgr.h"
-#include "llvm/Support/MemoryBuffer.h"
-#include "llvm/Support/raw_ostream.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-namespace {
-
-class SourceMgrTest : public testing::Test {
-public:
- SourceMgr SM;
- unsigned MainBufferID;
- std::string Output;
-
- void setMainBuffer(StringRef Text, StringRef BufferName) {
- std::unique_ptr<MemoryBuffer> MainBuffer =
- MemoryBuffer::getMemBuffer(Text, BufferName);
- MainBufferID = SM.AddNewSourceBuffer(std::move(MainBuffer), llvm::SMLoc());
- }
-
- SMLoc getLoc(unsigned Offset) {
- return SMLoc::getFromPointer(
- SM.getMemoryBuffer(MainBufferID)->getBufferStart() + Offset);
- }
-
- SMRange getRange(unsigned Offset, unsigned Length) {
- return SMRange(getLoc(Offset), getLoc(Offset + Length));
- }
-
- void printMessage(SMLoc Loc, SourceMgr::DiagKind Kind,
- const Twine &Msg, ArrayRef<SMRange> Ranges,
- ArrayRef<SMFixIt> FixIts) {
- raw_string_ostream OS(Output);
- SM.PrintMessage(OS, Loc, Kind, Msg, Ranges, FixIts);
- }
-};
-
-} // unnamed namespace
-
-TEST_F(SourceMgrTest, BasicError) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:1:5: error: message\n"
- "aaa bbb\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, BasicWarning) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Warning, "message", None, None);
-
- EXPECT_EQ("file.in:1:5: warning: message\n"
- "aaa bbb\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, BasicRemark) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Remark, "message", None, None);
-
- EXPECT_EQ("file.in:1:5: remark: message\n"
- "aaa bbb\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, BasicNote) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Note, "message", None, None);
-
- EXPECT_EQ("file.in:1:5: note: message\n"
- "aaa bbb\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtEndOfLine) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(6), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:1:7: error: message\n"
- "aaa bbb\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtNewline) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(7), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:1:8: error: message\n"
- "aaa bbb\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtEmptyBuffer) {
- setMainBuffer("", "file.in");
- printMessage(getLoc(0), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:1:1: error: message\n"
- "\n"
- "^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationJustOnSoleNewline) {
- setMainBuffer("\n", "file.in");
- printMessage(getLoc(0), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:1:1: error: message\n"
- "\n"
- "^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationJustAfterSoleNewline) {
- setMainBuffer("\n", "file.in");
- printMessage(getLoc(1), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:2:1: error: message\n"
- "\n"
- "^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationJustAfterNonNewline) {
- setMainBuffer("123", "file.in");
- printMessage(getLoc(3), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:1:4: error: message\n"
- "123\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationOnFirstLineOfMultiline) {
- setMainBuffer("1234\n6789\n", "file.in");
- printMessage(getLoc(3), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:1:4: error: message\n"
- "1234\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationOnEOLOfFirstLineOfMultiline) {
- setMainBuffer("1234\n6789\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:1:5: error: message\n"
- "1234\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationOnSecondLineOfMultiline) {
- setMainBuffer("1234\n6789\n", "file.in");
- printMessage(getLoc(5), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:2:1: error: message\n"
- "6789\n"
- "^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationOnSecondLineOfMultilineNoSecondEOL) {
- setMainBuffer("1234\n6789", "file.in");
- printMessage(getLoc(5), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:2:1: error: message\n"
- "6789\n"
- "^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationOnEOLOfSecondSecondLineOfMultiline) {
- setMainBuffer("1234\n6789\n", "file.in");
- printMessage(getLoc(9), SourceMgr::DK_Error, "message", None, None);
-
- EXPECT_EQ("file.in:2:5: error: message\n"
- "6789\n"
- " ^\n",
- Output);
-}
-
-#define STRING_LITERAL_253_BYTES \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n1234567890\n" \
- "1234567890\n"
-
-//===----------------------------------------------------------------------===//
-// 255-byte buffer tests
-//===----------------------------------------------------------------------===//
-
-TEST_F(SourceMgrTest, LocationBeforeEndOf255ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "12" // + 2 = 255 bytes
- , "file.in");
- printMessage(getLoc(253), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:1: error: message\n"
- "12\n"
- "^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtEndOf255ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "12" // + 2 = 255 bytes
- , "file.in");
- printMessage(getLoc(254), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:2: error: message\n"
- "12\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationPastEndOf255ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "12" // + 2 = 255 bytes
- , "file.in");
- printMessage(getLoc(255), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:3: error: message\n"
- "12\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationBeforeEndOf255ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "1\n" // + 2 = 255 bytes
- , "file.in");
- printMessage(getLoc(253), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:1: error: message\n"
- "1\n"
- "^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtEndOf255ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "1\n" // + 2 = 255 bytes
- , "file.in");
- printMessage(getLoc(254), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:2: error: message\n"
- "1\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationPastEndOf255ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "1\n" // + 2 = 255 bytes
- , "file.in");
- printMessage(getLoc(255), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:25:1: error: message\n"
- "\n"
- "^\n",
- Output);
-}
-
-//===----------------------------------------------------------------------===//
-// 256-byte buffer tests
-//===----------------------------------------------------------------------===//
-
-TEST_F(SourceMgrTest, LocationBeforeEndOf256ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "123" // + 3 = 256 bytes
- , "file.in");
- printMessage(getLoc(254), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:2: error: message\n"
- "123\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtEndOf256ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "123" // + 3 = 256 bytes
- , "file.in");
- printMessage(getLoc(255), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:3: error: message\n"
- "123\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationPastEndOf256ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "123" // + 3 = 256 bytes
- , "file.in");
- printMessage(getLoc(256), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:4: error: message\n"
- "123\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationBeforeEndOf256ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "12\n" // + 3 = 256 bytes
- , "file.in");
- printMessage(getLoc(254), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:2: error: message\n"
- "12\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtEndOf256ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "12\n" // + 3 = 256 bytes
- , "file.in");
- printMessage(getLoc(255), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:3: error: message\n"
- "12\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationPastEndOf256ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "12\n" // + 3 = 256 bytes
- , "file.in");
- printMessage(getLoc(256), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:25:1: error: message\n"
- "\n"
- "^\n",
- Output);
-}
-
-//===----------------------------------------------------------------------===//
-// 257-byte buffer tests
-//===----------------------------------------------------------------------===//
-
-TEST_F(SourceMgrTest, LocationBeforeEndOf257ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "1234" // + 4 = 257 bytes
- , "file.in");
- printMessage(getLoc(255), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:3: error: message\n"
- "1234\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtEndOf257ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "1234" // + 4 = 257 bytes
- , "file.in");
- printMessage(getLoc(256), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:4: error: message\n"
- "1234\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationPastEndOf257ByteBuffer) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "1234" // + 4 = 257 bytes
- , "file.in");
- printMessage(getLoc(257), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:5: error: message\n"
- "1234\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationBeforeEndOf257ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "123\n" // + 4 = 257 bytes
- , "file.in");
- printMessage(getLoc(255), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:3: error: message\n"
- "123\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationAtEndOf257ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "123\n" // + 4 = 257 bytes
- , "file.in");
- printMessage(getLoc(256), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:24:4: error: message\n"
- "123\n"
- " ^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, LocationPastEndOf257ByteBufferEndingInNewline) {
- setMainBuffer(STRING_LITERAL_253_BYTES // first 253 bytes
- "123\n" // + 4 = 257 bytes
- , "file.in");
- printMessage(getLoc(257), SourceMgr::DK_Error, "message", None, None);
- EXPECT_EQ("file.in:25:1: error: message\n"
- "\n"
- "^\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, BasicRange) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Error, "message", getRange(4, 3), None);
-
- EXPECT_EQ("file.in:1:5: error: message\n"
- "aaa bbb\n"
- " ^~~\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, RangeWithTab) {
- setMainBuffer("aaa\tbbb\nccc ddd\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Error, "message", getRange(3, 3), None);
-
- EXPECT_EQ("file.in:1:5: error: message\n"
- "aaa bbb\n"
- " ~~~~~^~\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, MultiLineRange) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Error, "message", getRange(4, 7), None);
-
- EXPECT_EQ("file.in:1:5: error: message\n"
- "aaa bbb\n"
- " ^~~\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, MultipleRanges) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- SMRange Ranges[] = { getRange(0, 3), getRange(4, 3) };
- printMessage(getLoc(4), SourceMgr::DK_Error, "message", Ranges, None);
-
- EXPECT_EQ("file.in:1:5: error: message\n"
- "aaa bbb\n"
- "~~~ ^~~\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, OverlappingRanges) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- SMRange Ranges[] = { getRange(0, 3), getRange(2, 4) };
- printMessage(getLoc(4), SourceMgr::DK_Error, "message", Ranges, None);
-
- EXPECT_EQ("file.in:1:5: error: message\n"
- "aaa bbb\n"
- "~~~~^~\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, BasicFixit) {
- setMainBuffer("aaa bbb\nccc ddd\n", "file.in");
- printMessage(getLoc(4), SourceMgr::DK_Error, "message", None,
- makeArrayRef(SMFixIt(getRange(4, 3), "zzz")));
-
- EXPECT_EQ("file.in:1:5: error: message\n"
- "aaa bbb\n"
- " ^~~\n"
- " zzz\n",
- Output);
-}
-
-TEST_F(SourceMgrTest, FixitForTab) {
- setMainBuffer("aaa\tbbb\nccc ddd\n", "file.in");
- printMessage(getLoc(3), SourceMgr::DK_Error, "message", None,
- makeArrayRef(SMFixIt(getRange(3, 1), "zzz")));
-
- EXPECT_EQ("file.in:1:4: error: message\n"
- "aaa bbb\n"
- " ^^^^^\n"
- " zzz\n",
- Output);
-}
-