This source file includes following definitions.
- main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <stdio.h>
28 #include <stdlib.h>
29 #include <unistd.h>
30
31 #include "src/util/argv.h"
32 #include "src/util/pmix_environ.h"
33 #include "src/util/output.h"
34 #include "src/server/pmix_server_ops.h"
35 #include "src/mca/preg/preg.h"
36
37 #include "server_callbacks.h"
38 #include "utils.h"
39
40 #define TEST_NODES "odin001,odin002,odin003,odin010,odin011,odin075"
41 #define TEST_PROCS "1,2,3,4;5-8;9,11-12;17-20;21-24;100"
42 #define TEST_NODES2 "c712f6n01,c712f6n02,c712f6n03"
43
44 bool spawn_wait = false;
45
46 int main(int argc, char **argv)
47 {
48 char *regex;
49 char **nodes, **procs;
50 pmix_status_t rc;
51
52
53 if (PMIX_SUCCESS != 0) {
54 TEST_ERROR(("ERROR IN COMPUTING CONSTANTS: PMIX_SUCCESS = %d", PMIX_SUCCESS));
55 exit(1);
56 }
57
58 TEST_VERBOSE(("Testing version %s", PMIx_Get_version()));
59
60 PMIx_server_init(&mymodule, NULL, 0);
61
62 TEST_VERBOSE(("Start PMIx regex smoke test"));
63
64 fprintf(stderr, "NODES: %s\n", TEST_NODES);
65 PMIx_generate_regex(TEST_NODES, ®ex);
66 fprintf(stderr, "REGEX: %s\n\n", regex);
67
68 rc = pmix_preg.parse_nodes(regex, &nodes);
69 free(regex);
70 if (PMIX_SUCCESS == rc) {
71 regex = pmix_argv_join(nodes, ',');
72 pmix_argv_free(nodes);
73 fprintf(stderr, "NODES: %s\n", TEST_NODES);
74 fprintf(stderr, "RSULT: %s\n\n\n", regex);
75 free(regex);
76 } else {
77 fprintf(stderr, "Node reverse failed: %d\n\n\n", rc);
78 }
79
80 fprintf(stderr, "PROCS: %s\n", TEST_PROCS);
81 PMIx_generate_ppn(TEST_PROCS, ®ex);
82 fprintf(stderr, "PPN: %s\n\n", regex);
83
84 rc = pmix_preg.parse_procs(regex, &procs);
85 free(regex);
86 if (PMIX_SUCCESS == rc) {
87 regex = pmix_argv_join(procs, ';');
88 pmix_argv_free(procs);
89 fprintf(stderr, "PROCS: %s\n", TEST_PROCS);
90 fprintf(stderr, "RSULT: %s\n", regex);
91 free(regex);
92 } else {
93 fprintf(stderr, "PPN reverse failed: %d\n", rc);
94 }
95
96 fprintf(stderr, "NODES: %s\n", TEST_NODES2);
97 PMIx_generate_regex(TEST_NODES2, ®ex);
98 fprintf(stderr, "REGEX: %s\n\n", regex);
99
100 rc = pmix_preg.parse_nodes(regex, &nodes);
101 free(regex);
102 if (PMIX_SUCCESS == rc) {
103 regex = pmix_argv_join(nodes, ',');
104 pmix_argv_free(nodes);
105 fprintf(stderr, "NODES: %s\n", TEST_NODES2);
106 fprintf(stderr, "RSULT: %s\n\n\n", regex);
107 free(regex);
108 } else {
109 fprintf(stderr, "Node reverse failed: %d\n\n\n", rc);
110 }
111 return 0;
112 }