summaryrefslogtreecommitdiff
path: root/tests/tar_sparse_gnu2.c
diff options
context:
space:
mode:
authorDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2020-09-03 13:39:00 +0200
committerDavid Oberhollenzer <david.oberhollenzer@sigma-star.at>2020-09-03 14:37:28 +0200
commitface4b1257b6f897906f51510b7f4e8793e6465a (patch)
tree257e2d00f745b8174d7acf487eb9fc5c5b28731f /tests/tar_sparse_gnu2.c
parent84ff0984bb5b471d0b4cbc0b0fca156c29273bf5 (diff)
Cleanup copy & paste mess in the tar parser test cases
Many of the patterns tested are very repetetive. This commit moves the two common test cases out into helper functions and uses them for the test cases. Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'tests/tar_sparse_gnu2.c')
-rw-r--r--tests/tar_sparse_gnu2.c140
1 files changed, 3 insertions, 137 deletions
diff --git a/tests/tar_sparse_gnu2.c b/tests/tar_sparse_gnu2.c
index 2a54640..f08f286 100644
--- a/tests/tar_sparse_gnu2.c
+++ b/tests/tar_sparse_gnu2.c
@@ -4,147 +4,13 @@
*
* Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
*/
-#include "config.h"
-
-#include "tar.h"
-#include "test.h"
-
-#define STR(x) #x
-#define STRVALUE(x) STR(x)
-
-#define TEST_PATH STRVALUE(TESTPATH)
+#include "test_tar.h"
int main(void)
{
- tar_header_decoded_t hdr;
- sparse_map_t *sparse;
- FILE *fp;
-
TEST_ASSERT(chdir(TEST_PATH) == 0);
- 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;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 0);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 262144);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 524288);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 786432);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 1048576);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 1310720);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 1572864);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 1835008);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 2097152);
- TEST_EQUAL_UI(sparse->count, 0);
-
- sparse = sparse->next;
- TEST_NULL(sparse);
-
- clear_header(&hdr);
- fclose(fp);
-
- 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;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 0);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 262144);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 524288);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 786432);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 1048576);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 1310720);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 1572864);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 1835008);
- TEST_EQUAL_UI(sparse->count, 4096);
-
- sparse = sparse->next;
- TEST_NOT_NULL(sparse);
- TEST_EQUAL_UI(sparse->offset, 2097152);
- TEST_EQUAL_UI(sparse->count, 0);
-
- sparse = sparse->next;
- TEST_NULL(sparse);
-
- clear_header(&hdr);
- fclose(fp);
-
+ test_case_sparse("sparse-files/pax-gnu0-1.tar");
+ test_case_sparse("sparse-files/pax-gnu1-0.tar");
return EXIT_SUCCESS;
}