# this file simulates an execution of cuda-memcheck

set(LOG_FILE "$ENV{PSEUDO_LOGFILE}")
message("LOG_FILE=[${LOG_FILE}]")

# clear the log file
file(REMOVE "${LOG_FILE}")

# create an error of each type of sanitizer tool and failure

# initcheck
file(APPEND "${LOG_FILE}"
"========= CUDA-MEMCHECK
========= Uninitialized __global__ memory read of size 4
=========     at 0x00000020 in test(int*, int*)
=========     by thread (0,0,0) in block (0,0,0)
=========     Address 0x1303d80000
=========     Saved host backtrace up to driver entry point
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./uninit-read [0x101d9]
=========     Host Frame:./uninit-read [0x10267]
=========     Host Frame:./uninit-read [0x465b5]
=========     Host Frame:./uninit-read [0x3342]
=========     Host Frame:./uninit-read [0x3143]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./uninit-read [0x31e2]
=========
========= Unused memory in allocation 0x1303d80000 of size 16 bytes
=========     Not written any memory.
=========     100.00% of allocation were unused.
=========     Saved host backtrace up to driver entry point
=========     Host Frame:/lib64/libcuda.so.1 (cuMemAlloc_v2 + 0x1b7) [0x26ec97]
=========     Host Frame:./uninit-read [0x2bbd3]
=========     Host Frame:./uninit-read [0x71ab]
=========     Host Frame:./uninit-read [0x3c84f]
=========     Host Frame:./uninit-read [0x3111]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./uninit-read [0x31e2]
=========
========= Host API memory access error at host access to 0x1303fd1400 of size 25600 bytes
=========     Uninitialized access at 0x1303fd4600 on access by cudaMemcopy source.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/usr/lib/x86_64-linux-gnu/libcuda.so.1 (cuMemcpyDtoH_v2 + 0x1ec) [0x29200c]
=========     Host Frame:/usr/local/cuda/targets/x86_64-linux/lib/libcudart.so.10.1 [0x38aaa]
=========     Host Frame:/usr/local/cuda/targets/x86_64-linux/lib/libcudart.so.10.1 [0x18946]
=========     Host Frame:/usr/local/cuda/targets/x86_64-linux/lib/libcudart.so.10.1 (cudaMemcpy + 0x1a2) [0x3b8c2]
=========     Host Frame:/something/somewhere [0xcafe]
=========
========= ERROR SUMMARY: 2 errors
")


# synccheck
file(APPEND "${LOG_FILE}"
"========= CUDA-MEMCHECK
========= Barrier error detected. Divergent thread(s) in warp
=========     at 0x00000058 in test(int*, int*)
=========     by thread (1,0,0) in block (0,0,0)
=========     Device Frame:test(int*, int*) (test(int*, int*) : 0x60)
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./sync [0x101d9]
=========     Host Frame:./sync [0x10267]
=========     Host Frame:./sync [0x465b5]
=========     Host Frame:./sync [0x3342]
=========     Host Frame:./sync [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./sync [0x31e2]
=========
========= Barrier error detected. Divergent thread(s) in warp
=========     at 0x00000058 in test(int*, int*)
=========     by thread (0,0,0) in block (0,0,0)
=========     Device Frame:test(int*, int*) (test(int*, int*) : 0x60)
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./sync [0x101d9]
=========     Host Frame:./sync [0x10267]
=========     Host Frame:./sync [0x465b5]
=========     Host Frame:./sync [0x3342]
=========     Host Frame:./sync [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./sync [0x31e2]
=========
========= ERROR SUMMARY: 2 errors
")

# memcheck
file(APPEND "${LOG_FILE}"
"========= CUDA-MEMCHECK
========= Invalid __global__ read of size 4
=========     at 0x00000020 in test(int*, int*)
=========     by thread (0,0,0) in block (0,0,0)
=========     Address 0x00000000 is out of bounds
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./invalid-read [0x101d9]
=========     Host Frame:./invalid-read [0x10267]
=========     Host Frame:./invalid-read [0x465b5]
=========     Host Frame:./invalid-read [0x3342]
=========     Host Frame:./invalid-read [0x3142]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./invalid-read [0x31e2]
=========
========= Program hit cudaErrorLaunchFailure (error 719) due to \"unspecified launch failure\" on CUDA API call to cudaDeviceSynchronize.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/lib64/libcuda.so.1 [0x3ac5a3]
=========     Host Frame:./invalid-read [0x2e576]
=========     Host Frame:./invalid-read [0x3147]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./invalid-read [0x31e2]
=========
========= Program hit cudaErrorLaunchFailure (error 719) due to \"unspecified launch failure\" on CUDA API call to cudaFree.
=========     Saved host backtrace up to driver entry point at error
=========     Host Frame:/lib64/libcuda.so.1 [0x3ac5a3]
=========     Host Frame:./invalid-read [0x3c106]
=========     Host Frame:./invalid-read [0x3150]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./invalid-read [0x31e2]
=========
========= Fatal UVM GPU fault of type invalid pde due to invalid address
=========     during atomic access to address 0x20be00000
=========
========= Fatal UVM CPU fault due to invalid operation
=========     during read access to address 0x1357c92000
=========
========= LEAK SUMMARY: 0 bytes leaked in 0 allocations
========= ERROR SUMMARY: 3 errors
")

# memcheck with leak-check full
file(APPEND "${LOG_FILE}"
"========= CUDA-MEMCHECK
========= Leaked 10 bytes at 0x1303d80000
=========     Saved host backtrace up to driver entry point at cudaMalloc time
=========     Host Frame:/lib64/libcuda.so.1 (cuMemAlloc_v2 + 0x1b7) [0x26ec97]
=========     Host Frame:./leak [0x2bab3]
=========     Host Frame:./leak [0x708b]
=========     Host Frame:./leak [0x3c72f]
=========     Host Frame:./leak [0x3113]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./leak [0x3174]
=========
========= LEAK SUMMARY: 10 bytes leaked in 1 allocations
========= ERROR SUMMARY: 1 error
")

# racecheck with racecheck-report all
file(APPEND "${LOG_FILE}"
"========= CUDA-MEMCHECK
========= WARN:(Warp Level Programming) Potential WAR hazard detected at __shared__ 0x3 in block (0, 0, 0) :
=========     Read Thread (31, 0, 0) at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     Write Thread (0, 0, 0) at 0x000001a8 in ./race.cu:4:test(int*, int*)
=========     Current Value : 0, Incoming Value : 0
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./race [0x101d9]
=========     Host Frame:./race [0x10267]
=========     Host Frame:./race [0x465b5]
=========     Host Frame:./race [0x3342]
=========     Host Frame:./race [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./race [0x31e2]
=========
========= WARN:(Warp Level Programming) Potential WAR hazard detected at __shared__ 0x2 in block (0, 0, 0) :
=========     Read Thread (31, 0, 0) at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     Write Thread (0, 0, 0) at 0x000001a8 in ./race.cu:4:test(int*, int*)
=========     Current Value : 0, Incoming Value : 0
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./race [0x101d9]
=========     Host Frame:./race [0x10267]
=========     Host Frame:./race [0x465b5]
=========     Host Frame:./race [0x3342]
=========     Host Frame:./race [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./race [0x31e2]
=========
========= WARN:(Warp Level Programming) Potential WAR hazard detected at __shared__ 0x1 in block (0, 0, 0) :
=========     Read Thread (31, 0, 0) at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     Write Thread (0, 0, 0) at 0x000001a8 in ./race.cu:4:test(int*, int*)
=========     Current Value : 0, Incoming Value : 0
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./race [0x101d9]
=========     Host Frame:./race [0x10267]
=========     Host Frame:./race [0x465b5]
=========     Host Frame:./race [0x3342]
=========     Host Frame:./race [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./race [0x31e2]
=========
========= WARN:(Warp Level Programming) Potential WAR hazard detected at __shared__ 0x0 in block (0, 0, 0) :
=========     Read Thread (31, 0, 0) at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     Write Thread (0, 0, 0) at 0x000001a8 in ./race.cu:4:test(int*, int*)
=========     Current Value : 0, Incoming Value : 1
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./race [0x101d9]
=========     Host Frame:./race [0x10267]
=========     Host Frame:./race [0x465b5]
=========     Host Frame:./race [0x3342]
=========     Host Frame:./race [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./race [0x31e2]
=========
========= WARN:(Warp Level Programming) Potential RAW hazard detected at __shared__ 0x3 in block (0, 0, 0) :
=========     Write Thread (31, 0, 0) at 0x00000148 in ./race.cu:3:test(int*, int*)
=========     Read Thread (0, 0, 0) at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     Current Value : 0
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./race [0x101d9]
=========     Host Frame:./race [0x10267]
=========     Host Frame:./race [0x465b5]
=========     Host Frame:./race [0x3342]
=========     Host Frame:./race [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./race [0x31e2]
=========
========= WARN:(Warp Level Programming) Potential RAW hazard detected at __shared__ 0x2 in block (0, 0, 0) :
=========     Write Thread (31, 0, 0) at 0x00000148 in ./race.cu:3:test(int*, int*)
=========     Read Thread (0, 0, 0) at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     Current Value : 0
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./race [0x101d9]
=========     Host Frame:./race [0x10267]
=========     Host Frame:./race [0x465b5]
=========     Host Frame:./race [0x3342]
=========     Host Frame:./race [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./race [0x31e2]
=========
========= WARN:(Warp Level Programming) Potential RAW hazard detected at __shared__ 0x1 in block (0, 0, 0) :
=========     Write Thread (31, 0, 0) at 0x00000148 in ./race.cu:3:test(int*, int*)
=========     Read Thread (0, 0, 0) at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     Current Value : 0
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./race [0x101d9]
=========     Host Frame:./race [0x10267]
=========     Host Frame:./race [0x465b5]
=========     Host Frame:./race [0x3342]
=========     Host Frame:./race [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./race [0x31e2]
=========
========= WARN:(Warp Level Programming) Potential RAW hazard detected at __shared__ 0x0 in block (0, 0, 0) :
=========     Write Thread (31, 0, 0) at 0x00000148 in ./race.cu:3:test(int*, int*)
=========     Read Thread (0, 0, 0) at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     Current Value : 0
=========     Saved host backtrace up to driver entry point at kernel launch time
=========     Host Frame:/lib64/libcuda.so.1 (cuLaunchKernel + 0x346) [0x297db6]
=========     Host Frame:./race [0x101d9]
=========     Host Frame:./race [0x10267]
=========     Host Frame:./race [0x465b5]
=========     Host Frame:./race [0x3342]
=========     Host Frame:./race [0x314a]
=========     Host Frame:/lib64/libc.so.6 (__libc_start_main + 0xf5) [0x22505]
=========     Host Frame:./race [0x31e2]
=========
========= WARN: Race reported between Read access at 0x00000170 in ./race.cu:4:test(int*, int*)
=========     and Write access at 0x00000148 in ./race.cu:3:test(int*, int*) [4 hazards]
=========     and Write access at 0x000001a8 in ./race.cu:4:test(int*, int*) [4 hazards]
=========
========= WARN: Race reported between Write access at 0x00000148 in ./race.cu:3:test(int*, int*)
=========     and Write access at 0x00000148 in ./race.cu:3:test(int*, int*) [124 hazards]
=========     and Read access at 0x00000170 in ./race.cu:4:test(int*, int*) [4 hazards]
=========
========= WARN: Race reported between Write access at 0x000001a8 in ./race.cu:4:test(int*, int*)
=========     and Write access at 0x000001a8 in ./race.cu:4:test(int*, int*) [124 hazards]
=========     and Read access at 0x00000170 in ./race.cu:4:test(int*, int*) [4 hazards]
=========
========= WARN: Race reported between Write access at 0x00000148 in ./race.cu:3:test(int*, int*)
=========     and Write access at 0x00000148 in ./race.cu:3:test(int*, int*) [124 hazards]
=========     and Read access at 0x00000170 in ./race.cu:4:test(int*, int*) [4 hazards]
=========
========= RACECHECK SUMMARY: 12 hazards displayed (0 errors, 12 warnings)
")
