Hi guys,
Here is the new patch file generated for new timing suite on POSIX.

Thanks
Himanshu
From 1e919ea64e57ffa62b2a40f5464b191a944334d3 Mon Sep 17 00:00:00 2001
From: Himanshu40 <himanshuwindows...@gmail.com>
Date: Sun, 25 Nov 2018 01:08:25 +0530
Subject: [PATCH] psxtmmqrcvblock02: Added new POSIX timing suite(GCI 2018)

---
 testsuites/psxtmtests/Makefile.am             | 11 +++
 testsuites/psxtmtests/configure.ac            |  1 +
 .../psxtmtests/psxtmmqrcvblock02/init.c       | 97 +++++++++++++++++++
 .../psxtmmqrcvblock02/psxtmmqrcvblock02.doc   | 18 ++++
 testsuites/psxtmtests/psxtmtests_plan.csv     | 14 +--
 5 files changed, 134 insertions(+), 7 deletions(-)
 create mode 100644 testsuites/psxtmtests/psxtmmqrcvblock02/init.c
 create mode 100644 testsuites/psxtmtests/psxtmmqrcvblock02/psxtmmqrcvblock02.doc

diff --git a/testsuites/psxtmtests/Makefile.am b/testsuites/psxtmtests/Makefile.am
index d87921d133..2702e0b035 100644
--- a/testsuites/psxtmtests/Makefile.am
+++ b/testsuites/psxtmtests/Makefile.am
@@ -471,6 +471,17 @@ psxtmmqrcvblock01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxtmmqrcvblock01) \
 	-DOPERATION_COUNT=$(OPERATION_COUNT)
 endif
 
+if TEST_psxtmmqrcvblock02
+psxtm_tests += psxtmmqrcvblock02
+psxtm_docs += psxtmmqrcvblock02/psxtmmqrcvblock02.doc
+psxtmmqrcvblock02_SOURCES = psxtmmqrcvblock02/init.c \
+	../tmtests/include/timesys.h ../support/src/tmtests_empty_function.c \
+	../support/src/tmtests_support.c
+psxtmmqrcvblock02_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxtmmqrcvblock02) \
+	$(support_includes) -I$(top_srcdir)/../tmtests/include \
+	-DOPERATION_COUNT=$(OPERATION_COUNT)
+endif
+
 if TEST_psxtmsem01
 psxtm_tests += psxtmsem01
 psxtm_docs += psxtmsem01/psxtmsem01.doc
diff --git a/testsuites/psxtmtests/configure.ac b/testsuites/psxtmtests/configure.ac
index 5cfad14894..857a8bac3c 100644
--- a/testsuites/psxtmtests/configure.ac
+++ b/testsuites/psxtmtests/configure.ac
@@ -71,6 +71,7 @@ RTEMS_TEST_CHECK([psxtmrwlock05])
 RTEMS_TEST_CHECK([psxtmrwlock06])
 RTEMS_TEST_CHECK([psxtmrwlock07])
 RTEMS_TEST_CHECK([psxtmmqrcvblock01])
+RTEMS_TEST_CHECK([psxtmmqrcvblock02])
 RTEMS_TEST_CHECK([psxtmsem01])
 RTEMS_TEST_CHECK([psxtmsem02])
 RTEMS_TEST_CHECK([psxtmsem03])
