From 15250710c63a2c3d230304e46a03532f787759fb Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Fri, 17 Apr 2020 09:38:43 +0200 Subject: tests: improve diagnostics output & make "release builds" work This commit adds a few macros and helper functions for the unit test programs. Those are used instead of asserts to provide more fine grained diagnostics on the one hand and on the other hand because they also work if NDEBUG is defined, unlike asserts that get eliminated in that case. Signed-off-by: David Oberhollenzer --- tests/tar_sparse_gnu2.c | 172 ++++++++++++++++++++++-------------------------- 1 file changed, 78 insertions(+), 94 deletions(-) (limited to 'tests/tar_sparse_gnu2.c') diff --git a/tests/tar_sparse_gnu2.c b/tests/tar_sparse_gnu2.c index 4c8b860..84a18ec 100644 --- a/tests/tar_sparse_gnu2.c +++ b/tests/tar_sparse_gnu2.c @@ -7,157 +7,141 @@ #include "config.h" #include "tar.h" - -#include -#include -#include -#include +#include "test.h" #define STR(x) #x #define STRVALUE(x) STR(x) #define TEST_PATH STRVALUE(TESTPATH) -static FILE *open_read(const char *path) -{ - FILE *fp = open(path, O_RDONLY); - - if (fp == NULL) { - perror(path); - exit(EXIT_FAILURE); - } - - return fp; -} - int main(void) { tar_header_decoded_t hdr; sparse_map_t *sparse; FILE *fp; - assert(chdir(TEST_PATH) == 0); + TEST_ASSERT(chdir(TEST_PATH) == 0); - fp = open_read("sparse-files/pax-gnu0-1.tar"); - assert(read_header(fp, &hdr) == 0); - assert(hdr.sb.st_mode == (S_IFREG | 0644)); - assert(hdr.sb.st_uid == 01750); - assert(hdr.sb.st_gid == 01750); - assert(hdr.sb.st_size == 2097152); - assert(hdr.actual_size == 2097152); - assert(hdr.record_size == 32768); - assert(strcmp(hdr.name, "input.bin") == 0); - assert(!hdr.unknown_record); + fp = test_open_read("sparse-files/pax-gnu0-1.tar"); + TEST_ASSERT(read_header(fp, &hdr) == 0); + TEST_EQUAL_UI(hdr.sb.st_mode, S_IFREG | 0644); + TEST_EQUAL_UI(hdr.sb.st_uid, 01750); + TEST_EQUAL_UI(hdr.sb.st_gid, 01750); + TEST_EQUAL_UI(hdr.sb.st_size, 2097152); + TEST_EQUAL_UI(hdr.actual_size, 2097152); + TEST_EQUAL_UI(hdr.record_size, 32768); + TEST_STR_EQUAL(hdr.name, "input.bin"); + TEST_ASSERT(!hdr.unknown_record); sparse = hdr.sparse; - assert(sparse != NULL); - assert(sparse->offset == 0); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 0); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 262144); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 262144); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 524288); - assert(sparse->count == 4096); + TSET_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 524288); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 786432); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 786432); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 1048576); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 1048576); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 1310720); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 1310720); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 1572864); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 1572864); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 1835008); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 1835008); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 2097152); - assert(sparse->count == 0); + TEST_NOT_NULL(sparse != NULL); + TEST_EQUAL_UI(sparse->offset, 2097152); + TEST_EQUAL_UI(sparse->count, 0); sparse = sparse->next; - assert(sparse == NULL); + TEST_NULL(sparse); clear_header(&hdr); fclose(fp); - fp = open_read("sparse-files/pax-gnu1-0.tar"); - assert(read_header(fp, &hdr) == 0); - assert(hdr.sb.st_mode == (S_IFREG | 0644)); - assert(hdr.sb.st_uid == 01750); - assert(hdr.sb.st_gid == 01750); - assert(hdr.sb.st_size == 2097152); - assert(hdr.actual_size == 2097152); - assert(hdr.record_size == 32768); - assert(strcmp(hdr.name, "input.bin") == 0); - assert(!hdr.unknown_record); + fp = test_open_read("sparse-files/pax-gnu1-0.tar"); + TEST_ASSERT(read_header(fp, &hdr) == 0); + TEST_EQUAL_UI(hdr.sb.st_mode, S_IFREG | 0644); + TEST_EQUAL_UI(hdr.sb.st_uid, 01750); + TEST_EQUAL_UI(hdr.sb.st_gid, 01750); + TEST_EQUAL_UI(hdr.sb.st_size, 2097152); + TEST_EQUAL_UI(hdr.actual_size, 2097152); + TEST_EQUAL_UI(hdr.record_size, 32768); + TEST_STR_EQUAL(hdr.name, "input.bin"); + TEST_ASSERT(!hdr.unknown_record); sparse = hdr.sparse; - assert(sparse != NULL); - assert(sparse->offset == 0); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 0); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 262144); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 262144); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 524288); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 524288); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 786432); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 786432); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 1048576); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 1048576); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 1310720); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 1310720); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 1572864); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 1572864); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 1835008); - assert(sparse->count == 4096); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 1835008); + TEST_EQUAL_UI(sparse->count, 4096); sparse = sparse->next; - assert(sparse != NULL); - assert(sparse->offset == 2097152); - assert(sparse->count == 0); + TEST_NOT_NULL(sparse); + TEST_EQUAL_UI(sparse->offset, 2097152); + TEST_EQUAL_UI(sparse->count, 0); sparse = sparse->next; - assert(sparse == NULL); + TEST_NULL(sparse); clear_header(&hdr); fclose(fp); -- cgit v1.2.3