From 8827f3033d76b0d9c7d8d8225077176a813f7f49 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Fri, 22 Nov 2024 22:29:56 +0100 Subject: libc: Add case for strtol(l) where base is 0 --- userland/test/test.c | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) (limited to 'userland/test/test.c') diff --git a/userland/test/test.c b/userland/test/test.c index 6df5a5a..8b3dd67 100644 --- a/userland/test/test.c +++ b/userland/test/test.c @@ -379,11 +379,41 @@ void strspn_test(void) { void strtol_test(void) { dbgln("strtol TEST"); { - char *s = "1234"; - char *e; - long r; - assert(1234 == strtol(s, &e, 10)); - assert(e == (s + 4)); + { + char *s = "1234"; + char *e; + long r; + assert(1234 == strtol(s, &e, 10)); + assert(e == (s + 4)); + } + { + char *s = "1234"; + char *e; + long r; + assert(1234 == strtol(s, &e, 0)); + assert(e == (s + 4)); + } + { + char *s = "0234"; + char *e; + long r; + assert(156 == strtol(s, &e, 0)); + assert(e == (s + 4)); + } + { + char *s = "0x234"; + char *e; + long r; + assert(564 == strtol(s, &e, 0)); + assert(e == (s + 5)); + } + { + char *s = "0X234"; + char *e; + long r; + assert(564 == strtol(s, &e, 0)); + assert(e == (s + 5)); + } } dbgln("strtol TEST PASSED"); } -- cgit v1.2.3