diff options
Diffstat (limited to 'src/msvc_helper_test.cc')
-rw-r--r-- | src/msvc_helper_test.cc | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/src/msvc_helper_test.cc b/src/msvc_helper_test.cc index 29fefd4..85ac039 100644 --- a/src/msvc_helper_test.cc +++ b/src/msvc_helper_test.cc @@ -48,7 +48,7 @@ TEST(MSVCHelperTest, Run) { &output); ASSERT_EQ("foo\nbar\n", output); ASSERT_EQ(1u, cl.includes_.size()); - ASSERT_EQ("foo.h", cl.includes_[0]); + ASSERT_EQ("foo.h", *cl.includes_.begin()); } TEST(MSVCHelperTest, RunFilenameFilter) { @@ -70,7 +70,7 @@ TEST(MSVCHelperTest, RunSystemInclude) { // system headers. ASSERT_EQ("", output); ASSERT_EQ(1u, cl.includes_.size()); - ASSERT_EQ("path.h", cl.includes_[0]); + ASSERT_EQ("path.h", *cl.includes_.begin()); } TEST(MSVCHelperTest, EnvBlock) { @@ -81,3 +81,27 @@ TEST(MSVCHelperTest, EnvBlock) { cl.Run("cmd /c \"echo foo is %foo%", &output); ASSERT_EQ("foo is bar\n", output); } + +TEST(MSVCHelperTest, DuplicatedHeader) { + CLWrapper cl; + string output; + cl.Run("cmd /c \"echo Note: including file: foo.h&&" + "echo Note: including file: bar.h&&" + "echo Note: including file: foo.h\"", + &output); + // We should have dropped one copy of foo.h. + ASSERT_EQ("", output); + ASSERT_EQ(2u, cl.includes_.size()); +} + +TEST(MSVCHelperTest, DuplicatedHeaderPathConverted) { + CLWrapper cl; + string output; + cl.Run("cmd /c \"echo Note: including file: sub/foo.h&&" + "echo Note: including file: bar.h&&" + "echo Note: including file: sub\\foo.h\"", + &output); + // We should have dropped one copy of foo.h. + ASSERT_EQ("", output); + ASSERT_EQ(2u, cl.includes_.size()); +} |