xref: /petsc/src/sys/tests/ex47.c (revision 53efea5c680dffccb0b7659435e1dc1aa9e95c12)
1 static char help[] = "Example for PetscOptionsInsertFileYAML\n";
2 
3 #include <petscsys.h>
4 #include <petscviewer.h>
5 
6 int main(int argc,char **argv)
7 {
8   PetscErrorCode  ierr;
9   char            filename[PETSC_MAX_PATH_LEN];
10   PetscBool       flg;
11 
12   ierr = PetscInitialize(&argc,&argv,NULL,help);if (ierr) return ierr;
13 
14   ierr = PetscOptionsGetString(NULL,NULL,"-f",filename,sizeof(filename),&flg);
15   if (flg) {
16     ierr = PetscOptionsInsertFileYAML(PETSC_COMM_WORLD,NULL,filename,PETSC_TRUE);CHKERRQ(ierr);
17   }
18 
19   ierr = PetscOptionsGetString(NULL,NULL,"-yaml",filename,sizeof(filename),&flg);
20   if (flg) {
21     PetscBool monitor = PETSC_FALSE;
22     ierr = PetscOptionsGetBool(NULL,NULL,"-monitor",&monitor,NULL);CHKERRQ(ierr);
23     if (monitor) {
24       ierr = PetscOptionsMonitorSet(PetscOptionsMonitorDefault,NULL,NULL);CHKERRQ(ierr);
25     }
26     ierr = PetscOptionsClear(NULL);CHKERRQ(ierr);
27     ierr = PetscOptionsInsertFileYAML(PETSC_COMM_WORLD,NULL,filename,PETSC_TRUE);CHKERRQ(ierr);
28   }
29 
30   ierr = PetscOptionsView(NULL,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
31   ierr = PetscOptionsClear(NULL);CHKERRQ(ierr);
32   ierr = PetscFinalize();
33   return ierr;
34 }
35 
36 
37 
38 /*TEST
39 
40    testset:
41      requires: yaml
42      args: -options_left 0
43      filter:  egrep -v "(malloc_dump|malloc_test|saws_port_auto_select|display|check_pointer_intensity|error_output_stdout|nox)"
44      localrunfiles: petsc.yml
45 
46      test:
47         suffix: 1
48         args: -f petsc.yml
49 
50      test:
51         suffix: 2_file
52         output_file: output/ex47_2.out
53         args: -options_file_yaml petsc.yml
54 
55      test:
56         suffix: 2_string
57         output_file: output/ex47_2.out
58         args: -options_string_yaml "`cat petsc.yml`"
59 
60      test:
61         suffix: 2_prefix
62         args: -options_monitor
63         args: -options_file ex47-opt.txt
64         args: -prefix_push p5_ -options_file ex47-opt.yml -prefix_pop
65         args: -prefix_push p5_ -options_file ex47-opt.yml:yaml -prefix_pop
66         args: -prefix_push p6_ -options_file_yaml ex47-opt.yml -prefix_pop
67         args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
68         args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
69         args: -prefix_push p8_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
70         localrunfiles: ex47-opt.txt ex47-opt.yml
71 
72 
73    testset:
74      nsize: {{1 2}}
75      requires: yaml
76 
77      test:
78         suffix: 3_empty
79         args: -yaml ex47-empty.yaml
80         localrunfiles: ex47-empty.yaml
81 
82      test:
83         suffix: 3_merge
84         args: -yaml ex47-merge.yaml -monitor
85         localrunfiles: ex47-merge.yaml
86 
87      test:
88         suffix: 3_options
89         args: -yaml ex47-options.yaml
90         localrunfiles: ex47-options.yaml
91 
92      test:
93         suffix: 3_include
94         args: -yaml ex47-include.yaml
95         localrunfiles: ex47-include.yaml ex47-empty.yaml ex47-options.yaml
96 
97      test:
98         suffix: 3_prefix
99         args: -yaml ex47-prefix.yaml
100         localrunfiles: ex47-prefix.yaml
101 
102 TEST*/
103