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;
12: PetscOptionsSetValue(NULL, "-skip_petscrc", NULL);
13: PetscOptionsSetValue(NULL, "-use_gpu_aware_mpi", "0");
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*/