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.
Этот коммит содержится в:
родитель
0c71c8f4e1
Коммит
1edeed2737
@ -45,6 +45,54 @@ OBJ_CLASS_INSTANCE(
|
||||
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
|
||||
|
@ -67,31 +67,6 @@ static bool initialized = false;
|
||||
*/
|
||||
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
|
||||
|
@ -94,32 +94,6 @@ OBJ_CLASS_INSTANCE(
|
||||
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 */
|
||||
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_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 */
|
||||
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_registry_internal_test_results_t *result;
|
||||
char name[30];
|
||||
int i;
|
||||
mca_gpr_replica_key_t segkey;
|
||||
char name[30], name2[30];
|
||||
int i, j;
|
||||
mca_gpr_replica_key_t segkey, key;
|
||||
mca_gpr_registry_segment_t *seg;
|
||||
mca_gpr_keytable_t *dict_entry;
|
||||
bool success;
|
||||
|
||||
test_results = OBJ_NEW(ompi_list_t);
|
||||
|
||||
/* 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++) {
|
||||
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)) {
|
||||
result->message = strdup("failed");
|
||||
} else {
|
||||
success = false;
|
||||
}
|
||||
}
|
||||
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 */
|
||||
success = true;
|
||||
result = OBJ_NEW(ompi_registry_internal_test_results_t);
|
||||
result->test = strdup("test-get-seg-key");
|
||||
segkey = gpr_replica_get_key(name, NULL);
|
||||
if (MCA_GPR_REPLICA_KEY_MAX == segkey) { /* couldn't find it */
|
||||
asprintf(&result->message, "failed to find segment %s", name);
|
||||
for (i=0; i<5; i++) {
|
||||
sprintf(name, "test-def-seg%d", i);
|
||||
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 {
|
||||
asprintf(&result->message, "success: %d", segkey);
|
||||
result->message = strdup("failed");
|
||||
}
|
||||
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);
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user