Actual source code: ex6.c
1: static char help[] = "Tests options database";
3: #include <petscsys.h>
7: int main(int argc,char **argv)
8: {
9: const char *val;
10: PetscBool has;
13: PetscOptionsSetValue(NULL,"-skip_petscrc", NULL);if (ierr) return ierr;
14: PetscOptionsSetValue(NULL,"-use_gpu_aware_mpi", "0");if (ierr) return ierr;
15: PetscInitialize(&argc,&argv,NULL,help);
17: PetscOptionsHasName(NULL,NULL,"-use_gpu_aware_mpi",&has);
18: PetscTestCheck(has == PETSC_TRUE);
19: PetscOptionsHasName(NULL,NULL,"-abc",&has);
20: PetscTestCheck(has == PETSC_FALSE);
21: PetscOptionsHasName(NULL,"","-abc",&has);
22: PetscTestCheck(has == PETSC_FALSE);
23: PetscOptionsHasName(NULL,"a","-bc",&has);
24: PetscTestCheck(has == PETSC_FALSE);
25: PetscOptionsHasName(NULL,"ab","-c",&has);
26: PetscTestCheck(has == PETSC_FALSE);
27: PetscOptionsHasName(NULL,"abc","-",&has);
28: PetscTestCheck(has == PETSC_FALSE);
30: PetscOptionsSetValue(NULL,"-abc",NULL);
31: PetscOptionsHasName(NULL,NULL,"-abc",&has);
32: PetscTestCheck(has == PETSC_TRUE);
33: PetscOptionsHasName(NULL,"","-abc",&has);
34: PetscTestCheck(has == PETSC_TRUE);
35: PetscOptionsHasName(NULL,"a","-bc",&has);
36: PetscTestCheck(has == PETSC_TRUE);
37: PetscOptionsHasName(NULL,"ab","-c",&has);
38: PetscTestCheck(has == PETSC_TRUE);
39: PetscOptionsHasName(NULL,"abc","-",&has);
40: PetscTestCheck(has == PETSC_TRUE);
41: PetscOptionsClearValue(NULL,"-abc");
42: PetscOptionsClearValue(NULL,"-ABC");
44: PetscOptionsPrefixPush(NULL,"a");
45: PetscOptionsSetValue(NULL,"-x",NULL);
46: PetscOptionsHasName(NULL,NULL,"-ax",&has);
47: PetscTestCheck(has == PETSC_TRUE);
48: PetscOptionsPrefixPush(NULL,"b");
49: PetscOptionsSetValue(NULL,"-xy",NULL);
50: PetscOptionsHasName(NULL,NULL,"-abxy",&has);
51: PetscTestCheck(has == PETSC_TRUE);
52: PetscOptionsPrefixPop(NULL);
53: PetscOptionsPrefixPush(NULL,"c");
54: PetscOptionsSetValue(NULL,"-xz",NULL);
55: PetscOptionsHasName(NULL,NULL,"-acxz",&has);
56: PetscTestCheck(has == PETSC_TRUE);
57: PetscOptionsPrefixPop(NULL);
58: PetscOptionsPrefixPop(NULL);
59: PetscOptionsClearValue(NULL,"-ax");
60: PetscOptionsClearValue(NULL,"-abxy");
61: PetscOptionsClearValue(NULL,"-acxz");
63: PetscOptionsSetValue(NULL,"-FOO",NULL);
64: PetscOptionsSetValue(NULL,"-FOO","BAR");
65: PetscOptionsSetValue(NULL,"-FOO",NULL);
66: PetscOptionsClearValue(NULL,"-FOO");
67: PetscOptionsSetValue(NULL,"-FOO","BAR");
68: PetscOptionsSetValue(NULL,"-FOO",NULL);
69: PetscOptionsSetValue(NULL,"-FOO","BAR");
70: PetscOptionsClearValue(NULL,"-FOO");
72: {
73: char name[] = "-*_42", c;
74: for (c = 'a'; c <= 'z'; c++) {
75: name[1] = c;
76: PetscOptionsHasName(NULL,NULL,name,&has);
77: PetscTestCheck(has == PETSC_FALSE);
78: }
79: for (c = 'a'; c <= 'z'; c++) {
80: name[1] = c;
81: PetscOptionsHasName(NULL,NULL,name,&has);
82: PetscTestCheck(has == PETSC_FALSE);
83: PetscOptionsSetValue(NULL,name,NULL);
84: PetscOptionsHasName(NULL,NULL,name,&has);
85: PetscTestCheck(has == PETSC_TRUE);
86: }
87: for (c = 'A'; c <= 'Z'; c++) {
88: name[1] = c;
89: PetscOptionsHasName(NULL,NULL,name,&has);
90: PetscTestCheck(has == PETSC_TRUE);
91: PetscOptionsClearValue(NULL,name);
92: PetscOptionsHasName(NULL,NULL,name,&has);
93: PetscTestCheck(has == PETSC_FALSE);
94: }
95: for (c = 'Z'; c >= 'A'; c--) {
96: name[1] = c;
97: PetscOptionsHasName(NULL,NULL,name,&has);
98: PetscTestCheck(has == PETSC_FALSE);
99: PetscOptionsSetValue(NULL,name,NULL);
100: PetscOptionsHasName(NULL,NULL,name,&has);
101: PetscTestCheck(has == PETSC_TRUE);
102: }
103: for (c = 'a'; c <= 'z'; c++) {
104: name[1] = c;
105: PetscOptionsHasName(NULL,NULL,name,&has);
106: PetscTestCheck(has == PETSC_TRUE);
107: PetscOptionsClearValue(NULL,name);
108: PetscOptionsHasName(NULL,NULL,name,&has);
109: PetscTestCheck(has == PETSC_FALSE);
110: }
111: for (c = 'a'; c <= 'z'; c++) {
112: name[1] = c;
113: PetscOptionsHasName(NULL,NULL,name,&has);
114: PetscTestCheck(has == PETSC_FALSE);
115: }
116: }
118: PetscOptionsSetValue(NULL,"-abc_xyz","123");
119: PetscOptionsFindPair(NULL,NULL,"-abc_xyz",&val,&has);
120: PetscTestCheck(has == PETSC_TRUE && !strcmp(val,"123"));
121: PetscOptionsFindPair(NULL,NULL,"-abc_42_xyz",&val,&has);
122: PetscTestCheck(has == PETSC_TRUE && !strcmp(val,"123"));
123: PetscOptionsFindPair(NULL,NULL,"-abc_42_1_xyz",&val,&has);
124: PetscTestCheck(has == PETSC_TRUE && !strcmp(val,"123"));
125: PetscOptionsFindPair(NULL,NULL,"-abc_42_1_23_xyz",&val,&has);
126: PetscTestCheck(has == PETSC_TRUE && !strcmp(val,"123"));
127: PetscOptionsFindPair(NULL,NULL,"-abc_42_1_23_456_xyz",&val,&has);
128: PetscTestCheck(has == PETSC_TRUE && !strcmp(val,"123"));
129: PetscOptionsFindPair(NULL,NULL,"-abc_42_1_23_456_789_xyz",&val,&has);
130: PetscTestCheck(has == PETSC_TRUE && !strcmp(val,"123"));
131: PetscOptionsFindPair(NULL,NULL,"-abc_xyz_42",&val,&has);
132: PetscTestCheck(has == PETSC_FALSE);
133: PetscOptionsFindPair(NULL,NULL,"-abc42xyz",&val,&has);
134: PetscTestCheck(has == PETSC_FALSE);
135: PetscOptionsFindPair(NULL,NULL,"-abc42_xyz",&val,&has);
136: PetscTestCheck(has == PETSC_FALSE);
137: PetscOptionsFindPair(NULL,NULL,"-abc_42xyz",&val,&has);
138: PetscTestCheck(has == PETSC_FALSE);
139: PetscOptionsFindPair(NULL,NULL,"-abc0_42_xyz",&val,&has);
140: PetscTestCheck(has == PETSC_FALSE);
141: PetscOptionsFindPair(NULL,NULL,"-abc_42_0xyz",&val,&has);
142: PetscTestCheck(has == PETSC_FALSE);
143: PetscOptionsClearValue(NULL,"-abc_xyz");
145: PetscFinalize();
146: return 0;
147: }
149: /*TEST
151: test:
153: TEST*/