Skip to content

Commit

Permalink
Merge pull request #882 from BenjaminW3/topic-update-catch2
Browse files Browse the repository at this point in the history
Update catch2 to 2.11.0 to use the new TEMPLATE_LIST_TEST_CASE feature
  • Loading branch information
BenjaminW3 authored Nov 23, 2019
2 parents 219d09d + f1ad7ff commit 1b66367
Show file tree
Hide file tree
Showing 25 changed files with 3,808 additions and 1,581 deletions.
5 changes: 3 additions & 2 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ ADD_SUBDIRECTORY("common/")
OPTION(ALPAKA_USE_INTERNAL_CATCH2 "Use internally shipped Catch2" ON)

IF(ALPAKA_USE_INTERNAL_CATCH2)
message(STATUS "Catch2: Using INTERNAL version 2.5.0")
message(STATUS "Catch2: Using INTERNAL version 2.11.0")
ELSE()
find_package(Catch2 2.4.0 CONFIG REQUIRED)
find_package(Catch2 2.11.0 CONFIG REQUIRED)
set_target_properties(Catch2::Catch2 PROPERTIES IMPORTED_GLOBAL TRUE)
message(STATUS "Catch2: Found version ${Catch2_VERSION}")
ENDIF()
Expand All @@ -46,6 +46,7 @@ IF(MSVC)
target_compile_definitions(CatchMain PUBLIC "CATCH_CONFIG_WINDOWS_CRTDBG")
target_compile_options(CatchMain PUBLIC "/bigobj")
ENDIF()

IF(ALPAKA_USE_INTERNAL_CATCH2)
target_include_directories(CatchMain SYSTEM PUBLIC
${CMAKE_CURRENT_LIST_DIR}/../thirdParty/catch2/include)
Expand Down
13 changes: 2 additions & 11 deletions test/unit/acc/src/AccNameTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,7 @@
#include <iostream>

//-----------------------------------------------------------------------------
struct TestTemplate
TEMPLATE_LIST_TEST_CASE( "getAccName", "[acc]", alpaka::test::acc::TestAccs)
{
template< typename TAcc >
void operator()()
{
std::cout << alpaka::acc::getAccName<TAcc>() << std::endl;
}
};

TEST_CASE( "getAccName", "[acc]")
{
alpaka::meta::forEachType< alpaka::test::acc::TestAccs >( TestTemplate() );
std::cout << alpaka::acc::getAccName<TestType>() << std::endl;
}
52 changes: 22 additions & 30 deletions test/unit/atomic/src/AtomicTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -943,36 +943,28 @@ struct TestAtomicOperations
}
};

//-----------------------------------------------------------------------------
struct TestTemplate
{
template< typename TAcc >
void operator()()
{
TestAtomicOperations<TAcc, unsigned char>::testAtomicOperations();
TestAtomicOperations<TAcc, char>::testAtomicOperations();
TestAtomicOperations<TAcc, unsigned short>::testAtomicOperations();
TestAtomicOperations<TAcc, short>::testAtomicOperations();

TestAtomicOperations<TAcc, unsigned int>::testAtomicOperations();
TestAtomicOperations<TAcc, int>::testAtomicOperations();

TestAtomicOperations<TAcc, unsigned long>::testAtomicOperations();
TestAtomicOperations<TAcc, long>::testAtomicOperations();
TestAtomicOperations<TAcc, unsigned long long>::testAtomicOperations();
TestAtomicOperations<TAcc, long long>::testAtomicOperations();

// Not all atomic operations are possible with floating point values.
//TestAtomicOperations<TAcc, float>::testAtomicOperations();
//TestAtomicOperations<TAcc, double>::testAtomicOperations();
}
};
using TestAccs = alpaka::test::acc::EnabledAccs<
alpaka::dim::DimInt<1u>,
std::size_t>;

