1
1

Fix a duplicate instance call that is not noticed by the Mac, but apparently is noticed by others. Continue installing internal tests.

This commit was SVN r2180.
Этот коммит содержится в:
Ralph Castain 2004-08-17 15:04:56 +00:00
родитель 0c71c8f4e1
Коммит 1edeed2737
4 изменённых файлов: 152 добавлений и 85 удалений

Просмотреть файл

@ -45,6 +45,54 @@ OBJ_CLASS_INSTANCE(
ompi_registry_value_destructor); /* destructor */ ompi_registry_value_destructor); /* destructor */
/* constructor - used to initialize state of index_value instance */
static void ompi_registry_index_value_construct(ompi_registry_index_value_t* value)
{
value->token = NULL;
}
/* destructor - used to free any resources held by instance */
static void ompi_registry_index_value_destructor(ompi_registry_index_value_t* value)
{
if (value->token) {
free(value->token);
}
}
/* define instance of ompi_class_t */
OBJ_CLASS_INSTANCE(
ompi_registry_index_value_t, /* type name */
ompi_list_item_t, /* parent "class" name */
ompi_registry_index_value_construct, /* constructor */
ompi_registry_index_value_destructor); /* destructor */
/* constructor - used to initialize state of test results instance */
static void ompi_registry_internal_test_results_construct(ompi_registry_internal_test_results_t* results)
{
results->test = NULL;
results->message = NULL;
}
/* destructor - used to free any resources held by instance */
static void ompi_registry_internal_test_results_destructor(ompi_registry_internal_test_results_t* results)
{
if (NULL != results->test) {
free(results->test);
}
if (NULL != results->message) {
free(results->message);
}
}
/* define instance of ompi_class_t */
OBJ_CLASS_INSTANCE(
ompi_registry_internal_test_results_t, /* type name */
ompi_list_item_t, /* parent "class" name */
ompi_registry_internal_test_results_construct, /* constructor */
ompi_registry_internal_test_results_destructor); /* destructor */
/* /*
* Global variables * Global variables

Просмотреть файл

@ -67,31 +67,6 @@ static bool initialized = false;
*/ */
ompi_process_name_t *mca_gpr_my_replica; ompi_process_name_t *mca_gpr_my_replica;
/* constructor - used to initialize state of test results instance */
static void ompi_registry_internal_test_results_construct(ompi_registry_internal_test_results_t* results)
{
results->test = NULL;
results->message = NULL;
}
/* destructor - used to free any resources held by instance */
static void ompi_registry_internal_test_results_destructor(ompi_registry_internal_test_results_t* results)
{
if (NULL != results->test) {
free(results->test);
}
if (NULL != results->message) {
free(results->message);
}
}
/* define instance of ompi_class_t */
OBJ_CLASS_INSTANCE(
ompi_registry_internal_test_results_t, /* type name */
ompi_list_item_t, /* parent "class" name */
ompi_registry_internal_test_results_construct, /* constructor */
ompi_registry_internal_test_results_destructor); /* destructor */
/* /*
* don't really need this function - could just put NULL in the above structure * don't really need this function - could just put NULL in the above structure

Просмотреть файл

@ -94,32 +94,6 @@ OBJ_CLASS_INSTANCE(
mca_gpr_keytable_destructor); /* destructor */ mca_gpr_keytable_destructor); /* destructor */
/* constructor - used to initialize state of test results instance */
static void ompi_registry_internal_test_results_construct(ompi_registry_internal_test_results_t* results)
{
results->test = NULL;
results->message = NULL;
}
/* destructor - used to free any resources held by instance */
static void ompi_registry_internal_test_results_destructor(ompi_registry_internal_test_results_t* results)
{
if (NULL != results->test) {
free(results->test);
}
if (NULL != results->message) {
free(results->message);
}
}
/* define instance of ompi_class_t */
OBJ_CLASS_INSTANCE(
ompi_registry_internal_test_results_t, /* type name */
ompi_list_item_t, /* parent "class" name */
ompi_registry_internal_test_results_construct, /* constructor */
ompi_registry_internal_test_results_destructor); /* destructor */
/* constructor - used to initialize state of keylist instance */ /* constructor - used to initialize state of keylist instance */
static void mca_gpr_keylist_construct(mca_gpr_keylist_t* keylist) static void mca_gpr_keylist_construct(mca_gpr_keylist_t* keylist)
{ {
@ -138,27 +112,6 @@ OBJ_CLASS_INSTANCE(
mca_gpr_keylist_construct, /* constructor */ mca_gpr_keylist_construct, /* constructor */
mca_gpr_keylist_destructor); /* destructor */ mca_gpr_keylist_destructor); /* destructor */
/* constructor - used to initialize state of index_value instance */
static void mca_gpr_index_value_construct(ompi_registry_index_value_t* value)
{
value->token = NULL;
}
/* destructor - used to free any resources held by instance */
static void mca_gpr_index_value_destructor(ompi_registry_index_value_t* value)
{
if (value->token) {
free(value->token);
}
}
/* define instance of ompi_class_t */
OBJ_CLASS_INSTANCE(
ompi_registry_index_value_t, /* type name */
ompi_list_item_t, /* parent "class" name */
mca_gpr_index_value_construct, /* constructor */
mca_gpr_index_value_destructor); /* destructor */
/* constructor - used to initialize state of subscriber list instance */ /* constructor - used to initialize state of subscriber list instance */
static void mca_gpr_subscriber_list_construct(mca_gpr_subscriber_list_t* subscriber) static void mca_gpr_subscriber_list_construct(mca_gpr_subscriber_list_t* subscriber)

Просмотреть файл

@ -315,34 +315,65 @@ ompi_list_t *gpr_replica_test_internals(int level)
{ {
ompi_list_t *test_results; ompi_list_t *test_results;
ompi_registry_internal_test_results_t *result; ompi_registry_internal_test_results_t *result;
char name[30]; char name[30], name2[30];
int i; int i, j;
mca_gpr_replica_key_t segkey; mca_gpr_replica_key_t segkey, key;
mca_gpr_registry_segment_t *seg; mca_gpr_registry_segment_t *seg;
mca_gpr_keytable_t *dict_entry;
bool success;
test_results = OBJ_NEW(ompi_list_t); test_results = OBJ_NEW(ompi_list_t);
/* create several test segments */ /* create several test segments */
success = true;
result = OBJ_NEW(ompi_registry_internal_test_results_t);
result->test = strdup("test-create-segment");
for (i=0; i<5; i++) { for (i=0; i<5; i++) {
sprintf(name, "test-def-seg%d", i); sprintf(name, "test-def-seg%d", i);
result = OBJ_NEW(ompi_registry_internal_test_results_t);
result->test = strdup(name);
if (OMPI_SUCCESS != gpr_replica_define_segment(name)) { if (OMPI_SUCCESS != gpr_replica_define_segment(name)) {
result->message = strdup("failed"); success = false;
} else {
result->message = strdup("success");
} }
ompi_list_append(test_results, &result->item);
} }
if (success) {
result->message = strdup("success");
} else {
result->message = strdup("failed");
}
ompi_list_append(test_results, &result->item);
/* check that define key protects uniqueness */
success = true;
result = OBJ_NEW(ompi_registry_internal_test_results_t);
result->test = strdup("test-define-key-uniqueness");
for (i=0; i<5; i++) {
sprintf(name, "test-def-seg%d", i);
key = gpr_replica_define_key(name, NULL);
if (MCA_GPR_REPLICA_KEY_MAX != key) { /* got an error */
success = false;
}
}
if (success) {
result->message = strdup("success");
} else {
result->message = strdup("failed");
}
ompi_list_append(test_results, &result->item);
/* check ability to get key for a segment */ /* check ability to get key for a segment */
success = true;
result = OBJ_NEW(ompi_registry_internal_test_results_t); result = OBJ_NEW(ompi_registry_internal_test_results_t);
result->test = strdup("test-get-seg-key"); result->test = strdup("test-get-seg-key");
segkey = gpr_replica_get_key(name, NULL); for (i=0; i<5; i++) {
if (MCA_GPR_REPLICA_KEY_MAX == segkey) { /* couldn't find it */ sprintf(name, "test-def-seg%d", i);
asprintf(&result->message, "failed to find segment %s", name); key = gpr_replica_get_key(name, NULL);
if (MCA_GPR_REPLICA_KEY_MAX == key) { /* got an error */
success = false;
}
}
if (success) {
result->message = strdup("success");
} else { } else {
asprintf(&result->message, "success: %d", segkey); result->message = strdup("failed");
} }
ompi_list_append(test_results, &result->item); ompi_list_append(test_results, &result->item);
@ -364,5 +395,65 @@ ompi_list_t *gpr_replica_test_internals(int level)
} }
ompi_list_append(test_results, &result->item); ompi_list_append(test_results, &result->item);
/* check ability to define key within a segment */
success = true;
result = OBJ_NEW(ompi_registry_internal_test_results_t);
result->test = strdup("test-define-key");
for (i=0; i<5 && success; i++) {
sprintf(name, "test-def-seg%d", i);
for (j=0; j<10 && success; j++) {
sprintf(name2, "test-key%d", j);
key = gpr_replica_define_key(name, name2);
if (MCA_GPR_REPLICA_KEY_MAX == key) { /* got an error */
success = false;
}
}
}
if (success) {
result->message = strdup("success");
} else {
result->message = strdup("failed");
}
ompi_list_append(test_results, &result->item);
/* check ability to get dictionary entries */
success = true;
result = OBJ_NEW(ompi_registry_internal_test_results_t);
result->test = strdup("test-get-dict-entry");
/* first check ability to get segment values */
for (i=0; i<5 && success; i++) {
sprintf(name, "test-def-seg%d", i);
dict_entry = gpr_replica_find_dict_entry(name, NULL);
if (NULL == dict_entry) { /* got an error */
success = false;
}
}
if (success) {
result->message = strdup("success");
} else {
result->message = strdup("failed");
}
ompi_list_append(test_results, &result->item);
if (success) { /* segment values checked out - move on to within a segment */
result = OBJ_NEW(ompi_registry_internal_test_results_t);
result->test = strdup("test-get-dict-entry-segment");
for (i=0; i<5; i++) {
sprintf(name, "test-def-seg%d", i);
for (j=0; j<10; j++) {
sprintf(name2, "test-key%d", j);
dict_entry = gpr_replica_find_dict_entry(name, NULL);
if (NULL == dict_entry) { /* got an error */
success = false;
}
}
}
if (success) {
result->message = strdup("success");
} else {
result->message = strdup("failed");
}
ompi_list_append(test_results, &result->item);
}
return test_results; return test_results;
} }