1
1
openmpi/test/mca/ns/ns_nds.c
Brian Barrett 897983ea30 * Fix regression in ompi_argv_delete exposed with the unit tests
* Update a bunch of the unit tests to either be disabled (someone who
  isn't me and knows that code needs to fix them) or to work properly

This commit was SVN r4986.
2005-03-22 14:41:45 +00:00

394 строки
9.3 KiB
C

/*
* Copyright (c) 2004-2005 The Trustees of Indiana University.
* All rights reserved.
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
* All rights reserved.
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
* University of Stuttgart. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*/
#include "orte_config.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#include "include/constants.h"
#include "include/orte_constants.h"
#include "include/orte_types.h"
#include "support.h"
#include "runtime/runtime.h"
#include "mca/base/base.h"
#include "mca/ns/ns.h"
#include "mca/ns/base/base.h"
static bool test1(void); /* verify different buffer inits */
static bool test2(void); /* verify int16 */
static bool test3(void); /* verify int32 */
static bool test4(void); /* verify string */
static bool test5(void); /* verify name */
static bool test6(void); /* verify BOOL */
static bool test7(void); /* verify OBJECT */
static bool test8(void); /* verify composite (multiple types and element counts) */
static bool test9(void); /* verify GPR_KEYVAL */
static bool test10(void); /* verify GPR_VALUE */
static bool test11(void); /* verify APP_INFO */
static bool test12(void); /* verify APP_CONTEXT */
FILE *test_out;
int main (int argc, char* argv[])
{
test_init("orte_plsnds");
test_out = stderr;
/* open up the mca so we can get parameters */
orte_init();
/* startup the MCA */
if (OMPI_SUCCESS != mca_base_open()) {
fprintf(stderr, "can't open mca\n");
exit (1);
}
/* startup the name services */
if (OMPI_SUCCESS != orte_ns_base_open()) {
fprintf(stderr, "can't open name services\n");
exit (1);
}
#if 0 /* XXX - what should this be now? */
/* setup the plsnds */
orte_plsnds_open();
#endif
fprintf(test_out, "executing test1\n");
if (test1()) {
test_success();
}
else {
test_failure("orte_dps test1 failed");
}
fprintf(test_out, "executing test2\n");
if (test2()) {
test_success();
}
else {
test_failure("orte_dps test2 failed");
}
fprintf(test_out, "executing test3\n");
if (test3()) {
test_success();
}
else {
test_failure("orte_dps test3 failed");
}
fprintf(test_out, "executing test4\n");
if (test4()) {
test_success();
}
else {
test_failure("orte_dps test4 failed");
}
fprintf(test_out, "executing test5\n");
if (test5()) {
test_success();
}
else {
test_failure("orte_dps test5 failed");
}
fprintf(test_out, "executing test6\n");
if (test6()) {
test_success();
}
else {
test_failure("orte_dps test6 failed");
}
fprintf(test_out, "executing test7\n");
if (test7()) {
test_success();
}
else {
test_failure("orte_dps test7 failed");
}
fprintf(test_out, "executing test8\n");
if (test8()) {
test_success();
}
else {
test_failure("orte_dps test8 failed");
}
fprintf(test_out, "executing test9\n");
if (test9()) {
test_success();
}
else {
test_failure("orte_dps test9 failed");
}
fprintf(test_out, "executing test10\n");
if (test10()) {
test_success();
}
else {
test_failure("orte_dps test10 failed");
}
fprintf(test_out, "executing test11\n");
if (test11()) {
test_success();
}
else {
test_failure("orte_dps test11 failed");
}
fprintf(test_out, "executing test12\n");
if (test12()) {
test_success();
}
else {
test_failure("orte_dps test12 failed");
}
fclose(test_out);
return test_finalize();
}
static bool test1(void) /* check seed/singleton name discovery */
{
orte_process_name_t seed={0,0,0};
int rc;
orte_process_info.seed = true;
if (ORTE_SUCCESS != (rc = orte_ns.set_my_name())) {
test_comment("set_my_name failed for seed/singleton case");
fprintf(test_out, "set_my_name failed for seed/singleton case with return %s\n",
ORTE_ERROR_NAME(rc));
return false;
}
if (NULL == orte_process_info.my_name) {
test_comment("name_discovery failed for seed/singleton case - NULL name");
fprintf(test_out, "name_discovery failed for seed/singleton case - NULL name\n");
return false;
}
if (0 != orte_ns.compare(ORTE_NS_CMP_ALL, orte_process_info.my_name, &seed)) {
test_comment("name_discovery failed for seed/singleton case - name mismatch");
fprintf(test_out, "name_discovery failed for seed/singleton case - name mismatch\n");
return false;
}
return (true);
}
/*
* check environment name discovery
*/
static bool test2(void)
{
int rc;
orte_process_name_t dummy={2,5,21456};
if (NULL != orte_process_info.my_name) { /* cleanup from prior test */
free(orte_process_info.my_name);
orte_process_info.my_name = NULL;
}
orte_process_info.seed = false;
orte_ns.copy_process_name(&orte_process_info.ns_replica, &dummy);
setenv("OMPI_MCA_CELLID", "2", 1);
setenv("OMPI_MCA_JOBID", "5", 1);
setenv("OMPI_MCA_PROCID", "21456", 1);
setenv("OMPI_MCA_VPID_START", "0", 1);
setenv("OMPI_MCA_NUM_PROCS", "100000", 1);
if (ORTE_SUCCESS != (rc = orte_ns.set_my_name())) {
test_comment("set_my_name failed for env case");
fprintf(test_out, "set_my_name failed for env case with return %s\n",
ORTE_ERROR_NAME(rc));
return false;
}
if (NULL == orte_process_info.my_name) {
test_comment("name_discovery failed for env case - NULL name");
fprintf(test_out, "name_discovery failed for env case - NULL name\n");
return false;
}
if (0 != orte_ns.compare(ORTE_NS_CMP_ALL, orte_process_info.my_name, &dummy)) {
test_comment("name_discovery failed for env case - name mismatch");
fprintf(test_out, "name_discovery failed for env case - name mismatch\n");
return false;
}
if (0 != orte_process_info.vpid_start) {
test_comment("name_discovery failed for env case - wrong vpid_start");
fprintf(test_out, "name_discovery failed for env case - wrong vpid_start\n");
return false;
}
if (100000 != orte_process_info.num_procs) {
test_comment("name_discovery failed for env case - wrong num_procs");
fprintf(test_out, "name_discovery failed for env case - wrong num_procs\n");
return false;
}
return (true);
}
/*
* check RSH
*/
static bool test3(void)
{
int rc;
orte_process_name_t dummy={10,0,160000};
if (NULL != orte_process_info.my_name) { /* cleanup from prior test */
free(orte_process_info.my_name);
orte_process_info.my_name = NULL;
}
orte_process_info.seed = false;
orte_ns.copy_process_name(&orte_process_info.ns_replica, &dummy);
setenv("OMPI_MCA_CELLID", "10", 1);
setenv("OMPI_MCA_JOBID", "0", 1);
setenv("OMPI_MCA_PROCID", "160000", 1);
setenv("OMPI_MCA_VPID_START", "15", 1);
setenv("OMPI_MCA_NUM_PROCS", "250000", 1);
setenv("OMPI_MCA_PLS_LAUNCHER", "RSH", 1);
if (ORTE_SUCCESS != (rc = orte_ns.set_my_name())) {
test_comment("set_my_name failed for env case");
fprintf(test_out, "set_my_name failed for env case with return %s\n",
ORTE_ERROR_NAME(rc));
return false;
}
if (NULL == orte_process_info.my_name) {
test_comment("name_discovery failed for env case - NULL name");
fprintf(test_out, "name_discovery failed for env case - NULL name\n");
return false;
}
if (0 != orte_ns.compare(ORTE_NS_CMP_ALL, orte_process_info.my_name, &dummy)) {
test_comment("name_discovery failed for env case - name mismatch");
fprintf(test_out, "name_discovery failed for env case - name mismatch\n");
return false;
}
if (15 != orte_process_info.vpid_start) {
test_comment("name_discovery failed for env case - wrong vpid_start");
fprintf(test_out, "name_discovery failed for env case - wrong vpid_start\n");
return false;
}
if (250000 != orte_process_info.num_procs) {
test_comment("name_discovery failed for env case - wrong num_procs");
fprintf(test_out, "name_discovery failed for env case - wrong num_procs\n");
return false;
}
return (true);
}
/*
*
*/
static bool test4(void)
{
return (true);
}
/**
*
*/
static bool test5(void)
{
return(true);
}
/**
*
*/
static bool test6(void)
{
return (true);
}
/**
*
*/
static bool test7(void)
{
return (true);
}
/**
*
*/
static bool test8(void)
{
return (true);
}
/* */
static bool test9(void)
{
return (true);
}
/* */
static bool test10(void)
{
return (true);
}
/* */
static bool test11(void)
{
return (true);
}
/* */
static bool test12(void)
{
return (true);
}