From 97d2b3285f2e50abaa4ea10e69ea7b12052d0128 Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Sun, 4 Dec 2016 10:22:19 -0500 Subject: [PATCH] added option to read "packet" data memory --- src/tests/util/channel_test.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/tests/util/channel_test.c b/src/tests/util/channel_test.c index 4e62d12ff18..349ce9f08d6 100644 --- a/src/tests/util/channel_test.c +++ b/src/tests/util/channel_test.c @@ -45,6 +45,7 @@ static int debug_lvl = 0; static int kq_master, kq_worker; static int max_messages = 10; static int max_outstanding = 1; +static bool touch_memory = false; static void NEVER_RETURNS usage(void) { @@ -120,6 +121,17 @@ static void *channel_master(void *arg) num_messages++; cd->m.when = fr_time(); + + if (touch_memory) { + size_t j, k; + + for (j = k = 0; j < cd->m.data_size; j++) { + k += cd->m.data[j]; + } + + cd->m.data[4] = k; + } + memcpy(cd->m.data, &num_messages, sizeof(num_messages)); MPRINT1("Master sent message %d\n", num_messages); @@ -337,6 +349,17 @@ static void *channel_worker(void *arg) reply->m.when = fr_time(); fr_message_done(&cd->m); + if (touch_memory) { + size_t j, k; + + for (j = k = 0; j < reply->m.data_size; j++) { + k += reply->m.data[j]; + } + + reply->m.data[4] = k; + } + + MPRINT1("\tWorker sending reply to messages %d\n", worker_messages); rcode = fr_channel_send_reply(channel, reply, &cd); if (rcode < 0) { @@ -389,7 +412,7 @@ int main(int argc, char *argv[]) fr_time_start(); - while ((c = getopt(argc, argv, "hm:o:x")) != EOF) switch (c) { + while ((c = getopt(argc, argv, "hm:o:tx")) != EOF) switch (c) { case 'x': debug_lvl++; break; @@ -402,6 +425,10 @@ int main(int argc, char *argv[]) max_outstanding = atoi(optarg); break; + case 't': + touch_memory = true; + break; + case 'h': default: usage(); -- 2.47.3