regx/test: update regex test
Signed-off-by: Boris Karasev <karasev.b@gmail.com> (cherry picked from commit d1ad90f47e93436d0e1b49e5946da9f6b33aacdf)
Этот коммит содержится в:
родитель
8552d0e608
Коммит
c154631879
@ -13,16 +13,19 @@
|
|||||||
#include "opal/util/argv.h"
|
#include "opal/util/argv.h"
|
||||||
|
|
||||||
#include "orte/util/proc_info.h"
|
#include "orte/util/proc_info.h"
|
||||||
#include "orte/util/regex.h"
|
|
||||||
#include "orte/mca/errmgr/errmgr.h"
|
#include "orte/mca/errmgr/errmgr.h"
|
||||||
#include "orte/runtime/runtime.h"
|
#include "orte/runtime/runtime.h"
|
||||||
|
#include "orte/mca/regx/regx.h"
|
||||||
|
#include "orte/mca/regx/base/base.h"
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
char *regex, *save;
|
char *regex, **nodelist;
|
||||||
char **nodes=NULL;
|
char **nodes=NULL;
|
||||||
int i;
|
int i;
|
||||||
|
opal_pointer_array_t *node_pool;
|
||||||
|
orte_node_t *nptr;
|
||||||
|
|
||||||
if (argc < 1 || NULL == argv[1]) {
|
if (argc < 1 || NULL == argv[1]) {
|
||||||
fprintf(stderr, "usage: regex <comma-separated list of nodes>\n");
|
fprintf(stderr, "usage: regex <comma-separated list of nodes>\n");
|
||||||
@ -31,10 +34,19 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
orte_init(&argc, &argv, ORTE_PROC_NON_MPI);
|
orte_init(&argc, &argv, ORTE_PROC_NON_MPI);
|
||||||
|
|
||||||
|
if (ORTE_SUCCESS != (rc = mca_base_framework_open(&orte_regx_base_framework, 0))) {
|
||||||
|
ORTE_ERROR_LOG(rc);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
if (ORTE_SUCCESS != (rc = orte_regx_base_select())) {
|
||||||
|
ORTE_ERROR_LOG(rc);
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
if (NULL != strchr(argv[1], '[')) {
|
if (NULL != strchr(argv[1], '[')) {
|
||||||
/* given a regex to analyze */
|
/* given a regex to analyze */
|
||||||
fprintf(stderr, "ANALYZING REGEX: %s\n", argv[1]);
|
fprintf(stderr, "ANALYZING REGEX: %s\n", argv[1]);
|
||||||
if (ORTE_SUCCESS != (rc = orte_regex_extract_node_names(argv[1], &nodes))) {
|
if (ORTE_SUCCESS != (rc = orte_regx.extract_node_names(argv[1], &nodes))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
}
|
}
|
||||||
for (i=0; NULL != nodes[i]; i++) {
|
for (i=0; NULL != nodes[i]; i++) {
|
||||||
@ -45,12 +57,30 @@ int main(int argc, char **argv)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
save = strdup(argv[1]);
|
node_pool = OBJ_NEW(opal_pointer_array_t);
|
||||||
if (ORTE_SUCCESS != (rc = orte_regex_create(save, ®ex))) {
|
nodelist = opal_argv_split(argv[1], ',');
|
||||||
|
for (i=0; NULL != nodelist[i]; i++) {
|
||||||
|
orte_proc_t *daemon = NULL;
|
||||||
|
|
||||||
|
nptr = OBJ_NEW(orte_node_t);
|
||||||
|
nptr->name = strdup(nodelist[i]);
|
||||||
|
daemon = OBJ_NEW(orte_proc_t);
|
||||||
|
daemon->name.jobid = 123;
|
||||||
|
daemon->name.vpid = i;
|
||||||
|
nptr->daemon = daemon;
|
||||||
|
|
||||||
|
nptr->index = opal_pointer_array_add(node_pool, nptr);
|
||||||
|
}
|
||||||
|
opal_argv_free(nodelist);
|
||||||
|
|
||||||
|
|
||||||
|
if (ORTE_SUCCESS != (rc = orte_regx.nidmap_create(node_pool, ®ex))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
} else {
|
} else {
|
||||||
|
char *vpids = strchr(regex, '@');
|
||||||
|
vpids[0] = '\0';
|
||||||
fprintf(stderr, "REGEX: %s\n", regex);
|
fprintf(stderr, "REGEX: %s\n", regex);
|
||||||
if (ORTE_SUCCESS != (rc = orte_regex_extract_node_names(regex, &nodes))) {
|
if (ORTE_SUCCESS != (rc = orte_regx.extract_node_names(regex, &nodes))) {
|
||||||
ORTE_ERROR_LOG(rc);
|
ORTE_ERROR_LOG(rc);
|
||||||
}
|
}
|
||||||
free(regex);
|
free(regex);
|
||||||
@ -63,5 +93,10 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
free(regex);
|
free(regex);
|
||||||
}
|
}
|
||||||
free(save);
|
|
||||||
|
for (i=0; (nptr = opal_pointer_array_get_item(node_pool, i)) != NULL; i++) {
|
||||||
|
free(nptr->name);
|
||||||
|
OBJ_RELEASE(nptr->daemon);
|
||||||
|
}
|
||||||
|
OBJ_RELEASE(node_pool);
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user