[PATCH] Testsuite for inttypes.
Aditya Upadhyay
aadit0402 at gmail.com
Mon Jun 12 18:56:48 UTC 2017
---
testsuites/psxtests/Makefile.am | 1 +
testsuites/psxtests/configure.ac | 1 +
testsuites/psxtests/psxinttypes01/Makefile.am | 22 +++++
testsuites/psxtests/psxinttypes01/init.c | 107 +++++++++++++++++++++
.../psxtests/psxinttypes01/psxinttypes01.scn | 9 ++
5 files changed, 140 insertions(+)
create mode 100644 testsuites/psxtests/psxinttypes01/Makefile.am
create mode 100644 testsuites/psxtests/psxinttypes01/init.c
create mode 100644 testsuites/psxtests/psxinttypes01/psxinttypes01.scn
diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am
index 7bcea46..8b246d8 100644
--- a/testsuites/psxtests/Makefile.am
+++ b/testsuites/psxtests/Makefile.am
@@ -49,6 +49,7 @@ _SUBDIRS += psxfatal01
_SUBDIRS += psxfatal02
_SUBDIRS += psxgetattrnp01
endif
+_SUBDIRS += psxinttypes01
if HAS_POSIX
if HAS_CPLUSPLUS
_SUBDIRS += psxglobalcon01
diff --git a/testsuites/psxtests/configure.ac b/testsuites/psxtests/configure.ac
index 1de1312..4db7916 100644
--- a/testsuites/psxtests/configure.ac
+++ b/testsuites/psxtests/configure.ac
@@ -162,6 +162,7 @@ psxid01/Makefile
psximfs01/Makefile
psximfs02/Makefile
psxintrcritical01/Makefile
+psxinttypes01/Makefile
psxitimer/Makefile
psxkey01/Makefile
psxkey02/Makefile
diff --git a/testsuites/psxtests/psxinttypes01/Makefile.am b/testsuites/psxtests/psxinttypes01/Makefile.am
new file mode 100644
index 0000000..517648c
--- /dev/null
+++ b/testsuites/psxtests/psxinttypes01/Makefile.am
@@ -0,0 +1,22 @@
+
+rtems_tests_PROGRAMS = psxinttypes01
+psxinttypes01_SOURCES = init.c
+
+dist_rtems_tests_DATA = psxinttypes01.scn
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+
+AM_CPPFLAGS += -I$(top_srcdir)/include
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxinttypes01_OBJECTS) $(psxinttypes01_LDADD)
+LINK_LIBS = $(psxinttypes01_LDLIBS) /home/aditya/development/b-sparc/sparc-rtems4.12/c/erc32/cpukit/inttypes/libinttypes.a
+
+psxinttypes01$(EXEEXT): $(psxinttypes01_OBJECTS) $(psxinttypes01_DEPENDENCIES)
+ @rm -f psxinttypes01$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/psxtests/psxinttypes01/init.c b/testsuites/psxtests/psxinttypes01/init.c
new file mode 100644
index 0000000..770b04d
--- /dev/null
+++ b/testsuites/psxtests/psxinttypes01/init.c
@@ -0,0 +1,107 @@
+/*
+ * This is the test for inttypes library. It covers these functions :
+ * imaxabs(), imaxdiv(), strtoimax(), strtoumax(), wcstoimax(), wcstoumax().
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/inttypes.h>
+#include <rtems/printer.h>
+#include <rtems/test.h>
+#include <stdlib.h>
+#include <tmacros.h>
+
+/* forward declarations to avoid warnings */
+
+rtems_task Init(rtems_task_argument argument);
+const char rtems_test_name[] = "PSXINTTYPE 01";
+rtems_printer rtems_test_printer;
+
+/*
+ * RTEMS Startup Task
+ */
+
+rtems_task Init(
+ rtems_task_argument ignored
+)
+{
+ rtems_print_printer_printf(&rtems_test_printer);
+ rtems_test_begin();
+
+ char* endptr, *nptr;
+
+ uintmax_t j, k;
+
+ int base = 10;
+ rtems_test_assert (base == EINVAL)
+
+ wchar_t *nptr1, *endptr1;
+
+ intmax_t m, n;
+
+ nptr1 = L"10110134932";
+ nptr = "20690239864abc";
+
+ /* Test for wcstoimax */
+
+ m = wcstoimax(nptr1, &endptr1, base);
+ rtems_test_assert (m == ERANGE)
+ rtems_test_assert (m == EINVAL)
+
+ printf( "wcstoimax = %jd\n", m );
+
+ /* test for strtoumax */
+
+ j = strtoumax (nptr, &endptr, base);
+ rtems_test_assert (j == ERANGE);
+ rtems_test_assert (j == EINVAL)
+
+ printf( "strtoumax = %ju ( base %d )\n", j, base );
+ printf( "Stopped scan at %s\n\n", endptr );
+
+ /*test for wcstoumax */
+
+ k = wcstoumax (nptr1, &endptr1, base);
+ rtems_test_assert (k == ERANGE)
+ rtems_test_assert (k == EINVAL)
+
+ printf( "wcstoumax = %ju\n", k );
+
+ /*Test for imaxdiv */
+
+ imaxdiv_t retrival = imaxdiv ( 27, 4 );
+ printf( "imax div value = %jd\n", retrival.rem );
+
+ /*Test for imaxabs */
+
+ printf( "imaxabs_value = %jd\n", imaxabs (-1234));
+
+ /*Test for strtoimax */
+
+ n = strtoimax ("11111111", &endptr, 2)
+ rtems_test_assert (n == ERANGE)
+ rtems_test_assert (n == EINVAL)
+
+ printf( "strtoimax value = %jd\n", n);
+
+
+ rtems_test_end();
+ exit( 0 );
+}
+
+/* NOTICE: the clock driver is explicitly disabled */
+
+#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+
diff --git a/testsuites/psxtests/psxinttypes01/psxinttypes01.scn b/testsuites/psxtests/psxinttypes01/psxinttypes01.scn
new file mode 100644
index 0000000..1625fa7
--- /dev/null
+++ b/testsuites/psxtests/psxinttypes01/psxinttypes01.scn
@@ -0,0 +1,9 @@
+*** BEGIN OF TEST PSXINTTYPE 01 ***
+wcstoimax = 10110134932
+strtoumax = 20690239864 (base 10)
+Stopped scan at abc
+wcstoumax = 10110134932
+imax div value = 3
+imaxabs_value = 1234
+strtoimax value = 255
+*** END OF TEST PSXINTTYPE 01 ***
--
2.7.4
More information about the devel
mailing list