strtoumax tests: Enhance tests.
authorBruno Haible <bruno@clisp.org>
Thu, 5 Jan 2012 17:51:23 +0000 (18:51 +0100)
committerBruno Haible <bruno@clisp.org>
Thu, 5 Jan 2012 17:51:23 +0000 (18:51 +0100)
* tests/test-strtoumax.c (main): Add tests for large values.

ChangeLog
tests/test-strtoumax.c

index a4e01bf..6dd4344 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-01-05  Bruno Haible  <bruno@clisp.org>
 
+       strtoumax tests: Enhance tests.
+       * tests/test-strtoumax.c (main): Add tests for large values.
+
+2012-01-05  Bruno Haible  <bruno@clisp.org>
+
        strtoimax: Work around AIX 5.1 bug.
        * lib/inttypes.in.h (strtoimax): Allow overriding the system's
        definition.
index c6811d4..2577b0c 100644 (file)
@@ -144,5 +144,37 @@ main (void)
     ASSERT (errno == 0);
   }
 
+  /* Large integer values.  */
+  {
+    const char input[] = "2147483647";
+    char *ptr;
+    uintmax_t result;
+    errno = 0;
+    result = strtoumax (input, &ptr, 10);
+    ASSERT (result == 2147483647);
+    ASSERT (ptr == input + 10);
+    ASSERT (errno == 0);
+  }
+  {
+    const char input[] = "-2147483648";
+    char *ptr;
+    uintmax_t result;
+    errno = 0;
+    result = strtoumax (input, &ptr, 10);
+    ASSERT (result == - (uintmax_t) 2147483648U);
+    ASSERT (ptr == input + 11);
+    ASSERT (errno == 0);
+  }
+  {
+    const char input[] = "4294967295";
+    char *ptr;
+    uintmax_t result;
+    errno = 0;
+    result = strtoumax (input, &ptr, 10);
+    ASSERT (result == 4294967295U);
+    ASSERT (ptr == input + 10);
+    ASSERT (errno == 0);
+  }
+
   return 0;
 }