TEST_CASE( "atomicOperationsWorking", "[atomic]")
//-----------------------------------------------------------------------------
TEMPLATE_LIST_TEST_CASE( "atomicOperationsWorking", "[atomic]", TestAccs)
{
using TestAccs = alpaka::test::acc::EnabledAccs<
alpaka::dim::DimInt<1u>,
std::size_t>;

alpaka::meta::forEachType< TestAccs >( TestTemplate() );
using Acc = TestType;
TestAtomicOperations<Acc, unsigned char>::testAtomicOperations();
TestAtomicOperations<Acc, char>::testAtomicOperations();
TestAtomicOperations<Acc, unsigned short>::testAtomicOperations();
TestAtomicOperations<Acc, short>::testAtomicOperations();

TestAtomicOperations<Acc, unsigned int>::testAtomicOperations();
TestAtomicOperations<Acc, int>::testAtomicOperations();

TestAtomicOperations<Acc, unsigned long>::testAtomicOperations();
TestAtomicOperations<Acc, long>::testAtomicOperations();
TestAtomicOperations<Acc, unsigned long long>::testAtomicOperations();
TestAtomicOperations<Acc, long long>::testAtomicOperations();

// Not all atomic operations are possible with floating point values.
//TestAtomicOperations<Acc, float>::testAtomicOperations();
//TestAtomicOperations<Acc, double>::testAtomicOperations();
}
18 changes: 5 additions & 13 deletions test/unit/block/shared/src/BlockSharedMemDyn.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,15 +78,13 @@ namespace alpaka
}

//-----------------------------------------------------------------------------
struct TestTemplate
TEMPLATE_LIST_TEST_CASE( "sameNonNullAdress", "[blockSharedMemDyn]", alpaka::test::acc::TestAccs)
{
template< typename TAcc >
void operator()()
{
using Dim = alpaka::dim::Dim<TAcc>;
using Idx = alpaka::idx::Idx<TAcc>;
using Acc = TestType;
using Dim = alpaka::dim::Dim<Acc>;
using Idx = alpaka::idx::Idx<Acc>;

alpaka::test::KernelExecutionFixture<TAcc> fixture(
alpaka::test::KernelExecutionFixture<Acc> fixture(
alpaka::vec::Vec<Dim, Idx>::ones());

BlockSharedMemDynTestKernel kernel;
Expand All @@ -95,9 +93,3 @@ void operator()()
fixture(
kernel));
}
};

TEST_CASE( "sameNonNullAdress", "[blockSharedMemDyn]")
{
alpaka::meta::forEachType< alpaka::test::acc::TestAccs >( TestTemplate() );
}
36 changes: 10 additions & 26 deletions test/unit/block/shared/src/BlockSharedMemSt.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,23 +68,20 @@ class BlockSharedMemStNonNullTestKernel
};

//-----------------------------------------------------------------------------
struct TestTemplateNonNull
TEMPLATE_LIST_TEST_CASE( "nonNull", "[blockSharedMemSt]", alpaka::test::acc::TestAccs)
{
template< typename TAcc >
void operator()()
{
using Dim = alpaka::dim::Dim<TAcc>;
using Idx = alpaka::idx::Idx<TAcc>;
using Acc = TestType;
using Dim = alpaka::dim::Dim<Acc>;
using Idx = alpaka::idx::Idx<Acc>;

// Use multiple threads to make sure the synchronization really works.
alpaka::test::KernelExecutionFixture<TAcc> fixture(
alpaka::test::KernelExecutionFixture<Acc> fixture(
alpaka::vec::Vec<Dim, Idx>::all(static_cast<Idx>(3u)));

BlockSharedMemStNonNullTestKernel kernel;

REQUIRE(fixture(kernel));
}
};

//#############################################################################
class BlockSharedMemStSameTypeDifferentAdressTestKernel
Expand Down Expand Up @@ -124,30 +121,17 @@ class BlockSharedMemStSameTypeDifferentAdressTestKernel
};

