10e6b6b59SJacob Faibussowitsch static const char help[] = "Tests PetscDeviceContextView().\n\n";
20e6b6b59SJacob Faibussowitsch
30e6b6b59SJacob Faibussowitsch #include "petscdevicetestcommon.h"
40e6b6b59SJacob Faibussowitsch #include <petscviewer.h>
50e6b6b59SJacob Faibussowitsch
TestView(PetscDeviceContext dctx)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
main(int argc,char * argv[])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:
46*27d4e10aSPierre Jolivet requires: defined(PETSC_DEVICELANGUAGE_CXX)
470e6b6b59SJacob Faibussowitsch args: -root_device_context_stream_type \
48d9acb416SHong 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:
71*27d4e10aSPierre Jolivet requires: !defined(PETSC_DEVICELANGUAGE_CXX)
7261c8d4edSPierre Jolivet output_file: output/ExitSuccess.out
73667ab0feSJacob Faibussowitsch suffix: no_cxx
74667ab0feSJacob Faibussowitsch
750e6b6b59SJacob Faibussowitsch TEST*/
76