Edward O'Callaghan has submitted this change. ( https://review.coreboot.org/c/flashrom/+/41655 )
Change subject: tests/: Add helper.c unit tests ......................................................................
tests/: Add helper.c unit tests
BUG=b:157280555 BRANCH=none TEST=builds
Change-Id: If4a1fe7c499f51bb9d7cd48ef26caf9dfae3c1fa Signed-off-by: Edward O'Callaghan quasisec@google.com Reviewed-on: https://review.coreboot.org/c/flashrom/+/41655 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Angel Pons th3fanbus@gmail.com --- A tests/helpers.c M tests/meson.build M tests/tests.c M tests/tests.h 4 files changed, 85 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Angel Pons: Looks good to me, approved
diff --git a/tests/helpers.c b/tests/helpers.c new file mode 100644 index 0000000..ab0863f --- /dev/null +++ b/tests/helpers.c @@ -0,0 +1,64 @@ +#include <include/test.h> + +#include "flash.h" + +#include <stdint.h> +#include <stdlib.h> + + +void address_to_bits_test_success(void **state) +{ + (void) state; /* unused */ + assert_int_equal(16, address_to_bits(0xAA55)); +} + +void bitcount_test_success(void **state) +{ + (void) state; /* unused */ + assert_int_equal(4, bitcount(0xAA)); +} + +void minmax_test_success(void **state) +{ + (void) state; /* unused */ + assert_int_equal(0x55, min(0xAA, 0x55)); + assert_int_equal(0xAA, max(0xAA, 0x55)); +} + +void strcat_realloc_test_success(void **state) +{ + (void) state; /* unused */ + const char src0[] = "hello"; + const char src1[] = " world"; + char *dest = calloc(1, 1); + dest = strcat_realloc(dest, src0); + dest = strcat_realloc(dest, src1); + assert_string_equal("hello world", dest); + free(dest); +} + +void tolower_string_test_success(void **state) +{ + (void) state; /* unused */ + char str[] = "HELLO AGAIN"; + assert_string_equal("HELLO AGAIN", str); + tolower_string(str); + assert_string_equal("hello again", str); +} + +void reverse_byte_test_success(void **state) +{ + (void) state; /* unused */ + assert_int_equal(0x5A, reverse_byte(0x5A)); + assert_int_equal(0x0F, reverse_byte(0xF0)); +} + +void reverse_bytes_test_success(void **state) +{ + (void) state; /* unused */ + uint8_t src[] = { 0xAA, 0x55 }; + uint8_t dst[2]; + reverse_bytes(dst, src, 2); + assert_int_equal(src[0], dst[1]); + assert_int_equal(src[1], dst[0]); +} diff --git a/tests/meson.build b/tests/meson.build index 1e7ef4a..b1f9fda 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -2,6 +2,7 @@
srcs = [ 'tests.c', + 'helpers.c', 'flashrom.c', 'spi25.c', ] diff --git a/tests/tests.c b/tests/tests.c index 247c811..02f0438 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -21,6 +21,17 @@ { int ret = 0;
+ const struct CMUnitTest helpers_tests[] = { + cmocka_unit_test(address_to_bits_test_success), + cmocka_unit_test(bitcount_test_success), + cmocka_unit_test(minmax_test_success), + cmocka_unit_test(strcat_realloc_test_success), + cmocka_unit_test(tolower_string_test_success), + cmocka_unit_test(reverse_byte_test_success), + cmocka_unit_test(reverse_bytes_test_success), + }; + ret |= cmocka_run_group_tests_name("helpers.c tests", helpers_tests, NULL, NULL); + const struct CMUnitTest flashrom_tests[] = { cmocka_unit_test(flashbuses_to_text_test_success), }; diff --git a/tests/tests.h b/tests/tests.h index 3b91f65..83cfdea 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -1,6 +1,15 @@ #ifndef TESTS_H #define TESTS_H
+/* helpers.c */ +void address_to_bits_test_success(void **state); +void bitcount_test_success(void **state); +void minmax_test_success(void **state); +void strcat_realloc_test_success(void **state); +void tolower_string_test_success(void **state); +void reverse_byte_test_success(void **state); +void reverse_bytes_test_success(void **state); + /* flashrom.c */ void flashbuses_to_text_test_success(void **state);