Arcane  v4.1.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
TestCommon.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* TestCommon.h (C) 2000-2026 */
9/* */
10/* Déclarations communes pour les tests. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_ACCELERATOR_TESTS_TESTCOMMON_H
13#define ARCCORE_ACCELERATOR_TESTS_TESTCOMMON_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/accelerator/AcceleratorGlobal.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21/*
22 * Les macros suivantes permettent de définir des tests en fonctions
23 * du support accélérateur disponible.
24 */
25#if defined(ARCCORE_HAS_CUDA)
26#define ARCCORE_TEST_DO_TEST_CUDA(name1, name2, func) \
27 TEST(name1, name2##_cuda) \
28 { \
29 func(true); \
30 }
31#else
32#define ARCCORE_TEST_DO_TEST_CUDA(name1, name2, func)
33#endif
34
35#if defined(ARCCORE_HAS_HIP)
36#define ARCCORE_TEST_DO_TEST_HIP(name1, name2, func) \
37 TEST(name1, name2##_hip) \
38 { \
39 func(true); \
40 }
41#else
42#define ARCCORE_TEST_DO_TEST_HIP(name1, name2, func)
43#endif
44
45#if defined(ARCCORE_HAS_SYCL)
46#define ARCCORE_TEST_DO_TEST_SYCL(name1, name2, func) \
47 TEST(name1, name2##_sycl) \
48 { \
49 func(true); \
50 }
51#else
52#define ARCCORE_TEST_DO_TEST_SYCL(name1, name2, func)
53#endif
54
55#define ARCCORE_TEST_DO_TEST_SEQUENTIAL(name1, name2, func) \
56 TEST(name1, name2) \
57 { \
58 func(false); \
59 }
60
62#define ARCCORE_TEST_DO_TEST_ACCELERATOR(name1, name2, func) \
63 ARCCORE_TEST_DO_TEST_CUDA(name1, name2, func); \
64 ARCCORE_TEST_DO_TEST_HIP(name1, name2, func); \
65 ARCCORE_TEST_DO_TEST_SYCL(name1, name2, func); \
66 ARCCORE_TEST_DO_TEST_SEQUENTIAL(name1, name2, func);
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71#endif