diff options
author | Scott Graham <scottmg@chromium.org> | 2012-09-17 22:46:55 (GMT) |
---|---|---|
committer | Scott Graham <scottmg@chromium.org> | 2012-09-17 22:46:55 (GMT) |
commit | 0adc69945cb9a0d6b7d150b409ddcc7194552b93 (patch) | |
tree | 9927c97a8118c6a7332df6a96d7b6a10ccab7c78 /src/msvc_helper_test.cc | |
parent | d95fcb0cdc816e2585ce9a65676320d71af78c7f (diff) | |
download | Ninja-0adc69945cb9a0d6b7d150b409ddcc7194552b93.zip Ninja-0adc69945cb9a0d6b7d150b409ddcc7194552b93.tar.gz Ninja-0adc69945cb9a0d6b7d150b409ddcc7194552b93.tar.bz2 |
don't emit duplicate headers for msvc helper
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()); +} |