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 Faibussowitschint 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