diff options
author | Zachary Turner <zturner@google.com> | 2016-08-05 16:45:07 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-08-05 16:45:07 +0000 |
commit | 67cb90ba95b4fa03292eb0348f86b8d6642c1583 (patch) | |
tree | e986fa42ddbc4102475bc6c1a080b0998307d919 | |
parent | 9e4374daa3954d4603b6fd64c741cb080da79e44 (diff) | |
download | bcm5719-llvm-67cb90ba95b4fa03292eb0348f86b8d6642c1583.tar.gz bcm5719-llvm-67cb90ba95b4fa03292eb0348f86b8d6642c1583.zip |
Fix TargetParser unit tests for ARM / AArch64.
String pooling is not guaranteed by the standard, so if
you're comparing two different string literals for equality,
you have to use strcmp.
llvm-svn: 277831
-rw-r--r-- | llvm/unittests/Support/TargetParserTest.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp index ae96571a3dd..18a0816b19e 100644 --- a/llvm/unittests/Support/TargetParserTest.cpp +++ b/llvm/unittests/Support/TargetParserTest.cpp @@ -81,6 +81,13 @@ bool contains(const T (&array)[N], const T element) { std::end(array); } +template <size_t N> +bool contains(const char *(&array)[N], const char *element) { + return std::find_if(std::begin(array), std::end(array), [&](const char *S) { + return ::strcmp(S, element) == 0; + }) != std::end(array); +} + TEST(TargetParserTest, ARMArchName) { for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0); AK <= ARM::ArchKind::AK_LAST; @@ -313,10 +320,12 @@ TEST(TargetParserTest, ARMparseCPUArch) { "cortex-a73", "cyclone", "exynos-m1", "exynos-m2", "iwmmxt", "xscale", "swift"}; - for (const auto &ARMCPUName : kARMCPUNames) - EXPECT_TRUE(contains(CPU, ARMCPUName.Name) - ? (ARM::AK_INVALID != ARM::parseCPUArch(ARMCPUName.Name)) - : (ARM::AK_INVALID == ARM::parseCPUArch(ARMCPUName.Name))); + for (const auto &ARMCPUName : kARMCPUNames) { + if (contains(CPU, ARMCPUName.Name)) + EXPECT_NE(ARM::AK_INVALID, ARM::parseCPUArch(ARMCPUName.Name)); + else + EXPECT_EQ(ARM::AK_INVALID, ARM::parseCPUArch(ARMCPUName.Name)); + } } TEST(TargetParserTest, ARMparseArchEndianAndISA) { |