[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