Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Unified Diff: tools/gn/c_include_iterator_unittest.cc

Issue 231813002: Improve GN public header file checking (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/c_include_iterator.cc ('k') | tools/gn/header_checker.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/gn/c_include_iterator_unittest.cc
diff --git a/tools/gn/c_include_iterator_unittest.cc b/tools/gn/c_include_iterator_unittest.cc
index 53d41edd65822f4cca0482dc02219375775adca9..c5b971431541653857a6020e89396aaa3a1415a4 100644
--- a/tools/gn/c_include_iterator_unittest.cc
+++ b/tools/gn/c_include_iterator_unittest.cc
@@ -4,6 +4,20 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "tools/gn/c_include_iterator.h"
+#include "tools/gn/input_file.h"
+#include "tools/gn/location.h"
+
+namespace {
+
+bool RangeIs(const LocationRange& range,
+ int line, int begin_char, int end_char) {
+ return range.begin().line_number() == line &&
+ range.end().line_number() == line &&
+ range.begin().char_offset() == begin_char &&
+ range.end().char_offset() == end_char;
+}
+
+} // namespace
TEST(CIncludeIterator, Basic) {
std::string buffer;
@@ -19,18 +33,30 @@ TEST(CIncludeIterator, Basic) {
buffer.append("\n");
buffer.append("void SomeCode() {\n");
- CIncludeIterator iter(buffer);
+ InputFile file(SourceFile("//foo.cc"));
+ file.SetContents(buffer);
+
+ CIncludeIterator iter(&file);
base::StringPiece contents;
- EXPECT_TRUE(iter.GetNextIncludeString(&contents));
+ LocationRange range;
+ EXPECT_TRUE(iter.GetNextIncludeString(&contents, &range));
EXPECT_EQ("foo/bar.h", contents);
- EXPECT_TRUE(iter.GetNextIncludeString(&contents));
+ EXPECT_TRUE(RangeIs(range, 3, 11, 20)) << range.begin().Describe(true);
+
+ EXPECT_TRUE(iter.GetNextIncludeString(&contents, &range));
EXPECT_EQ("foo/baz.h", contents);
- EXPECT_TRUE(iter.GetNextIncludeString(&contents));
+ EXPECT_TRUE(RangeIs(range, 7, 12, 21)) << range.begin().Describe(true);
+
+ EXPECT_TRUE(iter.GetNextIncludeString(&contents, &range));
EXPECT_EQ("la/deda.h", contents);
- EXPECT_TRUE(iter.GetNextIncludeString(&contents));
+ EXPECT_TRUE(RangeIs(range, 8, 11, 20)) << range.begin().Describe(true);
+
+ EXPECT_TRUE(iter.GetNextIncludeString(&contents, &range));
EXPECT_EQ("weird_mac_import.h", contents);
- EXPECT_FALSE(iter.GetNextIncludeString(&contents));
+ EXPECT_TRUE(RangeIs(range, 9, 10, 28)) << range.begin().Describe(true);
+
+ EXPECT_FALSE(iter.GetNextIncludeString(&contents, &range));
}
// Tests that we don't search for includes indefinitely.
@@ -40,10 +66,14 @@ TEST(CIncludeIterator, GiveUp) {
buffer.append("x\n");
buffer.append("#include \"foo/bar.h\"\n");
+ InputFile file(SourceFile("//foo.cc"));
+ file.SetContents(buffer);
+
base::StringPiece contents;
+ LocationRange range;
- CIncludeIterator iter(buffer);
- EXPECT_FALSE(iter.GetNextIncludeString(&contents));
+ CIncludeIterator iter(&file);
+ EXPECT_FALSE(iter.GetNextIncludeString(&contents, &range));
EXPECT_TRUE(contents.empty());
}
@@ -58,10 +88,14 @@ TEST(CIncludeIterator, DontGiveUp) {
buffer.append("#preproc\n");
buffer.append("#include \"foo/bar.h\"\n");
+ InputFile file(SourceFile("//foo.cc"));
+ file.SetContents(buffer);
+
base::StringPiece contents;
+ LocationRange range;
- CIncludeIterator iter(buffer);
- EXPECT_TRUE(iter.GetNextIncludeString(&contents));
+ CIncludeIterator iter(&file);
+ EXPECT_TRUE(iter.GetNextIncludeString(&contents, &range));
EXPECT_EQ("foo/bar.h", contents);
}
@@ -81,12 +115,16 @@ TEST(CIncludeIterator, TolerateNonIncludes) {
buffer.append("#include \"" + include + "\"\n");
}
+ InputFile file(SourceFile("//foo.cc"));
+ file.SetContents(buffer);
+
base::StringPiece contents;
+ LocationRange range;
- CIncludeIterator iter(buffer);
+ CIncludeIterator iter(&file);
for (size_t group = 0; group < kGroupCount; group++) {
- EXPECT_TRUE(iter.GetNextIncludeString(&contents));
+ EXPECT_TRUE(iter.GetNextIncludeString(&contents, &range));
EXPECT_EQ(include, contents.as_string());
}
- EXPECT_FALSE(iter.GetNextIncludeString(&contents));
+ EXPECT_FALSE(iter.GetNextIncludeString(&contents, &range));
}
« no previous file with comments | « tools/gn/c_include_iterator.cc ('k') | tools/gn/header_checker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698