Fix failing triple test for macOS 11 with non-zero minor versions.

Differential Revision: https://reviews.llvm.org/D94197
This commit is contained in:
Amara Emerson 2021-01-06 14:40:17 -08:00
parent 63aeaf754a
commit a1265690cf
2 changed files with 17 additions and 3 deletions

View File

@ -1264,6 +1264,14 @@ TEST(TripleTest, getOSVersion) {
EXPECT_EQ((unsigned)0, Minor);
EXPECT_EQ((unsigned)0, Micro);
// For darwin triples on macOS 11, only compare the major version.
T = Triple("x86_64-apple-darwin20.2");
EXPECT_TRUE(T.isMacOSX());
T.getMacOSXVersion(Major, Minor, Micro);
EXPECT_EQ((unsigned)11, Major);
EXPECT_EQ((unsigned)0, Minor);
EXPECT_EQ((unsigned)0, Micro);
T = Triple("armv7-apple-ios");
EXPECT_FALSE(T.isMacOSX());
EXPECT_TRUE(T.isiOS());

View File

@ -348,9 +348,15 @@ TEST_F(HostTest, getMacOSHostVersion) {
unsigned HostMajor, HostMinor, HostMicro;
ASSERT_EQ(HostTriple.getMacOSXVersion(HostMajor, HostMinor, HostMicro), true);
// Don't compare the 'Micro' version, as it's always '0' for the 'Darwin'
// triples.
ASSERT_EQ(std::tie(SystemMajor, SystemMinor), std::tie(HostMajor, HostMinor));
if (SystemMajor > 10) {
// Don't compare the 'Minor' and 'Micro' versions, as they're always '0' for
// the 'Darwin' triples on 11.x.
ASSERT_EQ(SystemMajor, HostMajor);
} else {
// Don't compare the 'Micro' version, as it's always '0' for the 'Darwin'
// triples.
ASSERT_EQ(std::tie(SystemMajor, SystemMinor), std::tie(HostMajor, HostMinor));
}
}
#endif