Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:22:26

0001 /**
0002  * TRACCC library, part of the ACTS project (R&D line)
0003  *
0004  * (c) 2021 CERN for the benefit of the ACTS project
0005  *
0006  * Mozilla Public License Version 2.0
0007  */
0008 
0009 #include <gtest/gtest.h>
0010 
0011 TEST(CUDABasic, DeviceCount) {
0012   int nDev = -1;
0013 
0014   ASSERT_EQ(cudaGetDeviceCount(&nDev), cudaSuccess);
0015 
0016   ASSERT_GE(nDev, 1);
0017 }
0018 
0019 TEST(CUDABasic, Memory) {
0020   void *ptr = nullptr;
0021 
0022   ASSERT_EQ(cudaMalloc(&ptr, 1024), cudaSuccess);
0023 
0024   ASSERT_NE(ptr, nullptr);
0025 
0026   ASSERT_EQ(cudaFree(ptr), cudaSuccess);
0027 }
0028 
0029 __global__ void testKernel(int *output) {
0030   *output = 0x0BADF00D;  // This test sponsored by R1.
0031 }
0032 
0033 TEST(CUDABasic, LaunchKernel) {
0034   int *ptr = nullptr;
0035   int val = 0;
0036 
0037   ASSERT_EQ(cudaMalloc(&ptr, sizeof(int)), cudaSuccess);
0038 
0039   ASSERT_NE(ptr, nullptr);
0040 
0041   testKernel<<<1, 1>>>(ptr);
0042 
0043   ASSERT_EQ(cudaPeekAtLastError(), cudaSuccess);
0044 
0045   ASSERT_EQ(cudaMemcpy(&val, ptr, sizeof(int), cudaMemcpyDeviceToHost),
0046             cudaSuccess);
0047 
0048   ASSERT_EQ(val, 0x0BADF00D);
0049 
0050   ASSERT_EQ(cudaFree(ptr), cudaSuccess);
0051 }