#if !(UBINOS__UBIK_TEST__EXCLUDE_MUTEXTESTSET == 1)
#include <stdio.h>
int r;
int r2;
int i;
int j;
unsigned int size_old;
unsigned int count_old;
unsigned int size;
unsigned int count;
printf("\r\n");
printf("<test>\r\n");
printf("<name>ubik_test_mutextest04</name>\r\n");
printf("<description>Test for memory leak by mutex</description>\n\r");
printf("<message>\n\r");
if (0 != r) {
printf("fail at heap_getallocatedsize\r\n");
goto end0;
}
if (0 != r) {
printf("fail at heap_getallocatedcount\r\n");
goto end0;
}
mutex_p = malloc(
sizeof(
mutex_pt) * UBINOS__UBIK_TEST__MEMLEAK_SIGOBJCOUNT);
printf("fail at malloc()\r\n");
goto end0;
}
r = 0;
printf("|----------|\r\n ");
for (i=0; i<UBINOS__UBIK_TEST__MEMLEAK_TESTCOUNT; i++) {
for (j=0; j<UBINOS__UBIK_TEST__MEMLEAK_SIGOBJCOUNT; j++) {
}
for (j=0; j<UBINOS__UBIK_TEST__MEMLEAK_SIGOBJCOUNT; j++) {
if (0 != r) {
printf("\r\n");
printf("test %d, mutex %d\r\n", i, j);
printf("fail at mutex_create(), err=%d\r\n", r);
r = -1;
break;
}
}
for (j=0; j<UBINOS__UBIK_TEST__MEMLEAK_SIGOBJCOUNT; j++) {
if (
NULL != mutex_p[j]) {
if (0 != r2) {
printf("\r\n");
printf("fail at mutex_delete(), err=%d\r\n", r2);
r = -1;
break;
}
}
}
if (0 != r) {
break;
}
if (0 == i%(UBINOS__UBIK_TEST__MEMLEAK_TESTCOUNT/10)) {
printf("+");
}
}
if (0 == r) {
printf("\r\n");
printf("pass %d tests creating and deleting %d mutex\r\n", i, j);
}
free(mutex_p);
if (0 == r) {
if (0 != r2) {
printf("fail at heap_getallocatedsize\r\n");
r = -1;
goto end0;
}
if (0 != r2) {
printf("fail at heap_getallocatedcount\r\n");
r = -1;
goto end0;
}
if (size_old != size || count_old != count) {
printf("memory leak was detected\r\n");
r = -1;
goto end0;
}
}
end0:
if (0 != r) {
r = -1;
}
else {
r = 0;
}
printf("</message>\n\r");
printf("<result>");
if (0 == r) {
printf("pass");
}
else {
printf("fail");
}
printf("</result>\r\n");
printf("</test>\r\n");
printf("\r\n");
return r;
}
#endif