summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2012-01-19 08:35:21 +0400
committerIvan Maidanski <ivmai@mail.ru>2012-01-19 11:43:27 +0400
commit89ac616c3ad72943b2474a1d51bd76cc77b18a26 (patch)
treefa49a81db3800ad18a24f1b6657485f86d340606 /tests
parentf75471a21abbf8598aa327066f2c66c052f5bb46 (diff)
downloadlibatomic_ops-89ac616c3ad72943b2474a1d51bd76cc77b18a26.tar.gz
test_stack: check_list() code refactoring and 'marks' size optimization
* tests/test_stack.c (marks): Set smaller size (according to the maximum index passed to check_list). * tests/test_stack.c (check_list): Store p->data to "i" local variable (in the loop body) replacing multiple occurrences of p->data.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_stack.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/tests/test_stack.c b/tests/test_stack.c
index 034fb27..31f7748 100644
--- a/tests/test_stack.c
+++ b/tests/test_stack.c
@@ -83,7 +83,7 @@ void print_list(void)
printf("%d\n", p -> data);
}
-static char marks[MAX_NTHREADS * MAX_NTHREADS];
+static char marks[MAX_NTHREADS * (MAX_NTHREADS + 1) / 2 + 1];
void check_list(int n)
{
@@ -91,16 +91,19 @@ void check_list(int n)
int i;
for (i = 1; i <= n; ++i) marks[i] = 0;
+
for (p = (list_element *)AO_REAL_HEAD_PTR(the_list);
p != 0;
p = (list_element *)AO_REAL_NEXT_PTR(p -> next))
{
- if (p -> data > n || p -> data <= 0)
- fprintf(stderr, "Found erroneous list element %d\n", p -> data);
- if (marks[p -> data] != 0)
- fprintf(stderr, "Found duplicate list element %d\n", p -> data);
- marks[p -> data] = 1;
+ i = p -> data;
+ if (i > n || i <= 0)
+ fprintf(stderr, "Found erroneous list element %d\n", i);
+ if (marks[i] != 0)
+ fprintf(stderr, "Found duplicate list element %d\n", i);
+ marks[i] = 1;
}
+
for (i = 1; i <= n; ++i)
if (marks[i] != 1)
fprintf(stderr, "Missing list element %d\n", i);