summaryrefslogtreecommitdiffstats
path: root/src/disk_interface_test.cc
diff options
context:
space:
mode:
authorJan Niklas Hasse <jhasse@bixense.com>2020-12-07 18:46:10 (GMT)
committerJan Niklas Hasse <jhasse@bixense.com>2020-12-07 18:46:10 (GMT)
commit2d7f7e55c05a92033a1a62fbb6163e2e32aa81c3 (patch)
tree58b2a17a55409c4108aa54c5c71e542641f44d33 /src/disk_interface_test.cc
parent58f77f972bcece256c16ca1cc4a933270b1ea1c1 (diff)
downloadNinja-2d7f7e55c05a92033a1a62fbb6163e2e32aa81c3.zip
Ninja-2d7f7e55c05a92033a1a62fbb6163e2e32aa81c3.tar.gz
Ninja-2d7f7e55c05a92033a1a62fbb6163e2e32aa81c3.tar.bz2
Delete read-only files on Windows, too
Fixes main complaint of #1886.
Diffstat (limited to 'src/disk_interface_test.cc')
-rw-r--r--src/disk_interface_test.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/disk_interface_test.cc b/src/disk_interface_test.cc
index 066c770..b424243 100644
--- a/src/disk_interface_test.cc
+++ b/src/disk_interface_test.cc
@@ -211,6 +211,12 @@ TEST_F(DiskInterfaceTest, RemoveFile) {
EXPECT_EQ(0, disk_.RemoveFile(kFileName));
EXPECT_EQ(1, disk_.RemoveFile(kFileName));
EXPECT_EQ(1, disk_.RemoveFile("does not exist"));
+#ifdef _WIN32
+ ASSERT_TRUE(Touch(kFileName));
+ EXPECT_EQ(0, system((std::string("attrib +R ") + kFileName).c_str()));
+ EXPECT_EQ(0, disk_.RemoveFile(kFileName));
+ EXPECT_EQ(1, disk_.RemoveFile(kFileName));
+#endif
}
struct StatTest : public StateTestWithBuiltinRules,