change the pointers in the lam item to be volatile.
Add some to the list unit test. This commit was SVN r547.
Этот коммит содержится в:
родитель
d78ddd7cf2
Коммит
d5ae55fdcc
@ -30,8 +30,8 @@ typedef struct lam_list_item
|
|||||||
{
|
{
|
||||||
lam_object_t super;
|
lam_object_t super;
|
||||||
lam_list_type_t lam_list_type;
|
lam_list_type_t lam_list_type;
|
||||||
struct lam_list_item *lam_list_next;
|
volatile struct lam_list_item *lam_list_next;
|
||||||
struct lam_list_item *lam_list_prev;
|
volatile struct lam_list_item *lam_list_prev;
|
||||||
} lam_list_item_t;
|
} lam_list_item_t;
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
@ -103,7 +103,7 @@ static inline void lam_list_set_size(lam_list_t* list, size_t size)
|
|||||||
*/
|
*/
|
||||||
static inline lam_list_item_t* lam_list_get_first(lam_list_t* list)
|
static inline lam_list_item_t* lam_list_get_first(lam_list_t* list)
|
||||||
{
|
{
|
||||||
return list->lam_list_head.lam_list_next;
|
return (lam_list_item_t *)list->lam_list_head.lam_list_next;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -111,7 +111,7 @@ static inline lam_list_item_t* lam_list_get_first(lam_list_t* list)
|
|||||||
*/
|
*/
|
||||||
static inline lam_list_item_t* lam_list_get_last(lam_list_t* list)
|
static inline lam_list_item_t* lam_list_get_last(lam_list_t* list)
|
||||||
{
|
{
|
||||||
return list->lam_list_tail.lam_list_prev;
|
return (lam_list_item_t *)list->lam_list_tail.lam_list_prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -151,8 +151,8 @@ static inline lam_list_item_t *lam_list_remove_item
|
|||||||
/* check to see that the item is in the list */
|
/* check to see that the item is in the list */
|
||||||
for (item_ptr = lam_list_get_first(list);
|
for (item_ptr = lam_list_get_first(list);
|
||||||
item_ptr != lam_list_get_end(list);
|
item_ptr != lam_list_get_end(list);
|
||||||
item_ptr = item_ptr->lam_list_next) {
|
item_ptr = (lam_list_item_t *)(item_ptr->lam_list_next)) {
|
||||||
if (item_ptr == item) {
|
if (item_ptr == (lam_list_item_t *) item) {
|
||||||
found = true;
|
found = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -169,7 +169,7 @@ static inline lam_list_item_t *lam_list_remove_item
|
|||||||
/* reset previous pointer of next element */
|
/* reset previous pointer of next element */
|
||||||
item->lam_list_next->lam_list_prev=item->lam_list_prev;
|
item->lam_list_next->lam_list_prev=item->lam_list_prev;
|
||||||
|
|
||||||
return item->lam_list_prev;
|
return (lam_list_item_t *)item->lam_list_prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(c_plusplus) || defined(__cplusplus)
|
#if defined(c_plusplus) || defined(__cplusplus)
|
||||||
|
@ -150,8 +150,8 @@ static void show_module_version(const string& type_name,
|
|||||||
|
|
||||||
modules = module_map[type_name];
|
modules = module_map[type_name];
|
||||||
for (item = lam_list_get_first(modules);
|
for (item = lam_list_get_first(modules);
|
||||||
lam_list_get_end(modules) != item;
|
lam_list_get_last(modules) != item;
|
||||||
item = lam_list_get_next(item)) {
|
item = (lam_list_item *) lam_list_get_next(item)) {
|
||||||
module = (mca_base_module_t *) item;
|
module = (mca_base_module_t *) item;
|
||||||
if (want_all_modules || module->mca_module_name == module_name) {
|
if (want_all_modules || module->mca_module_name == module_name) {
|
||||||
show_mca_version(module, scope, ver_type);
|
show_mca_version(module, scope, ver_type);
|
||||||
|
@ -7,7 +7,36 @@
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
/* local variables */
|
||||||
|
lam_list_t list;
|
||||||
|
lam_list_type_t list_type,list_type_out;
|
||||||
|
size_t list_size;
|
||||||
|
|
||||||
test_init("List");
|
test_init("List");
|
||||||
|
|
||||||
|
/* initialize list */
|
||||||
|
lam_list_init(&list);
|
||||||
|
|
||||||
|
/* check length of list */
|
||||||
|
list_size=lam_list_get_size(&list);
|
||||||
|
if( 0 == list_size ) {
|
||||||
|
test_success();
|
||||||
|
} else {
|
||||||
|
test_failure(" lam_list_get_size");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check list type */
|
||||||
|
list_type=2;
|
||||||
|
lam_list_set_type(&list,list_type);
|
||||||
|
list_type_out=0;
|
||||||
|
list_type_out=lam_list_get_type(&list);
|
||||||
|
if( list_type_out == list_type ) {
|
||||||
|
test_success();
|
||||||
|
} else {
|
||||||
|
test_failure(" lam_list_set/get_type");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
test_finalize();
|
test_finalize();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,8 @@ int test_finalize(void)
|
|||||||
return_value=1;
|
return_value=1;
|
||||||
|
|
||||||
if( lam_n_tests == lam_n_success) {
|
if( lam_n_tests == lam_n_success) {
|
||||||
fprintf(stderr," SUPPORT :: LAM Test Passed :: %s \n",lam_description);
|
fprintf(stderr," SUPPORT :: LAM Test Passed :: %s %d tests \n",
|
||||||
|
lam_description,lam_n_tests);
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
} else {
|
} else {
|
||||||
fprintf(stderr," SUPPORT :: LAM Test failed :: %s :: %d of %d failed\n"
|
fprintf(stderr," SUPPORT :: LAM Test failed :: %s :: %d of %d failed\n"
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user