xref: /petsc/src/sys/objects/device/tests/ex12.c (revision 017deb10d530c1b6d9744fcd772cd96c5fcd74f2)
11015a2a4SJacob Faibussowitsch static const char help[] = "Tests PetscDevice and PetscDeviceContext init sequence control from command line.\n\n";
21015a2a4SJacob Faibussowitsch 
31015a2a4SJacob Faibussowitsch #include "petscdevicetestcommon.h"
41015a2a4SJacob Faibussowitsch 
main(int argc,char * argv[])51015a2a4SJacob Faibussowitsch int main(int argc, char *argv[])
61015a2a4SJacob Faibussowitsch {
71015a2a4SJacob Faibussowitsch   PetscDeviceContext dctx;
81015a2a4SJacob Faibussowitsch 
91015a2a4SJacob Faibussowitsch   PetscFunctionBeginUser;
101015a2a4SJacob Faibussowitsch   // check that things are properly caught at init-time, i.e. allow failures for "lazy" during
111015a2a4SJacob Faibussowitsch   // initialize
121015a2a4SJacob Faibussowitsch   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
131015a2a4SJacob Faibussowitsch   // and check that things are properly handled if explicitly requested
141015a2a4SJacob Faibussowitsch   PetscCall(PetscDeviceContextGetCurrentContext(&dctx));
151015a2a4SJacob Faibussowitsch   PetscCall(PetscFinalize());
161015a2a4SJacob Faibussowitsch   return 0;
171015a2a4SJacob Faibussowitsch }
181015a2a4SJacob Faibussowitsch 
191015a2a4SJacob Faibussowitsch /*TEST
201015a2a4SJacob Faibussowitsch 
211015a2a4SJacob Faibussowitsch   testset:
22*27d4e10aSPierre Jolivet     requires: device defined(PETSC_USE_INFO)
231015a2a4SJacob Faibussowitsch     filter: grep -e PetscDevice -e "PETSC ERROR" -e "PETSc successfully started"
241015a2a4SJacob Faibussowitsch     args: -info -device_enable {{none lazy eager}separate output}
251015a2a4SJacob Faibussowitsch     args: -petsc_ci_portable_error_output -error_output_stdout
261015a2a4SJacob Faibussowitsch     test:
271015a2a4SJacob Faibussowitsch       requires: cuda
281015a2a4SJacob Faibussowitsch       args: -device_enable_cuda {{none lazy eager}separate output}
291015a2a4SJacob Faibussowitsch       suffix: cuda_no_env
301015a2a4SJacob Faibussowitsch     test:
311015a2a4SJacob Faibussowitsch       requires: cuda
321015a2a4SJacob Faibussowitsch       env: CUDA_VISIBLE_DEVICES=0
331015a2a4SJacob Faibussowitsch       args: -device_enable_cuda {{none lazy eager}separate output}
341015a2a4SJacob Faibussowitsch       suffix: cuda_env_set
351015a2a4SJacob Faibussowitsch     test:
361015a2a4SJacob Faibussowitsch       requires: cuda
371015a2a4SJacob Faibussowitsch       env: CUDA_VISIBLE_DEVICES=
381015a2a4SJacob Faibussowitsch       args: -device_enable_cuda {{none lazy eager}separate output}
391015a2a4SJacob Faibussowitsch       suffix: cuda_env_set_empty
401015a2a4SJacob Faibussowitsch     test:
411015a2a4SJacob Faibussowitsch       requires: hip
421015a2a4SJacob Faibussowitsch       args: -device_enable_hip {{none lazy eager}separate output}
431015a2a4SJacob Faibussowitsch       suffix: hip_no_env
441015a2a4SJacob Faibussowitsch     test:
451015a2a4SJacob Faibussowitsch       requires: hip
461015a2a4SJacob Faibussowitsch       env: HIP_VISIBLE_DEVICES=0
471015a2a4SJacob Faibussowitsch       args: -device_enable_hip {{none lazy eager}separate output}
481015a2a4SJacob Faibussowitsch       suffix: hip_env_set
491015a2a4SJacob Faibussowitsch     test:
501015a2a4SJacob Faibussowitsch       requires: hip
511015a2a4SJacob Faibussowitsch       env: HIP_VISIBLE_DEVICES=
521015a2a4SJacob Faibussowitsch       args: -device_enable_hip {{none lazy eager}separate output}
531015a2a4SJacob Faibussowitsch       suffix: hip_env_set_empty
541015a2a4SJacob Faibussowitsch 
551015a2a4SJacob Faibussowitsch TEST*/
56