From eacd1cfbf0e21e79206b9c590aed34a3f01d2839 Mon Sep 17 00:00:00 2001
From: Robert Schmidt <robert.schmidt@eurecom.fr>
Date: Thu, 20 Sep 2018 15:03:19 +0200
Subject: [PATCH] PROTO_AGENT test program changes

---
 openair2/LAYER2/PROTO_AGENT/cu_test.c | 14 +++++++++++---
 openair2/LAYER2/PROTO_AGENT/du_test.c | 13 ++++++++++---
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/openair2/LAYER2/PROTO_AGENT/cu_test.c b/openair2/LAYER2/PROTO_AGENT/cu_test.c
index 923b70607c..ae9a2129e5 100644
--- a/openair2/LAYER2/PROTO_AGENT/cu_test.c
+++ b/openair2/LAYER2/PROTO_AGENT/cu_test.c
@@ -35,12 +35,19 @@ pdcp_data_ind(
 )
 {
   fwrite(sdu_buffer_pP->data, sdu_buffer_sizeP, 1, stdout);
-  free_mem_block(sdu_buffer_pP, __func__);
   fflush(stdout);
+  free_mem_block(sdu_buffer_pP, __func__);
+  /* cannot free because of const */
+  free(ctxt_pP);
   recv_client = 1;
   return 0;
 }
 
+void close_proto_agent(void)
+{
+  proto_agent_stop(0);
+}
+
 int main(int argc, char *argv[])
 {
   const cudu_params_t params = {
@@ -79,6 +86,7 @@ int main(int argc, char *argv[])
     fprintf(stderr, "error on proto_agent_start()\n");
     return 3;
   }
+  atexit(close_proto_agent);
 
   /* wait for first packet of client */
   while (!recv_client) sleep(1);
@@ -87,7 +95,7 @@ int main(int argc, char *argv[])
   /* now send back at the same time */
   gettimeofday(&t_start, NULL);
   while ((size = fread(s, 1, BUF_MAX, f)) > 0) {
-    usleep(100);
+    usleep(10);
     totsize += size;
     mem.data = &s[0];
     proto_agent_send_rlc_data_req(&p, 0, 0, 0, 0, 0, size, &mem);
@@ -101,7 +109,7 @@ int main(int argc, char *argv[])
   fprintf(stderr, "check files using 'diff afile bfile'\n");
 
   /* give some time in case the other direction is slower */
-  sleep(60);
+  sleep(5);
   return 0;
 }
 
diff --git a/openair2/LAYER2/PROTO_AGENT/du_test.c b/openair2/LAYER2/PROTO_AGENT/du_test.c
index e23503cc74..04fac69f31 100644
--- a/openair2/LAYER2/PROTO_AGENT/du_test.c
+++ b/openair2/LAYER2/PROTO_AGENT/du_test.c
@@ -38,11 +38,17 @@ rlc_op_status_t rlc_data_req     (const protocol_ctxt_t* const ctxt_pP,
                                   )
 {
   fwrite(sdu_pP->data, sdu_sizeP, 1, stdout);
-  free_mem_block(sdu_pP, __func__);
   fflush(stdout);
+  free_mem_block(sdu_pP, __func__);
+  free(ctxt_pP);
   return 0;
 }
 
+void close_proto_agent(void)
+{
+  proto_agent_stop(0);
+}
+
 int main(int argc, char *argv[])
 {
   const cudu_params_t params = {
@@ -81,10 +87,11 @@ int main(int argc, char *argv[])
     fprintf(stderr, "error on proto_agent_start()\n");
     return 3;
   }
+  atexit(close_proto_agent);
 
   gettimeofday(&t_start, NULL);
   while ((size = fread(s, 1, BUF_MAX, f)) > 0) {
-    usleep(100);
+    usleep(10);
     totsize += size;
     mem.data = &s[0];
     proto_agent_send_pdcp_data_ind(&p, 0, 0, 0, size, &mem);
@@ -98,7 +105,7 @@ int main(int argc, char *argv[])
   fprintf(stderr, "check files using 'diff afile bfile'\n");
 
   /* wait, we are possibly receiving data */
-  sleep(60);
+  sleep(5);
   return 0;
 }
 
-- 
GitLab