diff options
author | Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> | 2024-01-04 13:16:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-04 13:16:39 +0100 |
commit | f23e9dc7bb7ffc4fe0b5c1151ecefa29a0ce5b79 (patch) | |
tree | f935e033f08dad050b163ab41a827da8feb55125 /example/ndpiReader.c | |
parent | 7f9973bd0ce2366c09c614d2fdb2883f27ba1106 (diff) |
Add an implementation of the BSD function `strtonum` (#2238)
The main difference with the original function is that we allow to
specify the base.
Credit for the original idea and the first implementation to @0xA50C1A1
Diffstat (limited to 'example/ndpiReader.c')
-rw-r--r-- | example/ndpiReader.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c index ce697026d..3fba97bbf 100644 --- a/example/ndpiReader.c +++ b/example/ndpiReader.c @@ -5377,6 +5377,29 @@ void compressedBitmapUnitTest() { /* *********************************************** */ +void strtonumUnitTest() { + const char *errstrp; + + assert(ndpi_strtonum("0", -10, +10, &errstrp, 10) == 0); + assert(errstrp == NULL); + assert(ndpi_strtonum("0", +10, -10, &errstrp, 10) == 0); + assert(errstrp != NULL); + assert(ndpi_strtonum(" -11 ", -10, +10, &errstrp, 10) == 0); + assert(errstrp != NULL); + assert(ndpi_strtonum(" -11 ", -100, +100, &errstrp, 10) == -11); + assert(errstrp == NULL); + assert(ndpi_strtonum("123abc", LLONG_MIN, LLONG_MAX, &errstrp, 10) == 123); + assert(errstrp == NULL); + assert(ndpi_strtonum("123abc", LLONG_MIN, LLONG_MAX, &errstrp, 16) == 0x123abc); + assert(errstrp == NULL); + assert(ndpi_strtonum(" 0x123abc", LLONG_MIN, LLONG_MAX, &errstrp, 16) == 0x123abc); + assert(errstrp == NULL); + assert(ndpi_strtonum("ghi", -10, +10, &errstrp, 10) == 0); + assert(errstrp != NULL); +} + +/* *********************************************** */ + void filterUnitTest() { ndpi_filter* f = ndpi_filter_alloc(); u_int32_t v, i; @@ -5628,6 +5651,7 @@ int main(int argc, char **argv) { ndpi_self_check_host_match(stderr); analysisUnitTest(); compressedBitmapUnitTest(); + strtonumUnitTest(); #endif } |