aboutsummaryrefslogtreecommitdiff
path: root/example/ndpiReader.c
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2024-01-04 13:16:39 +0100
committerGitHub <noreply@github.com>2024-01-04 13:16:39 +0100
commitf23e9dc7bb7ffc4fe0b5c1151ecefa29a0ce5b79 (patch)
treef935e033f08dad050b163ab41a827da8feb55125 /example/ndpiReader.c
parent7f9973bd0ce2366c09c614d2fdb2883f27ba1106 (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.c24
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
}