[llvm] r262790 - unitests: add some ARM TargetParser tests
    Saleem Abdulrasool via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sat Mar  5 20:50:55 PST 2016
    
    
  
Author: compnerd
Date: Sat Mar  5 22:50:55 2016
New Revision: 262790
URL: http://llvm.org/viewvc/llvm-project?rev=262790&view=rev
Log:
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.
Added:
    llvm/trunk/unittests/Support/TargetParserTest.cpp
Modified:
    llvm/trunk/unittests/Support/CMakeLists.txt
Modified: llvm/trunk/unittests/Support/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/CMakeLists.txt?rev=262790&r1=262789&r2=262790&view=diff
==============================================================================
--- llvm/trunk/unittests/Support/CMakeLists.txt (original)
+++ llvm/trunk/unittests/Support/CMakeLists.txt Sat Mar  5 22:50:55 2016
@@ -38,6 +38,7 @@ add_llvm_unittest(SupportTests
   StreamingMemoryObject.cpp
   StringPool.cpp
   SwapByteOrderTest.cpp
+  TargetParserTest.cpp
   ThreadLocalTest.cpp
   ThreadPool.cpp
   TimerTest.cpp
Added: llvm/trunk/unittests/Support/TargetParserTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/TargetParserTest.cpp?rev=262790&view=auto
==============================================================================
--- llvm/trunk/unittests/Support/TargetParserTest.cpp (added)
+++ llvm/trunk/unittests/Support/TargetParserTest.cpp Sat Mar  5 22:50:55 2016
@@ -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());
+}
+}
+
    
    
More information about the llvm-commits
mailing list