diff --git a/testsuites/psxtmtests/psxtmmqrcvblock02/init.c b/testsuites/psxtmtests/psxtmmqrcvblock02/init.c
new file mode 100644
index 0000000000..db649853d0
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmqrcvblock02/init.c
@@ -0,0 +1,97 @@
+/*
+ *  COPYRIGHT (c) 2018.
+ *  Himanshu Sekhar Nayak(GCI 2018)
+ *
+ *  Permission to use, copy, modify, and/or distribute this software
+ *  for any purpose with or without fee is hereby granted.
+ *
+ *  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ *  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ *  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+ *  BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+ *  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ *  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ *  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <fcntl.h>
+#include <timesys.h>
+#include <errno.h>
+#include <rtems/btimer.h>
+#include "test_support.h"
+#include <tmacros.h>
+#include <mqueue.h>
+#include <signal.h>   /* signal facilities */
+
+const char rtems_test_name[] = "PSXTMMQRCVBLOCK02";
+
+/* forward declarations to avoid warnings */
+static void *POSIX_Init(void *argument);
+
+#define MQ_MAXMSG     1
+#define MQ_MSGSIZE    sizeof(int)
+
+static mqd_t queue;
+const char *q_name;
+
+static void benchmark_mq_timedreceive(void)
+{
+  long end_time;
+  int  status;
+  unsigned int  priority;
+  struct timespec  timeout;
+  int message[MQ_MAXMSG];
+  struct mq_attr  attr;
+
+  priority = 1;                  /* priority low */
+  attr.mq_maxmsg  = MQ_MAXMSG;
+  attr.mq_msgsize = MQ_MSGSIZE;
+  timeout.tv_sec  = 0;           /* seconds */
+  timeout.tv_nsec = 0;           /* nano seconds */
+  q_name= "queue";
+
+  queue = mq_open( q_name, O_CREAT | O_RDWR , 0x777, &attr );
+  benchmark_timer_initialize();
+  status = mq_timedreceive(queue, ( char *)message, MQ_MSGSIZE, &priority, &timeout);
+  end_time = benchmark_timer_read();
+  rtems_test_assert( status == (-1) );
+
+  put_time(
+    "mq_timedreceive: not available: blocks",
+    end_time,
+    1,        /* Only executed once */
+    0,
+    0
+  );
+}
+
+static void *POSIX_Init(
+  void *argument
+)
+{
+
+  TEST_BEGIN();
+
+  benchmark_mq_timedreceive();
+
+  TEST_END();
+  rtems_test_exit(0);
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS     1
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES  1
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
+/* end of file */
diff --git a/testsuites/psxtmtests/psxtmmqrcvblock02/psxtmmqrcvblock02.doc b/testsuites/psxtmtests/psxtmmqrcvblock02/psxtmmqrcvblock02.doc
new file mode 100644
index 0000000000..e4ee9d0499
--- /dev/null
+++ b/testsuites/psxtmtests/psxtmmqrcvblock02/psxtmmqrcvblock02.doc
@@ -0,0 +1,18 @@
+#  COPYRIGHT (c) 2018.
+#  Himanshu Sekhar Nayak
+#
+#  Permission to use, copy, modify, and/or distribute this software
+#  for any purpose with or without fee is hereby granted.
+#
+#  THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+#  WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+#  WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR
+#  BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
+#  OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+#  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+#  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+
+This test benchmarks the following operations:
+
++ mq_timedreceive: not available: blocks
diff --git a/testsuites/psxtmtests/psxtmtests_plan.csv b/testsuites/psxtmtests/psxtmtests_plan.csv
index 7fd1f113d4..be96170486 100644
--- a/testsuites/psxtmtests/psxtmtests_plan.csv
+++ b/testsuites/psxtmtests/psxtmtests_plan.csv
@@ -126,17 +126,17 @@
 "mq_open: second open","psxtmmq01","psxtmtest_init_destroy","Yes"
 "mq_close: close of second","psxtmmq01","psxtmtest_init_destroy","Yes"
 "mq_unlink: only case","psxtmmq01","psxtmtest_init_destroy","Yes"
-"mq_receive: available",,"psxtmtest_single","Yes"
-"mq_receive: not available: block",,"psxtmtest_blocking","Yes"
-"mq_timedreceive: available",,"psxtmtest_single","Yes"
-"mq_timedreceive: not available: blocks",,"psxtmtest_single","No"
-"mq_send: no threads waiting",,"psxtmtest_single","Yes"
+"mq_receive: available","psxtmmq01","psxtmtest_single","Yes"
+"mq_receive: not available: block","psxtmmqrcvblock01","psxtmtest_blocking","Yes"
+"mq_timedreceive: available","psxtmmq01","psxtmtest_single","Yes"
+"mq_timedreceive: not available: blocks","psxtmmqrcvblock02","psxtmtest_single","Yes"
+"mq_send: no threads waiting","psxtmmq01","psxtmtest_single","Yes"
 "mq_send: thread waiting: no preempt",,"psxtmtest_unblocking_nopreempt","No"
 "mq_send: thread waiting: preempt",,"psxtmtest_unblocking_preempt","No"
-"mq_timedsend: no threads waiting",,"psxtmtest_single","Yes"
+"mq_timedsend: no threads waiting","psxtmmq01","psxtmtest_single","Yes"
 "mq_timedsend: thread waiting: no preempt",,"psxtmtest_unblocking_nopreempt","No"
 "mq_timedsend: thread waiting: preemption",,"psxtmtest_unblocking_preempt","No"
-"mq_notify: only case",,"psxtmtest_single","Yes"
+"mq_notify: only case","psxtmmq01","psxtmtest_single","Yes"
 
 "sem_init: only case","psxtmsem01","psxtmtest_single","Yes"
 "sem_destroy: only case","psxtmsem01","psxtmtest_single","Yes"
-- 
2.17.2

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to