diff options
author | Anton Kling <anton@kling.gg> | 2024-11-22 22:29:56 +0100 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-11-22 22:32:02 +0100 |
commit | 8827f3033d76b0d9c7d8d8225077176a813f7f49 (patch) | |
tree | 51f7a8aa1865bb816e408b39dca4e97426e48870 /userland/test | |
parent | d39100c01385815174f2c4ad2058b9b2a00c18f9 (diff) |
libc: Add case for strtol(l) where base is 0
Diffstat (limited to 'userland/test')
-rw-r--r-- | userland/test/test.c | 40 |
1 files changed, 35 insertions, 5 deletions
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"); } |