summaryrefslogtreecommitdiffstats
path: root/src/msvc_helper_test.cc
diff options
context:
space:
mode:
authorScott Graham <scottmg@chromium.org>2012-09-17 22:46:55 (GMT)
committerScott Graham <scottmg@chromium.org>2012-09-17 22:46:55 (GMT)
commit0adc69945cb9a0d6b7d150b409ddcc7194552b93 (patch)
tree9927c97a8118c6a7332df6a96d7b6a10ccab7c78 /src/msvc_helper_test.cc
parentd95fcb0cdc816e2585ce9a65676320d71af78c7f (diff)
downloadNinja-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.cc28
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());
+}