From 3cc70c25f959afec4179971437c53b809cb3a9a3 Mon Sep 17 00:00:00 2001 From: Edward O'Callaghan Date: Fri, 22 May 2020 18:42:11 +1000 Subject: tests/: Add helper.c unit tests BUG=b:157280555 BRANCH=none TEST=builds Change-Id: If4a1fe7c499f51bb9d7cd48ef26caf9dfae3c1fa Signed-off-by: Edward O'Callaghan Reviewed-on: https://review.coreboot.org/c/flashrom/+/41655 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons --- tests/helpers.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/meson.build | 1 + tests/tests.c | 11 ++++++++++ tests/tests.h | 9 ++++++++ 4 files changed, 85 insertions(+) create mode 100644 tests/helpers.c diff --git a/tests/helpers.c b/tests/helpers.c new file mode 100644 index 00000000..ab0863f0 --- /dev/null +++ b/tests/helpers.c @@ -0,0 +1,64 @@ +#include + +#include "flash.h" + +#include +#include + + +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 1e7ef4a3..b1f9fdae 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -2,6 +2,7 @@ root_includes = include_directories('../subprojects') srcs = [ 'tests.c', + 'helpers.c', 'flashrom.c', 'spi25.c', ] diff --git a/tests/tests.c b/tests/tests.c index 247c8119..02f04381 100644 --- a/tests/tests.c +++ b/tests/tests.c @@ -21,6 +21,17 @@ int main(void) { 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 3b91f65d..83cfdea7 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); -- cgit v1.2.3