xref: /petsc/src/sys/tests/ex47.c (revision cf0762375add12fa0f124e50db9eeb4edce3f335)
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      args: -options_left false
42      filter:  egrep -v "(options_left|options_monitor|malloc_dump|malloc_test|saws_port_auto_select|display|check_pointer_intensity|error_output_stdout|nox|vecscatter_mpi1|use_gpu_aware_mpi)"
43      localrunfiles: petsc.yml
44 
45      test:
46         suffix: 1
47         args: -f petsc.yml
48 
49      test:
50         suffix: 2_file
51         output_file: output/ex47_2.out
52         args: -options_file_yaml petsc.yml
53 
54      test:
55         suffix: 2_string
56         output_file: output/ex47_2.out
57         args: -options_string_yaml "`cat petsc.yml`"
58 
59      test:
60         suffix: 2_auto
61         args: -options_monitor
62         args: -options_file ex47-yaml_tag
63         args: -options_file ex47-yaml_doc
64         localrunfiles: ex47-yaml_tag ex47-yaml_doc
65 
66      test:
67         suffix: 2_prefix
68         args: -options_monitor
69         args: -options_file ex47-opt.txt
70         args: -prefix_push p5_ -options_file ex47-opt.yml -prefix_pop
71         args: -prefix_push p5_ -options_file ex47-opt.yml:yaml -prefix_pop
72         args: -prefix_push p6_ -options_file_yaml ex47-opt.yml -prefix_pop
73         args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
74         args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
75         args: -prefix_push p8_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
76         args: -prefix_push p9_ -options_file ex47-opt.json -prefix_pop
77         localrunfiles: ex47-opt.txt ex47-opt.yml ex47-opt.json
78 
79 
80    testset:
81      nsize: {{1 2}}
82 
83      test:
84         suffix: 3_empty
85         args: -yaml ex47-empty.yaml
86         localrunfiles: ex47-empty.yaml
87 
88      test:
89         suffix: 3_merge
90         args: -yaml ex47-merge.yaml -monitor
91         localrunfiles: ex47-merge.yaml
92 
93      test:
94         suffix: 3_options
95         args: -yaml ex47-options.yaml
96         localrunfiles: ex47-options.yaml
97 
98      test:
99         suffix: 3_include
100         args: -yaml ex47-include.yaml
101         localrunfiles: ex47-include.yaml ex47-empty.yaml ex47-options.yaml
102 
103      test:
104         suffix: 3_prefix
105         args: -yaml ex47-prefix.yaml
106         localrunfiles: ex47-prefix.yaml
107 
108      test:
109         suffix: 3_multidoc
110         args: -yaml ex47-multidoc.yaml
111         localrunfiles: ex47-multidoc.yaml
112 
113 TEST*/
114