diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2021-03-22 11:30:15 +0100 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2021-03-22 15:26:47 +0100 |
commit | 5aa0f30173ecf3b6538b9136cb4783fc19266288 (patch) | |
tree | e163429bb7ecf5c3cd343532e0fd60b5f1819d39 /tests/libutil/is_memory_zero.c | |
parent | c7056c1853b5defd5b933e651bf58dc94b4d3f8b (diff) |
Cleanup the block processor file structure
A cleaner separation between common code, frontend code and backend
code is made.
The "is this byte blob zero" function is moved out to libutil (with
test case and everything) with a more optimized implementation.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'tests/libutil/is_memory_zero.c')
-rw-r--r-- | tests/libutil/is_memory_zero.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/libutil/is_memory_zero.c b/tests/libutil/is_memory_zero.c new file mode 100644 index 0000000..20bd93f --- /dev/null +++ b/tests/libutil/is_memory_zero.c @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* + * is_memory_zero.c + * + * Copyright (C) 2021 David Oberhollenzer <goliath@infraroot.at> + */ +#include "config.h" + +#include "../test.h" +#include "util.h" + +int main(void) +{ + unsigned char temp[1024]; + size_t i, j; + + memset(temp, 0, sizeof(temp)); + + for (i = 0; i < sizeof(temp); ++i) { + TEST_ASSERT(is_memory_zero(temp, i)); + + for (j = 0; j < i; ++j) { + TEST_ASSERT(is_memory_zero(temp, i)); + temp[j] = 42; + TEST_ASSERT(!is_memory_zero(temp, i)); + temp[j] = 0; + TEST_ASSERT(is_memory_zero(temp, i)); + } + } + + return EXIT_SUCCESS; +} |