summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests/stringto01
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2010-07-19 13:10:48 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2010-07-19 13:10:48 +0000
commite41e75def26e8e81dcbfd27e24969a99ba718021 (patch)
tree63e80d2063805e98f470ddc6c4d6fa335943f486 /testsuites/libtests/stringto01
parent2010-07-17 Bharath Suri <bharath.s.jois@gmail.com> (diff)
downloadrtems-e41e75def26e8e81dcbfd27e24969a99ba718021.tar.bz2
2010-07-19 Joel Sherrill <joel.sherrill@oarcorp.com>
* stringto01/init.c, stringto01/stringto01.scn, stringto01/stringto_test_template.h: Attempt to pick up a few more error paths.
Diffstat (limited to 'testsuites/libtests/stringto01')
-rw-r--r--testsuites/libtests/stringto01/init.c11
-rw-r--r--testsuites/libtests/stringto01/stringto01.scn3
-rw-r--r--testsuites/libtests/stringto01/stringto_test_template.h20
3 files changed, 34 insertions, 0 deletions
diff --git a/testsuites/libtests/stringto01/init.c b/testsuites/libtests/stringto01/init.c
index 38fbda8d0f..8c021eb90a 100644
--- a/testsuites/libtests/stringto01/init.c
+++ b/testsuites/libtests/stringto01/init.c
@@ -11,9 +11,14 @@
#include "tmacros.h"
#include <rtems/stringto.h>
+#include <limits.h>
+#include <math.h>
#include <stdio.h>
+#define __STRING(x) #x /* stringify without expanding x */
+#define __XSTRING(x) __STRING(x) /* expand x, then stringify */
+
/* Test pointer conversions */
#define TEST_STRING_TO_TYPE void *
#define TEST_STRING_TO_NAME test_rtems_string_to_pointer
@@ -33,6 +38,8 @@
/* Test integer conversions */
#define TEST_STRING_TO_TYPE int
+#define STRING_TO_MAX LONG_MAX
+#define STRING_TO_MAX_STRING __XSTRING(LONG_MAX)
#define TEST_STRING_TO_NAME test_rtems_string_to_int
#define STRING_TO_NAME_METHOD rtems_string_to_int
#define STRING_TO_NAME_METHOD_STRING "rtems_string_to_int"
@@ -51,6 +58,8 @@
/* Test long conversions */
#define TEST_STRING_TO_TYPE long
+#define STRING_TO_MAX LONG_MAX
+#define STRING_TO_MAX_STRING __XSTRING(LONG_MAX)
#define TEST_STRING_TO_NAME test_rtems_string_to_long
#define STRING_TO_NAME_METHOD rtems_string_to_long
#define STRING_TO_NAME_METHOD_STRING "rtems_string_to_long"
@@ -70,6 +79,8 @@
/* Test long long conversions */
#define TEST_STRING_TO_TYPE long long
+#define STRING_TO_MAX LONG_LONG_MAX
+#define STRING_TO_MAX_STRING __XSTRING(LONG_LONG_MAX)
#define TEST_STRING_TO_NAME test_rtems_string_to_long_long
#define STRING_TO_NAME_METHOD rtems_string_to_long_long
#define STRING_TO_NAME_METHOD_STRING "rtems_string_to_long_long"
diff --git a/testsuites/libtests/stringto01/stringto01.scn b/testsuites/libtests/stringto01/stringto01.scn
index 47f5e6546e..71d36f31ac 100644
--- a/testsuites/libtests/stringto01/stringto01.scn
+++ b/testsuites/libtests/stringto01/stringto01.scn
@@ -17,6 +17,7 @@ rtems_string_to_unsigned_char - empty string - w/endptr return value - RTEMS_NOT
Testing rtems_string_to_int
rtems_string_to_int - NULL return value - RTEMS_INVALID_ADDRESS
rtems_string_to_int - 123 NULL endptr return value - RTEMS_SUCCESSFUL
+rtems_string_to_int - MAXIMUM VALUE w/endptr return value - RTEMS_SUCCESSFUL
rtems_string_to_int - 123 w/endptr return value - RTEMS_SUCCESSFUL
rtems_string_to_int - YYY w/endptr return value - RTEMS_NOT_DEFINED
rtems_string_to_int - empty string - w/endptr return value - RTEMS_NOT_DEFINED
@@ -33,6 +34,7 @@ rtems_string_to_unsigned_int - overflow - RTEMS_INVALID_NUMBER
Testing rtems_string_to_long
rtems_string_to_long - NULL return value - RTEMS_INVALID_ADDRESS
rtems_string_to_long - 123 NULL endptr return value - RTEMS_SUCCESSFUL
+rtems_string_to_long - MAXIMUM VALUE w/endptr return value - RTEMS_SUCCESSFUL
rtems_string_to_long - 123 w/endptr return value - RTEMS_SUCCESSFUL
rtems_string_to_long - YYY w/endptr return value - RTEMS_NOT_DEFINED
rtems_string_to_long - empty string - w/endptr return value - RTEMS_NOT_DEFINED
@@ -50,6 +52,7 @@ rtems_string_to_unsigned_long - overflow - RTEMS_INVALID_NUMBER
Testing rtems_string_to_long_long
rtems_string_to_long_long - NULL return value - RTEMS_INVALID_ADDRESS
rtems_string_to_long_long - 123 NULL endptr return value - RTEMS_SUCCESSFUL
+rtems_string_to_long_long - MAXIMUM VALUE w/endptr return value - RTEMS_SUCCESSFUL
rtems_string_to_long_long - 123 w/endptr return value - RTEMS_SUCCESSFUL
rtems_string_to_long_long - YYY w/endptr return value - RTEMS_NOT_DEFINED
rtems_string_to_long_long - empty string - w/endptr return value - RTEMS_NOT_DEFINED
diff --git a/testsuites/libtests/stringto01/stringto_test_template.h b/testsuites/libtests/stringto01/stringto_test_template.h
index 70f8e0321a..a69284448c 100644
--- a/testsuites/libtests/stringto01/stringto_test_template.h
+++ b/testsuites/libtests/stringto01/stringto_test_template.h
@@ -58,6 +58,24 @@ void TEST_STRING_TO_NAME(void)
rtems_test_assert( status == RTEMS_SUCCESSFUL );
rtems_test_assert( value == (TEST_STRING_TO_TYPE)GOOD_VALUE );
+ #if defined(STRING_TO_MAX)
+ /* Basic conversion works for return value */
+ endptr = NULL;
+ puts(
+ STRING_TO_NAME_METHOD_STRING " - MAXIMUM VALUE"
+ " w/endptr return value - RTEMS_SUCCESSFUL"
+ );
+ #if defined(STRING_TO_INTEGER)
+ status = STRING_TO_NAME_METHOD(
+ STRING_TO_MAX_STRING, &value, &endptr, 10 );
+ #elif defined(STRING_TO_POINTER) || defined(STRING_TO_FLOAT)
+ status = STRING_TO_NAME_METHOD( STRING_TO_MAX_STRING, &value, &endptr );
+ #endif
+ rtems_test_assert( status == RTEMS_SUCCESSFUL );
+ rtems_test_assert( endptr );
+ rtems_test_assert( value == (TEST_STRING_TO_TYPE)STRING_TO_MAX );
+ #endif
+
/* Basic conversion works for return value */
endptr = NULL;
puts(
@@ -145,6 +163,8 @@ void TEST_STRING_TO_NAME(void)
#undef STRING_TO_INTEGER
#undef STRING_TO_POINTER
#undef STRING_TO_FLOAT
+#undef STRING_TO_MAX
+#undef STRING_TO_MAX_STRING
#undef GOOD_VALUE
#undef GOOD_VALUE_STRING
#undef BAD_VALUE_STRING