From 554bcb69c2d785a011a30e7db87a36a87fe7db10 Mon Sep 17 00:00:00 2001 From: dim Date: Wed, 15 Aug 2012 20:02:54 +0000 Subject: Vendor import of clang trunk r161861: http://llvm.org/svn/llvm-project/cfe/trunk@161861 --- unittests/Basic/SourceManagerTest.cpp | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) (limited to 'unittests/Basic/SourceManagerTest.cpp') diff --git a/unittests/Basic/SourceManagerTest.cpp b/unittests/Basic/SourceManagerTest.cpp index 429b58d..de3b723 100644 --- a/unittests/Basic/SourceManagerTest.cpp +++ b/unittests/Basic/SourceManagerTest.cpp @@ -107,6 +107,54 @@ TEST_F(SourceManagerTest, isBeforeInTranslationUnit) { EXPECT_TRUE(SourceMgr.isBeforeInTranslationUnit(idLoc, macroExpEndLoc)); } +TEST_F(SourceManagerTest, getColumnNumber) { + const char *Source = + "int x;\n" + "int y;"; + + MemoryBuffer *Buf = MemoryBuffer::getMemBuffer(Source); + FileID MainFileID = SourceMgr.createMainFileIDForMemBuffer(Buf); + + bool Invalid; + + Invalid = false; + EXPECT_EQ(1U, SourceMgr.getColumnNumber(MainFileID, 0, &Invalid)); + EXPECT_TRUE(!Invalid); + + Invalid = false; + EXPECT_EQ(5U, SourceMgr.getColumnNumber(MainFileID, 4, &Invalid)); + EXPECT_TRUE(!Invalid); + + Invalid = false; + EXPECT_EQ(1U, SourceMgr.getColumnNumber(MainFileID, 7, &Invalid)); + EXPECT_TRUE(!Invalid); + + Invalid = false; + EXPECT_EQ(5U, SourceMgr.getColumnNumber(MainFileID, 11, &Invalid)); + EXPECT_TRUE(!Invalid); + + Invalid = false; + EXPECT_EQ(7U, SourceMgr.getColumnNumber(MainFileID, strlen(Source), + &Invalid)); + EXPECT_TRUE(!Invalid); + + Invalid = false; + SourceMgr.getColumnNumber(MainFileID, strlen(Source)+1, &Invalid); + EXPECT_TRUE(Invalid); + + // Test invalid files + Invalid = false; + SourceMgr.getColumnNumber(FileID(), 0, &Invalid); + EXPECT_TRUE(Invalid); + + Invalid = false; + SourceMgr.getColumnNumber(FileID(), 1, &Invalid); + EXPECT_TRUE(Invalid); + + // Test with no invalid flag. + EXPECT_EQ(1U, SourceMgr.getColumnNumber(MainFileID, 0, NULL)); +} + #if defined(LLVM_ON_UNIX) TEST_F(SourceManagerTest, getMacroArgExpandedLocation) { -- cgit v1.1