test/hard_link_count(): Fix test on darwin

The hard link count that stat reports are different between normal hfs and the
case sensitive variant. Accept both.

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@278191 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Matthias Braun
2016-08-10 01:02:28 +00:00
parent 30b48cb1b3
commit 3df1df14bf

View File

@@ -45,18 +45,27 @@ TEST_CASE(hard_link_count_for_file)
TEST_CASE(hard_link_count_for_directory)
{
uintmax_t DirExpect = 3;
uintmax_t Dir3Expect = 2;
uintmax_t DirExpect = 3; // hard link from . .. and Dir2
uintmax_t Dir3Expect = 2; // hard link from . ..
uintmax_t DirExpectAlt = DirExpect;
uintmax_t Dir3ExpectAlt = Dir3Expect;
#if defined(__APPLE__)
DirExpect += 2;
Dir3Expect += 1;
// Filesystems formatted with case sensitive hfs+ behave unixish as
// expected. Normal hfs+ filesystems report the number of directory
// entries instead.
DirExpectAlt = 5; // . .. Dir2 file1 file2
Dir3Expect = 3; // . .. file5
#endif
TEST_CHECK(hard_link_count(StaticEnv::Dir) == DirExpect);
TEST_CHECK(hard_link_count(StaticEnv::Dir3) == Dir3Expect);
TEST_CHECK(hard_link_count(StaticEnv::Dir) == DirExpect ||
hard_link_count(StaticEnv::Dir) == DirExpectAlt);
TEST_CHECK(hard_link_count(StaticEnv::Dir3) == Dir3Expect ||
hard_link_count(StaticEnv::Dir3) == Dir3ExpectAlt);
std::error_code ec;
TEST_CHECK(hard_link_count(StaticEnv::Dir, ec) == DirExpect);
TEST_CHECK(hard_link_count(StaticEnv::Dir3, ec) == Dir3Expect);
TEST_CHECK(hard_link_count(StaticEnv::Dir, ec) == DirExpect ||
hard_link_count(StaticEnv::Dir, ec) == DirExpectAlt);
TEST_CHECK(hard_link_count(StaticEnv::Dir3, ec) == Dir3Expect ||
hard_link_count(StaticEnv::Dir3, ec) == Dir3ExpectAlt);
}
TEST_CASE(hard_link_count_increments_test)
{