[llvm] r262790 - unitests: add some ARM TargetParser tests

Renato Golin via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 6 00:01:41 PST 2016


Thanks Saleem, we really needed something like this. I'll make a note
to extend it, so we can retire the Clang tests.

--renato

On 6 March 2016 at 04:50, Saleem Abdulrasool via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> 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());
> +}
> +}
> +
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list