diff options
Diffstat (limited to 'tests/commonlib/bsd')
-rw-r--r-- | tests/commonlib/bsd/Makefile.mk | 4 | ||||
-rw-r--r-- | tests/commonlib/bsd/string-test.c | 38 |
2 files changed, 42 insertions, 0 deletions
diff --git a/tests/commonlib/bsd/Makefile.mk b/tests/commonlib/bsd/Makefile.mk index 3de223e707..ee710bcdb9 100644 --- a/tests/commonlib/bsd/Makefile.mk +++ b/tests/commonlib/bsd/Makefile.mk @@ -3,6 +3,7 @@ tests-y += helpers-test tests-y += gcd-test tests-y += ipchksum-test +tests-y += string-test helpers-test-srcs += tests/commonlib/bsd/helpers-test.c @@ -11,3 +12,6 @@ gcd-test-srcs += src/commonlib/bsd/gcd.c ipchksum-test-srcs += tests/commonlib/bsd/ipchksum-test.c ipchksum-test-srcs += src/commonlib/bsd/ipchksum.c + +string-test-srcs += tests/commonlib/bsd/string-test.c +string-test-srcs += src/commonlib/bsd/string.c diff --git a/tests/commonlib/bsd/string-test.c b/tests/commonlib/bsd/string-test.c new file mode 100644 index 0000000000..d94b82e18c --- /dev/null +++ b/tests/commonlib/bsd/string-test.c @@ -0,0 +1,38 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <commonlib/bsd/string.h> +#include <tests/test.h> + +/* Used to test skip_atoi */ +struct str_with_u_val_t { + char *str; + uint32_t value; + uint32_t offset; +} str_with_u_val[] = { + {"42aa", 42, 2}, + {"a", 0, 0}, + {"0", 0, 1}, + {"4a2", 4, 1}, +}; + +static void test_skip_atoi(void **state) +{ + int i; + char *ptr, *copy; + + for (i = 0; i < ARRAY_SIZE(str_with_u_val); i++) { + ptr = str_with_u_val[i].str; + copy = ptr; + assert_true(str_with_u_val[i].value == skip_atoi(&ptr)); + assert_int_equal(str_with_u_val[i].offset, ptr - copy); + } +} + +int main(void) +{ + const struct CMUnitTest tests[] = { + cmocka_unit_test(test_skip_atoi), + }; + + return cb_run_group_tests(tests, NULL, NULL); +} |