10e6b6b59SJacob Faibussowitsch static const char help[] = "Tests PetscDeviceContextView().\n\n"; 20e6b6b59SJacob Faibussowitsch 30e6b6b59SJacob Faibussowitsch #include "petscdevicetestcommon.h" 40e6b6b59SJacob Faibussowitsch #include <petscviewer.h> 50e6b6b59SJacob Faibussowitsch 6d71ae5a4SJacob Faibussowitsch static PetscErrorCode TestView(PetscDeviceContext dctx) 7d71ae5a4SJacob Faibussowitsch { 80e6b6b59SJacob Faibussowitsch PetscViewer viewer; 90e6b6b59SJacob Faibussowitsch 100e6b6b59SJacob Faibussowitsch PetscFunctionBegin; 110e6b6b59SJacob Faibussowitsch /* test stdout world */ 120e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextView(dctx, NULL)); 130e6b6b59SJacob Faibussowitsch 140e6b6b59SJacob Faibussowitsch /* test creating our own viewer */ 150e6b6b59SJacob Faibussowitsch PetscCall(PetscViewerCreate(PETSC_COMM_WORLD, &viewer)); 160e6b6b59SJacob Faibussowitsch PetscCall(PetscViewerSetType(viewer, PETSCVIEWERASCII)); 170e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextView(dctx, viewer)); 180e6b6b59SJacob Faibussowitsch PetscCall(PetscViewerDestroy(&viewer)); 193ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 200e6b6b59SJacob Faibussowitsch } 210e6b6b59SJacob Faibussowitsch 22d71ae5a4SJacob Faibussowitsch int main(int argc, char *argv[]) 23d71ae5a4SJacob Faibussowitsch { 240e6b6b59SJacob Faibussowitsch PetscDeviceContext dctx, dup; 250e6b6b59SJacob Faibussowitsch 260e6b6b59SJacob Faibussowitsch PetscFunctionBeginUser; 270e6b6b59SJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 280e6b6b59SJacob Faibussowitsch 290e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextGetCurrentContext(&dctx)); 300e6b6b59SJacob Faibussowitsch PetscCall(TestView(dctx)); 310e6b6b59SJacob Faibussowitsch 320e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextDuplicate(dctx, &dup)); 330e6b6b59SJacob Faibussowitsch PetscCall(TestView(dup)); 340e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextDestroy(&dup)); 350e6b6b59SJacob Faibussowitsch 36f9fea11eSJacob Faibussowitsch PetscCall(TestView(NULL)); 37f9fea11eSJacob Faibussowitsch 38f9fea11eSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "EXIT_SUCCESS\n")); 390e6b6b59SJacob Faibussowitsch PetscCall(PetscFinalize()); 400e6b6b59SJacob Faibussowitsch return 0; 410e6b6b59SJacob Faibussowitsch } 420e6b6b59SJacob Faibussowitsch 430e6b6b59SJacob Faibussowitsch /*TEST 440e6b6b59SJacob Faibussowitsch 450e6b6b59SJacob Faibussowitsch testset: 46667ab0feSJacob Faibussowitsch requires: cxx 470e6b6b59SJacob Faibussowitsch args: -root_device_context_stream_type \ 48*d9acb416SHong Zhang {{default default_with_barrier nonblocking}separate output} 490e6b6b59SJacob Faibussowitsch filter: grep -ve "ex6 on a" -ve "\[0\] " 500e6b6b59SJacob Faibussowitsch test: 510e6b6b59SJacob Faibussowitsch requires: !device 520e6b6b59SJacob Faibussowitsch suffix: host_no_device 530e6b6b59SJacob Faibussowitsch test: 540e6b6b59SJacob Faibussowitsch requires: device 550e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type host 560e6b6b59SJacob Faibussowitsch suffix: host_with_device 570e6b6b59SJacob Faibussowitsch test: 580e6b6b59SJacob Faibussowitsch requires: cuda 590e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type cuda 600e6b6b59SJacob Faibussowitsch suffix: cuda 610e6b6b59SJacob Faibussowitsch test: 620e6b6b59SJacob Faibussowitsch requires: hip 630e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type hip 640e6b6b59SJacob Faibussowitsch suffix: hip 650e6b6b59SJacob Faibussowitsch test: 660e6b6b59SJacob Faibussowitsch requires: sycl 670e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type sycl 680e6b6b59SJacob Faibussowitsch suffix: sycl 690e6b6b59SJacob Faibussowitsch 70667ab0feSJacob Faibussowitsch testset: 71667ab0feSJacob Faibussowitsch requires: !cxx 72667ab0feSJacob Faibussowitsch output_file: ./output/ExitSuccess.out 73667ab0feSJacob Faibussowitsch suffix: no_cxx 74667ab0feSJacob Faibussowitsch 750e6b6b59SJacob Faibussowitsch TEST*/ 76