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)); 190e6b6b59SJacob Faibussowitsch PetscFunctionReturn(0); 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 36*f9fea11eSJacob Faibussowitsch PetscCall(TestView(NULL)); 37*f9fea11eSJacob Faibussowitsch 38*f9fea11eSJacob 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 build: 460e6b6b59SJacob Faibussowitsch requires: defined(PETSC_HAVE_CXX) 470e6b6b59SJacob Faibussowitsch 480e6b6b59SJacob Faibussowitsch testset: 490e6b6b59SJacob Faibussowitsch args: -root_device_context_stream_type \ 500e6b6b59SJacob Faibussowitsch {{global_blocking default_blocking global_nonblocking}separate output} 510e6b6b59SJacob Faibussowitsch filter: grep -ve "ex6 on a" -ve "\[0\] " 520e6b6b59SJacob Faibussowitsch test: 530e6b6b59SJacob Faibussowitsch requires: !device 540e6b6b59SJacob Faibussowitsch suffix: host_no_device 550e6b6b59SJacob Faibussowitsch test: 560e6b6b59SJacob Faibussowitsch requires: device 570e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type host 580e6b6b59SJacob Faibussowitsch suffix: host_with_device 590e6b6b59SJacob Faibussowitsch test: 600e6b6b59SJacob Faibussowitsch requires: cuda 610e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type cuda 620e6b6b59SJacob Faibussowitsch suffix: cuda 630e6b6b59SJacob Faibussowitsch test: 640e6b6b59SJacob Faibussowitsch requires: hip 650e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type hip 660e6b6b59SJacob Faibussowitsch suffix: hip 670e6b6b59SJacob Faibussowitsch test: 680e6b6b59SJacob Faibussowitsch requires: sycl 690e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type sycl 700e6b6b59SJacob Faibussowitsch suffix: sycl 710e6b6b59SJacob Faibussowitsch 720e6b6b59SJacob Faibussowitsch TEST*/ 73