mirror of
https://github.com/RPCSX/llvm.git
synced 2025-02-21 21:41:43 +00: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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@262790 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
41664c2aeb
commit
88e2967579
@ -38,6 +38,7 @@ add_llvm_unittest(SupportTests
|
||||
StreamingMemoryObject.cpp
|
||||
StringPool.cpp
|
||||
SwapByteOrderTest.cpp
|
||||
TargetParserTest.cpp
|
||||
ThreadLocalTest.cpp
|
||||
ThreadPool.cpp
|
||||
TimerTest.cpp
|
||||
|
51
unittests/Support/TargetParserTest.cpp
Normal file
51
unittests/Support/TargetParserTest.cpp
Normal 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());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user