1*0e6b6b59SJacob Faibussowitsch static const char help[] = "Tests PetscDeviceContextView().\n\n"; 2*0e6b6b59SJacob Faibussowitsch 3*0e6b6b59SJacob Faibussowitsch #include "petscdevicetestcommon.h" 4*0e6b6b59SJacob Faibussowitsch #include <petscviewer.h> 5*0e6b6b59SJacob Faibussowitsch 6*0e6b6b59SJacob Faibussowitsch static PetscErrorCode TestView(PetscDeviceContext dctx) { 7*0e6b6b59SJacob Faibussowitsch PetscViewer viewer; 8*0e6b6b59SJacob Faibussowitsch 9*0e6b6b59SJacob Faibussowitsch PetscFunctionBegin; 10*0e6b6b59SJacob Faibussowitsch /* test stdout world */ 11*0e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextView(dctx, NULL)); 12*0e6b6b59SJacob Faibussowitsch 13*0e6b6b59SJacob Faibussowitsch /* test creating our own viewer */ 14*0e6b6b59SJacob Faibussowitsch PetscCall(PetscViewerCreate(PETSC_COMM_WORLD, &viewer)); 15*0e6b6b59SJacob Faibussowitsch PetscCall(PetscViewerSetType(viewer, PETSCVIEWERASCII)); 16*0e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextView(dctx, viewer)); 17*0e6b6b59SJacob Faibussowitsch PetscCall(PetscViewerDestroy(&viewer)); 18*0e6b6b59SJacob Faibussowitsch PetscFunctionReturn(0); 19*0e6b6b59SJacob Faibussowitsch } 20*0e6b6b59SJacob Faibussowitsch 21*0e6b6b59SJacob Faibussowitsch int main(int argc, char *argv[]) { 22*0e6b6b59SJacob Faibussowitsch MPI_Comm comm; 23*0e6b6b59SJacob Faibussowitsch PetscDeviceContext dctx, dup; 24*0e6b6b59SJacob Faibussowitsch 25*0e6b6b59SJacob Faibussowitsch PetscFunctionBeginUser; 26*0e6b6b59SJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 27*0e6b6b59SJacob Faibussowitsch comm = PETSC_COMM_WORLD; 28*0e6b6b59SJacob Faibussowitsch 29*0e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextGetCurrentContext(&dctx)); 30*0e6b6b59SJacob Faibussowitsch PetscCall(TestView(dctx)); 31*0e6b6b59SJacob Faibussowitsch 32*0e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextDuplicate(dctx, &dup)); 33*0e6b6b59SJacob Faibussowitsch PetscCall(TestView(dup)); 34*0e6b6b59SJacob Faibussowitsch PetscCall(PetscDeviceContextDestroy(&dup)); 35*0e6b6b59SJacob Faibussowitsch 36*0e6b6b59SJacob Faibussowitsch PetscCall(PetscPrintf(comm, "EXIT_SUCCESS\n")); 37*0e6b6b59SJacob Faibussowitsch PetscCall(PetscFinalize()); 38*0e6b6b59SJacob Faibussowitsch return 0; 39*0e6b6b59SJacob Faibussowitsch } 40*0e6b6b59SJacob Faibussowitsch 41*0e6b6b59SJacob Faibussowitsch /*TEST 42*0e6b6b59SJacob Faibussowitsch 43*0e6b6b59SJacob Faibussowitsch build: 44*0e6b6b59SJacob Faibussowitsch requires: defined(PETSC_HAVE_CXX) 45*0e6b6b59SJacob Faibussowitsch 46*0e6b6b59SJacob Faibussowitsch testset: 47*0e6b6b59SJacob Faibussowitsch args: -root_device_context_stream_type \ 48*0e6b6b59SJacob Faibussowitsch {{global_blocking default_blocking global_nonblocking}separate output} 49*0e6b6b59SJacob Faibussowitsch filter: grep -ve "ex6 on a" -ve "\[0\] " 50*0e6b6b59SJacob Faibussowitsch test: 51*0e6b6b59SJacob Faibussowitsch requires: !device 52*0e6b6b59SJacob Faibussowitsch suffix: host_no_device 53*0e6b6b59SJacob Faibussowitsch test: 54*0e6b6b59SJacob Faibussowitsch requires: device 55*0e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type host 56*0e6b6b59SJacob Faibussowitsch suffix: host_with_device 57*0e6b6b59SJacob Faibussowitsch test: 58*0e6b6b59SJacob Faibussowitsch requires: cuda 59*0e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type cuda 60*0e6b6b59SJacob Faibussowitsch suffix: cuda 61*0e6b6b59SJacob Faibussowitsch test: 62*0e6b6b59SJacob Faibussowitsch requires: hip 63*0e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type hip 64*0e6b6b59SJacob Faibussowitsch suffix: hip 65*0e6b6b59SJacob Faibussowitsch test: 66*0e6b6b59SJacob Faibussowitsch requires: sycl 67*0e6b6b59SJacob Faibussowitsch args: -root_device_context_device_type sycl 68*0e6b6b59SJacob Faibussowitsch suffix: sycl 69*0e6b6b59SJacob Faibussowitsch 70*0e6b6b59SJacob Faibussowitsch TEST*/ 71