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