xref: /petsc/src/sys/tests/ex47.c (revision 479160d73454da0c71cd7d575749ab6cfc6be812)
1c4762a1bSJed Brown static char help[] = "Example for PetscOptionsInsertFileYAML\n";
2c4762a1bSJed Brown 
3c4762a1bSJed Brown #include <petscsys.h>
4c4762a1bSJed Brown #include <petscviewer.h>
5c4762a1bSJed Brown 
main(int argc,char ** argv)6d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv)
7d71ae5a4SJacob Faibussowitsch {
8c4762a1bSJed Brown   char      filename[PETSC_MAX_PATH_LEN];
9c4762a1bSJed Brown   PetscBool flg;
10c4762a1bSJed Brown 
11327415f7SBarry Smith   PetscFunctionBeginUser;
129566063dSJacob Faibussowitsch   PetscCall(PetscInitialize(&argc, &argv, NULL, help));
135c23ca1cSLisandro Dalcin 
149566063dSJacob Faibussowitsch   PetscCall(PetscOptionsGetString(NULL, NULL, "-f", filename, sizeof(filename), &flg));
159566063dSJacob Faibussowitsch   if (flg) PetscCall(PetscOptionsInsertFileYAML(PETSC_COMM_WORLD, NULL, filename, PETSC_TRUE));
165c23ca1cSLisandro Dalcin 
179566063dSJacob Faibussowitsch   PetscCall(PetscOptionsGetString(NULL, NULL, "-yaml", filename, sizeof(filename), &flg));
185c23ca1cSLisandro Dalcin   if (flg) {
195c23ca1cSLisandro Dalcin     PetscBool monitor = PETSC_FALSE;
20b122ec5aSJacob Faibussowitsch 
219566063dSJacob Faibussowitsch     PetscCall(PetscOptionsGetBool(NULL, NULL, "-monitor", &monitor, NULL));
22758f5028SMatthew G. Knepley     if (monitor) PetscCall(PetscOptionsMonitorSet(PetscOptionsMonitorDefault, PETSC_VIEWER_STDOUT_WORLD, NULL));
239566063dSJacob Faibussowitsch     PetscCall(PetscOptionsClear(NULL));
249566063dSJacob Faibussowitsch     PetscCall(PetscOptionsInsertFileYAML(PETSC_COMM_WORLD, NULL, filename, PETSC_TRUE));
255c23ca1cSLisandro Dalcin   }
265c23ca1cSLisandro Dalcin 
27758f5028SMatthew G. Knepley   PetscCall(PetscOptionsGetString(NULL, NULL, "-yamlstr", filename, sizeof(filename), &flg));
28758f5028SMatthew G. Knepley   if (flg) {
29758f5028SMatthew G. Knepley     PetscBool monitor = PETSC_FALSE;
30758f5028SMatthew G. Knepley 
31758f5028SMatthew G. Knepley     PetscCall(PetscOptionsGetBool(NULL, NULL, "-monitor", &monitor, NULL));
32758f5028SMatthew G. Knepley     if (monitor) PetscCall(PetscOptionsMonitorSet(PetscOptionsMonitorDefault, NULL, NULL));
33758f5028SMatthew G. Knepley     PetscCall(PetscOptionsClear(NULL));
34758f5028SMatthew G. Knepley     PetscCall(PetscOptionsInsertStringYAML(NULL, filename));
35758f5028SMatthew G. Knepley   }
36758f5028SMatthew G. Knepley 
379566063dSJacob Faibussowitsch   PetscCall(PetscOptionsView(NULL, PETSC_VIEWER_STDOUT_WORLD));
389566063dSJacob Faibussowitsch   PetscCall(PetscOptionsClear(NULL));
399566063dSJacob Faibussowitsch   PetscCall(PetscFinalize());
40b122ec5aSJacob Faibussowitsch   return 0;
41c4762a1bSJed Brown }
42c4762a1bSJed Brown 
43c4762a1bSJed Brown /*TEST
44c4762a1bSJed Brown 
455c23ca1cSLisandro Dalcin    testset:
46951eb098SLisandro Dalcin      args: -options_left false
47*e9a33e21SBarry Smith      filter:  grep -E -v "(options_monitor)"
485c23ca1cSLisandro Dalcin      localrunfiles: petsc.yml
49c4762a1bSJed Brown 
50c4762a1bSJed Brown      test:
51c4762a1bSJed Brown         suffix: 1
52d06005cbSLisandro Dalcin         args: -f petsc.yml
53c4762a1bSJed Brown 
54c4762a1bSJed Brown      test:
55d06005cbSLisandro Dalcin         suffix: 2_file
56d06005cbSLisandro Dalcin         output_file: output/ex47_2.out
57d06005cbSLisandro Dalcin         args: -options_file_yaml petsc.yml
58d06005cbSLisandro Dalcin 
59d06005cbSLisandro Dalcin      test:
60d06005cbSLisandro Dalcin         suffix: 2_string
61d06005cbSLisandro Dalcin         args: -options_string_yaml "`cat petsc.yml`"
62d06005cbSLisandro Dalcin 
63d06005cbSLisandro Dalcin      test:
64a1d2f846SLisandro Dalcin         suffix: 2_auto
65a1d2f846SLisandro Dalcin         args: -options_monitor
66a1d2f846SLisandro Dalcin         args: -options_file ex47-yaml_tag
67a1d2f846SLisandro Dalcin         args: -options_file ex47-yaml_doc
68a1d2f846SLisandro Dalcin         localrunfiles: ex47-yaml_tag ex47-yaml_doc
69a1d2f846SLisandro Dalcin 
70a1d2f846SLisandro Dalcin      test:
71d06005cbSLisandro Dalcin         suffix: 2_prefix
72d06005cbSLisandro Dalcin         args: -options_monitor
73d06005cbSLisandro Dalcin         args: -options_file ex47-opt.txt
74be10d61cSLisandro Dalcin         args: -prefix_push p5_ -options_file ex47-opt.yml -prefix_pop
75be10d61cSLisandro Dalcin         args: -prefix_push p5_ -options_file ex47-opt.yml:yaml -prefix_pop
76d06005cbSLisandro Dalcin         args: -prefix_push p6_ -options_file_yaml ex47-opt.yml -prefix_pop
77d06005cbSLisandro Dalcin         args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
78d06005cbSLisandro Dalcin         args: -prefix_push p7_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
79d06005cbSLisandro Dalcin         args: -prefix_push p8_ -options_string_yaml "`cat ex47-opt.yml`" -prefix_pop
80a1d2f846SLisandro Dalcin         args: -prefix_push p9_ -options_file ex47-opt.json -prefix_pop
81a1d2f846SLisandro Dalcin         localrunfiles: ex47-opt.txt ex47-opt.yml ex47-opt.json
825c23ca1cSLisandro Dalcin 
835c23ca1cSLisandro Dalcin    testset:
845c23ca1cSLisandro Dalcin      nsize: {{1 2}}
855c23ca1cSLisandro Dalcin 
865c23ca1cSLisandro Dalcin      test:
875c23ca1cSLisandro Dalcin         suffix: 3_empty
885c23ca1cSLisandro Dalcin         args: -yaml ex47-empty.yaml
895c23ca1cSLisandro Dalcin         localrunfiles: ex47-empty.yaml
905c23ca1cSLisandro Dalcin 
915c23ca1cSLisandro Dalcin      test:
925c23ca1cSLisandro Dalcin         suffix: 3_merge
935c23ca1cSLisandro Dalcin         args: -yaml ex47-merge.yaml -monitor
945c23ca1cSLisandro Dalcin         localrunfiles: ex47-merge.yaml
955c23ca1cSLisandro Dalcin 
965c23ca1cSLisandro Dalcin      test:
97758f5028SMatthew G. Knepley         suffix: 3_env
98758f5028SMatthew G. Knepley         env: PETSC_OPTIONS_YAML='"name: value"'
99758f5028SMatthew G. Knepley         args: -monitor
100758f5028SMatthew G. Knepley 
101758f5028SMatthew G. Knepley      test:
102758f5028SMatthew G. Knepley         suffix: 3_str
103758f5028SMatthew G. Knepley         args: -yamlstr "name: value" -monitor
104758f5028SMatthew G. Knepley 
105758f5028SMatthew G. Knepley      test:
1065c23ca1cSLisandro Dalcin         suffix: 3_options
1075c23ca1cSLisandro Dalcin         args: -yaml ex47-options.yaml
1085c23ca1cSLisandro Dalcin         localrunfiles: ex47-options.yaml
1095c23ca1cSLisandro Dalcin 
1105c23ca1cSLisandro Dalcin      test:
1115c23ca1cSLisandro Dalcin         suffix: 3_include
1125c23ca1cSLisandro Dalcin         args: -yaml ex47-include.yaml
1135c23ca1cSLisandro Dalcin         localrunfiles: ex47-include.yaml ex47-empty.yaml ex47-options.yaml
1145c23ca1cSLisandro Dalcin 
1150379105fSLisandro Dalcin      test:
1160379105fSLisandro Dalcin         suffix: 3_prefix
1170379105fSLisandro Dalcin         args: -yaml ex47-prefix.yaml
1180379105fSLisandro Dalcin         localrunfiles: ex47-prefix.yaml
119c4762a1bSJed Brown 
1202b8ac955SLisandro Dalcin      test:
1212b8ac955SLisandro Dalcin         suffix: 3_multidoc
1222b8ac955SLisandro Dalcin         args: -yaml ex47-multidoc.yaml
1232b8ac955SLisandro Dalcin         localrunfiles: ex47-multidoc.yaml
1242b8ac955SLisandro Dalcin 
125c4762a1bSJed Brown TEST*/
126