Skip to content
Snippets Groups Projects
Commit 72f15f7f authored by Slattery, Stuart's avatar Slattery, Stuart
Browse files

adding portable tests

parent efca76d3
No related branches found
No related tags found
1 merge request!7Kokkos Portability Layer
Showing
with 133 additions and 28 deletions
SET(PASS_RE "No errors detected") SET(PASS_RE "No errors detected")
SET(FAIL_RE "detected in the test module") SET(FAIL_RE "detected in the test module")
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
INCLUDE_DIRECTORIES(REQUIRED_DURING_INSTALLATION_TESTING ${CMAKE_CURRENT_SOURCE_DIR})
##--------------------------------------------------------------------------##
## General tests.
##--------------------------------------------------------------------------## ##--------------------------------------------------------------------------##
TRIBITS_ADD_EXECUTABLE_AND_TEST( TRIBITS_ADD_EXECUTABLE_AND_TEST(
Version_test Version_test
...@@ -10,7 +15,6 @@ TRIBITS_ADD_EXECUTABLE_AND_TEST( ...@@ -10,7 +15,6 @@ TRIBITS_ADD_EXECUTABLE_AND_TEST(
FAIL_REGULAR_EXPRESSION "${FAIL_RE}" FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
) )
##--------------------------------------------------------------------------##
TRIBITS_ADD_EXECUTABLE_AND_TEST( TRIBITS_ADD_EXECUTABLE_AND_TEST(
Index_test Index_test
SOURCES tstIndex.cpp unit_test_main.cpp SOURCES tstIndex.cpp unit_test_main.cpp
...@@ -19,7 +23,6 @@ TRIBITS_ADD_EXECUTABLE_AND_TEST( ...@@ -19,7 +23,6 @@ TRIBITS_ADD_EXECUTABLE_AND_TEST(
FAIL_REGULAR_EXPRESSION "${FAIL_RE}" FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
) )
##--------------------------------------------------------------------------##
TRIBITS_ADD_EXECUTABLE_AND_TEST( TRIBITS_ADD_EXECUTABLE_AND_TEST(
SoA_test SoA_test
SOURCES tstSoA.cpp unit_test_main.cpp SOURCES tstSoA.cpp unit_test_main.cpp
...@@ -29,30 +32,96 @@ TRIBITS_ADD_EXECUTABLE_AND_TEST( ...@@ -29,30 +32,96 @@ TRIBITS_ADD_EXECUTABLE_AND_TEST(
) )
##--------------------------------------------------------------------------## ##--------------------------------------------------------------------------##
TRIBITS_ADD_EXECUTABLE_AND_TEST( ## Serial tests.
AoSoA_test ##--------------------------------------------------------------------------##
SOURCES tstAoSoA.cpp unit_test_main.cpp IF(Cabana_ENABLE_Serial)
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}" TRIBITS_ADD_EXECUTABLE_AND_TEST(
FAIL_REGULAR_EXPRESSION "${FAIL_RE}" AoSoA_test_Serial
) SOURCES serial/tstAoSoA_Serial.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
MemberSlice_test_Serial
SOURCES serial/tstMemberSlice_Serial.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
Parallel_test_Serial
SOURCES serial/tstParallel_Serial.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
ENDIF()
##--------------------------------------------------------------------------## ##--------------------------------------------------------------------------##
TRIBITS_ADD_EXECUTABLE_AND_TEST( ## OpenMP tests.
MemberSlice_test ##--------------------------------------------------------------------------##
SOURCES tstMemberSlice.cpp unit_test_main.cpp IF(Cabana_ENABLE_OpenMP)
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}" TRIBITS_ADD_EXECUTABLE_AND_TEST(
FAIL_REGULAR_EXPRESSION "${FAIL_RE}" AoSoA_test_OpenMP
) SOURCES openmp/tstAoSoA_OpenMP.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
MemberSlice_test_OpenMP
SOURCES openmp/tstMemberSlice_OpenMP.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
Parallel_test_OpenMP
SOURCES openmp/tstParallel_OpenMP.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
ENDIF()
##--------------------------------------------------------------------------## ##--------------------------------------------------------------------------##
TRIBITS_ADD_EXECUTABLE_AND_TEST( ## Cuda tests.
Parallel_test ##--------------------------------------------------------------------------##
SOURCES tstParallel.cpp unit_test_main.cpp IF(Cabana_ENABLE_Cuda)
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}" TRIBITS_ADD_EXECUTABLE_AND_TEST(
FAIL_REGULAR_EXPRESSION "${FAIL_RE}" AoSoA_test_CudaUVM
) SOURCES cuda/tstAoSoA_CudaUVM.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
MemberSlice_test_CudaUVM
SOURCES cuda/tstMemberSlice_CudaUVM.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
TRIBITS_ADD_EXECUTABLE_AND_TEST(
Parallel_test_CudaUVM
SOURCES cuda/tstParallel_CudaUVM.cpp unit_test_main.cpp
COMM serial mpi
PASS_REGULAR_EXPRESSION "${PASS_RE}"
FAIL_REGULAR_EXPRESSION "${FAIL_RE}"
)
ENDIF()
##--------------------------------------------------------------------------## ##--------------------------------------------------------------------------##
\ No newline at end of file
#ifndef CABANA_TEST_CUDAUVM_CATEGORY_HPP
#define CABANA_TEST_CUDAUVM_CATEGORY_HPP
#define TEST_EXECSPACE Kokkos::CudaUVM
#endif // end CABANA_TEST_CUDAUVM_CATEGORY_HPP
#include <cuda/TestCudaUVM_Category.hpp>
#include <tstAoSoA.hpp>
#include <cuda/TestCudaUVM_Category.hpp>
#include <tstMemberSlice.hpp>
#include <cuda/TestCudaUVM_Category.hpp>
#include <tstParallel.hpp>
#ifndef CABANA_TEST_OPENMP_CATEGORY_HPP
#define CABANA_TEST_OPENMP_CATEGORY_HPP
#define TEST_EXECSPACE Kokkos::OpenMP
#endif // end CABANA_TEST_OPENMP_CATEGORY_HPP
#include <openmp/TestOpenMP_Category.hpp>
#include <tstAoSoA.hpp>
#include <openmp/TestOpenMP_Category.hpp>
#include <tstMemberSlice.hpp>
#include <openmp/TestOpenMP_Category.hpp>
#include <tstParallel.hpp>
#ifndef CABANA_TEST_SERIAL_CATEGORY_HPP
#define CABANA_TEST_SERIAL_CATEGORY_HPP
#define TEST_EXECSPACE Kokkos::Serial
#endif // end CABANA_TEST_SERIAL_CATEGORY_HPP
#include <serial/TestSerial_Category.hpp>
#include <tstAoSoA.hpp>
#include <serial/TestSerial_Category.hpp>
#include <tstMemberSlice.hpp>
#include <serial/TestSerial_Category.hpp>
#include <tstParallel.hpp>
...@@ -66,7 +66,7 @@ BOOST_AUTO_TEST_CASE( aosoa_serial_api_test ) ...@@ -66,7 +66,7 @@ BOOST_AUTO_TEST_CASE( aosoa_serial_api_test )
>; >;
// Declare the AoSoA type. // Declare the AoSoA type.
using AoSoA_t = Cabana::AoSoA<DataTypes,inner_array_size,Kokkos::Serial>; using AoSoA_t = Cabana::AoSoA<DataTypes,inner_array_size,TEST_EXECSPACE>;
// Make sure that it is actually an AoSoA. // Make sure that it is actually an AoSoA.
BOOST_TEST( Cabana::is_aosoa<AoSoA_t>::value ); BOOST_TEST( Cabana::is_aosoa<AoSoA_t>::value );
...@@ -250,7 +250,7 @@ BOOST_AUTO_TEST_CASE( aosoa_raw_data_test ) ...@@ -250,7 +250,7 @@ BOOST_AUTO_TEST_CASE( aosoa_raw_data_test )
>; >;
// Declare the AoSoA type. // Declare the AoSoA type.
using AoSoA_t = Cabana::AoSoA<DataTypes,inner_array_size,Kokkos::Serial>; using AoSoA_t = Cabana::AoSoA<DataTypes,inner_array_size,TEST_EXECSPACE>;
// Create an AoSoA using the default constructor. // Create an AoSoA using the default constructor.
std::size_t num_data = 350; std::size_t num_data = 350;
......
...@@ -67,7 +67,7 @@ BOOST_AUTO_TEST_CASE( slice_serial_api_test ) ...@@ -67,7 +67,7 @@ BOOST_AUTO_TEST_CASE( slice_serial_api_test )
>; >;
// Declare the AoSoA type. // Declare the AoSoA type.
using AoSoA_t = Cabana::AoSoA<DataTypes,inner_array_size,Kokkos::Serial>; using AoSoA_t = Cabana::AoSoA<DataTypes,inner_array_size,TEST_EXECSPACE>;
// Make sure that it is actually an AoSoA. // Make sure that it is actually an AoSoA.
BOOST_TEST( Cabana::is_aosoa<AoSoA_t>::value ); BOOST_TEST( Cabana::is_aosoa<AoSoA_t>::value );
......
...@@ -68,14 +68,14 @@ BOOST_AUTO_TEST_CASE( parallel_for_test ) ...@@ -68,14 +68,14 @@ BOOST_AUTO_TEST_CASE( parallel_for_test )
>; >;
// Declare the AoSoA type. // Declare the AoSoA type.
using AoSoA_t = Cabana::AoSoA<DataTypes,inner_array_size,Kokkos::Serial>; using AoSoA_t = Cabana::AoSoA<DataTypes,inner_array_size,TEST_EXECSPACE>;
// Create an AoSoA. // Create an AoSoA.
std::size_t num_data = 155; std::size_t num_data = 155;
AoSoA_t aosoa( num_data ); AoSoA_t aosoa( num_data );
// Create an execution policy. // Create an execution policy.
Cabana::IndexRangePolicy<Kokkos::Serial> Cabana::IndexRangePolicy<TEST_EXECSPACE>
range_policy( aosoa.begin(), aosoa.end() ); range_policy( aosoa.begin(), aosoa.end() );
// Write a functor to operate on. // Write a functor to operate on.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment