1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

unitests: add some ARM TargetParser tests

The ARM TargetParser would construct invalid StringRefs.  This would cause
asserts to trigger.  Add some tests in LLVM to ensure that we dont regress on
this in the future.  Although there is a test for this in clang, this ensures
that the changes would get caught in the same repository.

llvm-svn: 262790
This commit is contained in:
Saleem Abdulrasool 2016-03-06 04:50:55 +00:00
parent 719b432be1
commit 2c4c7d140a
2 changed files with 52 additions and 0 deletions

View File

@ -38,6 +38,7 @@ add_llvm_unittest(SupportTests
StreamingMemoryObject.cpp
StringPool.cpp
SwapByteOrderTest.cpp
TargetParserTest.cpp
ThreadLocalTest.cpp
ThreadPool.cpp
TimerTest.cpp

View File

@ -0,0 +1,51 @@
//===----------- TargetParser.cpp - Target Parser -------------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "gtest/gtest.h"
#include "llvm/Support/TargetParser.h"
using namespace llvm;
namespace {
TEST(TargetParserTest, ARMArchName) {
for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0);
AK <= ARM::ArchKind::AK_LAST;
AK = static_cast<ARM::ArchKind>(static_cast<unsigned>(AK) + 1))
EXPECT_TRUE(AK == ARM::AK_LAST ? ARM::getArchName(AK).empty()
: !ARM::getArchName(AK).empty());
}
TEST(TargetParserTest, ARMCPUAttr) {
for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0);
AK <= ARM::ArchKind::AK_LAST;
AK = static_cast<ARM::ArchKind>(static_cast<unsigned>(AK) + 1))
EXPECT_TRUE((AK == ARM::AK_INVALID || AK == ARM::AK_LAST)
? ARM::getCPUAttr(AK).empty()
: !ARM::getCPUAttr(AK).empty());
}
TEST(TargetParserTest, ARMSubArch) {
for (ARM::ArchKind AK = static_cast<ARM::ArchKind>(0);
AK <= ARM::ArchKind::AK_LAST;
AK = static_cast<ARM::ArchKind>(static_cast<unsigned>(AK) + 1))
EXPECT_TRUE((AK == ARM::AK_INVALID || AK == ARM::AK_IWMMXT ||
AK == ARM::AK_IWMMXT2 || AK == ARM::AK_LAST)
? ARM::getSubArch(AK).empty()
: !ARM::getSubArch(AK).empty());
}
TEST(TargetParserTest, ARMFPUName) {
for (ARM::FPUKind FK = static_cast<ARM::FPUKind>(0);
FK <= ARM::FPUKind::FK_LAST;
FK = static_cast<ARM::FPUKind>(static_cast<unsigned>(FK) + 1))
EXPECT_TRUE(FK == ARM::FK_LAST ? ARM::getFPUName(FK).empty()
: !ARM::getFPUName(FK).empty());
}
}