summaryrefslogtreecommitdiff
path: root/tests/libc/test_itoa.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/libc/test_itoa.c')
-rw-r--r--tests/libc/test_itoa.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/libc/test_itoa.c b/tests/libc/test_itoa.c
new file mode 100644
index 0000000..837b77a
--- /dev/null
+++ b/tests/libc/test_itoa.c
@@ -0,0 +1,34 @@
+#include "stdlib.h"
+#include "string.h"
+#include "limits.h"
+
+int main( void )
+{
+ char *res;
+ char buf[12];
+
+ // simple conversion without sign
+ res = itoa( 568876, buf, 10 );
+ if( strcmp( buf, "568876" ) ) return 1;
+
+ // test if the returned pointer points to the buffer
+ if( strcmp( res, buf ) ) return 1;
+
+ // conversion with sign
+ res = itoa( -568876, buf, 10 );
+ if( strcmp( buf, "-568876" ) ) return 1;
+
+ // convert upper limit
+ res = itoa( INT_MAX, buf, 10 );
+ if( strcmp( buf, "2147483647" ) ) return 1;
+
+ // convert lower limit
+ res = itoa( INT_MIN+1, buf, 10 );
+ if( strcmp( buf, "-2147483647" ) ) return 1;
+
+ // convert to hex
+ res = itoa( 568876, buf, 16 );
+ if( strcmp( buf, "8AE2C" ) ) return 1;
+
+ return 0;
+}