//-----------------------------------------------------------------------------
struct TestTemplateDiffAddress
{
template< typename TAcc >
void operator()()
TEMPLATE_LIST_TEST_CASE( "sameTypeDifferentAddress", "[blockSharedMemSt]", alpaka::test::acc::TestAccs)
{
using Dim = alpaka::dim::Dim<TAcc>;
using Idx = alpaka::idx::Idx<TAcc>;
using Acc = TestType;
using Dim = alpaka::dim::Dim<Acc>;
using Idx = alpaka::idx::Idx<Acc>;

// Use multiple threads to make sure the synchronization really works.
alpaka::test::KernelExecutionFixture<TAcc> fixture(
alpaka::test::KernelExecutionFixture<Acc> fixture(
alpaka::vec::Vec<Dim, Idx>::all(static_cast<Idx>(3u)));

BlockSharedMemStSameTypeDifferentAdressTestKernel kernel;

REQUIRE(fixture(kernel));
}
};

TEST_CASE( "nonNull", "[blockSharedMemSt]")
{
alpaka::meta::forEachType< alpaka::test::acc::TestAccs >( TestTemplateNonNull() );
}

TEST_CASE( "sameTypeDifferentAddress", "[blockSharedMemSt]")
{
alpaka::meta::forEachType< alpaka::test::acc::TestAccs >( TestTemplateDiffAddress() );
}
18 changes: 5 additions & 13 deletions test/unit/block/sync/src/BlockSync.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,15 +93,13 @@ namespace alpaka
}

//-----------------------------------------------------------------------------
struct TestTemplate
TEMPLATE_LIST_TEST_CASE( "synchronize", "[blockSync]", alpaka::test::acc::TestAccs)
{
template< typename TAcc >
void operator()()
{
using Dim = alpaka::dim::Dim<TAcc>;
using Idx = alpaka::idx::Idx<TAcc>;
using Acc = TestType;
using Dim = alpaka::dim::Dim<Acc>;
using Idx = alpaka::idx::Idx<Acc>;

alpaka::test::KernelExecutionFixture<TAcc> fixture(
alpaka::test::KernelExecutionFixture<Acc> fixture(
alpaka::vec::Vec<Dim, Idx>::all(static_cast<Idx>(BlockSyncTestKernel::gridThreadExtentPerDim)));

BlockSyncTestKernel kernel;
Expand All @@ -110,9 +108,3 @@ void operator()()
fixture(
kernel));
}
};

TEST_CASE( "synchronize", "[blockSync]")
{
alpaka::meta::forEachType< alpaka::test::acc::TestAccs >( TestTemplate() );
}
20 changes: 6 additions & 14 deletions test/unit/block/sync/src/BlockSyncPredicate.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,19 +88,17 @@ class BlockSyncPredicateTestKernel
};

//-----------------------------------------------------------------------------
struct TestTemplate
TEMPLATE_LIST_TEST_CASE( "synchronizePredicate", "[blockSync]", alpaka::test::acc::TestAccs)
{
template< typename TAcc >
void operator()()
{
using Dim = alpaka::dim::Dim<TAcc>;
using Idx = alpaka::idx::Idx<TAcc>;
using Acc = TestType;
using Dim = alpaka::dim::Dim<Acc>;
using Idx = alpaka::idx::Idx<Acc>;

BlockSyncPredicateTestKernel kernel;

// 4^Dim
{
alpaka::test::KernelExecutionFixture<TAcc> fixture(
alpaka::test::KernelExecutionFixture<Acc> fixture(
alpaka::vec::Vec<Dim, Idx>::all(static_cast<Idx>(4u)));

REQUIRE(
Expand All @@ -110,17 +108,11 @@ void operator()()

// 1^Dim
{
alpaka::test::KernelExecutionFixture<TAcc> fixture(
alpaka::test::KernelExecutionFixture<Acc> fixture(
alpaka::vec::Vec<Dim, Idx>::ones());

REQUIRE(
fixture(
kernel));
}
}
};

TEST_CASE( "synchronizePredicate", "[blockSync]")
{
alpaka::meta::forEachType< alpaka::test::acc::TestAccs >( TestTemplate() );
}
Loading

0 comments on commit 1b66367

Please sign in to comment.