Commit 073812ca authored by Robert Schmidt's avatar Robert Schmidt

Merge remote-tracking branch 'origin/fix-test-asan-errors' into integration_2024_w26b

parents 7264f9e0 7a86e36c
...@@ -37,4 +37,4 @@ WORKDIR /oai-ran ...@@ -37,4 +37,4 @@ WORKDIR /oai-ran
COPY . . COPY . .
WORKDIR /oai-ran/build WORKDIR /oai-ran/build
RUN cmake -GNinja -DENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Debug .. && ninja tests RUN cmake -GNinja -DENABLE_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DSANITIZE_ADDRESS=True .. && ninja tests
...@@ -46,7 +46,7 @@ void displayList(notifiedFIFO_t *nf) ...@@ -46,7 +46,7 @@ void displayList(notifiedFIFO_t *nf)
struct testData { struct testData {
int id; int id;
int sleepTime; int sleepTime;
char txt[30]; char txt[50];
}; };
void processing(void *arg) void processing(void *arg)
...@@ -64,21 +64,27 @@ int main() ...@@ -64,21 +64,27 @@ int main()
logInit(); logInit();
notifiedFIFO_t myFifo; notifiedFIFO_t myFifo;
initNotifiedFIFO(&myFifo); initNotifiedFIFO(&myFifo);
int num_elements_on_queue = 0;
pushNotifiedFIFO(&myFifo, newNotifiedFIFO_elt(sizeof(struct testData), 1234, NULL, NULL)); pushNotifiedFIFO(&myFifo, newNotifiedFIFO_elt(sizeof(struct testData), 1234, NULL, NULL));
num_elements_on_queue++;
for (int i = 10; i > 1; i--) { for (int i = 10; i > 1; i--) {
pushNotifiedFIFO(&myFifo, newNotifiedFIFO_elt(sizeof(struct testData), 1000 + i, NULL, NULL)); pushNotifiedFIFO(&myFifo, newNotifiedFIFO_elt(sizeof(struct testData), 1000 + i, NULL, NULL));
num_elements_on_queue++;
} }
displayList(&myFifo); displayList(&myFifo);
notifiedFIFO_elt_t *tmp = pullNotifiedFIFO(&myFifo); notifiedFIFO_elt_t *tmp = pullNotifiedFIFO(&myFifo);
printf("pulled: %lu\n", tmp->key); printf("pulled: %lu\n", tmp->key);
displayList(&myFifo); displayList(&myFifo);
delNotifiedFIFO_elt(tmp);
tmp = pullNotifiedFIFO(&myFifo); tmp = pullNotifiedFIFO(&myFifo);
num_elements_on_queue--;
printf("pulled: %lu\n", tmp->key); printf("pulled: %lu\n", tmp->key);
displayList(&myFifo); displayList(&myFifo);
pushNotifiedFIFO(&myFifo, newNotifiedFIFO_elt(sizeof(struct testData), 12345678, NULL, NULL)); pushNotifiedFIFO(&myFifo, newNotifiedFIFO_elt(sizeof(struct testData), 12345678, NULL, NULL));
displayList(&myFifo); displayList(&myFifo);
delNotifiedFIFO_elt(tmp);
do { do {
tmp = pollNotifiedFIFO(&myFifo); tmp = pollNotifiedFIFO(&myFifo);
...@@ -86,9 +92,12 @@ int main() ...@@ -86,9 +92,12 @@ int main()
if (tmp) { if (tmp) {
printf("pulled: %lu\n", tmp->key); printf("pulled: %lu\n", tmp->key);
displayList(&myFifo); displayList(&myFifo);
delNotifiedFIFO_elt(tmp);
num_elements_on_queue--;
} else } else
printf("Empty list \n"); printf("Empty list \n");
} while (tmp); } while (num_elements_on_queue > 0);
AssertFatal(pollNotifiedFIFO(&myFifo) == NULL, "Unexpected extra element on queue\n");
tpool_t pool; tpool_t pool;
char params[] = "1,2,3,4,5"; char params[] = "1,2,3,4,5";
...@@ -129,5 +138,6 @@ int main() ...@@ -129,5 +138,6 @@ int main()
dur / 1000, dur / 1000,
cumulProcessTime / 1000, cumulProcessTime / 1000,
(dur - cumulProcessTime) / (1000 * nb_jobs)); (dur - cumulProcessTime) / (1000 * nb_jobs));
abortTpool(&pool);
return 0; return 0;
} }
...@@ -336,7 +336,9 @@ static inline int abortTpool(tpool_t *t) { ...@@ -336,7 +336,9 @@ static inline int abortTpool(tpool_t *t) {
thread = t->allthreads; thread = t->allthreads;
while (thread != NULL) { while (thread != NULL) {
pthread_cancel(thread->threadID); pthread_cancel(thread->threadID);
thread = thread->next; struct one_thread *next = thread->next;
free(thread);
thread = next;
} }
return nbRemoved; return nbRemoved;
......
...@@ -110,11 +110,8 @@ nr_rlc_entity_t *new_nr_rlc_entity_am( ...@@ -110,11 +110,8 @@ nr_rlc_entity_t *new_nr_rlc_entity_am(
ret->max_retx_threshold = max_retx_threshold; ret->max_retx_threshold = max_retx_threshold;
ret->sn_field_length = sn_field_length; ret->sn_field_length = sn_field_length;
if (!(sn_field_length == 12 || sn_field_length == 18)) { AssertFatal(sn_field_length == 12 || sn_field_length == 18, "Wrong SN field_length (%d), must be 12 or 18\n", sn_field_length);
LOG_E(RLC, "%s:%d:%s: wrong SN field_lenght (%d), must be 12 or 18\n",
__FILE__, __LINE__, __FUNCTION__, sn_field_length);
exit(1);
}
ret->sn_modulus = 1 << ret->sn_field_length; ret->sn_modulus = 1 << ret->sn_field_length;
ret->window_size = ret->sn_modulus / 2; ret->window_size = ret->sn_modulus / 2;
...@@ -172,11 +169,8 @@ nr_rlc_entity_t *new_nr_rlc_entity_um( ...@@ -172,11 +169,8 @@ nr_rlc_entity_t *new_nr_rlc_entity_um(
ret->t_reassembly = t_reassembly; ret->t_reassembly = t_reassembly;
ret->sn_field_length = sn_field_length; ret->sn_field_length = sn_field_length;
if (!(sn_field_length == 6 || sn_field_length == 12)) { AssertFatal(sn_field_length == 6 || sn_field_length == 12, "Wrong SN field_length (%d), must be 6 or 12\n", sn_field_length);
LOG_E(RLC, "%s:%d:%s: wrong SN field_lenght (%d), must be 6 or 12\n",
__FILE__, __LINE__, __FUNCTION__, sn_field_length);
exit(1);
}
ret->sn_modulus = 1 << ret->sn_field_length; ret->sn_modulus = 1 << ret->sn_field_length;
ret->window_size = ret->sn_modulus / 2; ret->window_size = ret->sn_modulus / 2;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment