From 2acf8844ddffcf040ca4cca8b35ac0b414c4cac6 Mon Sep 17 00:00:00 2001 From: Nathan Fisher Date: Wed, 9 Aug 2023 23:56:59 -0400 Subject: [PATCH] Added tests for loading and storing integers, fixed `load_file_md5` test so that it now passes. Required fixing integer storage. --- Makefile | 2 +- include/bytes.h | 8 ++-- src/bytes.c | 84 +++++++++++++++++++++--------------------- src/haggis.c | 16 ++++---- test/Makefile | 6 ++- test/load_file_md5 | Bin 28176 -> 0 bytes test/load_file_md5.c | 2 +- test/load_md5.c | 1 + test/load_sha1.c | 1 + test/load_sha256.c | 2 +- test/load_u32.c | 16 ++++++++ test/load_u64.c | 16 ++++++++ test/store_device.c | 1 + test/store_file_md5.c | 1 + test/store_header.c | 1 + test/store_u32.c | 17 +++++++++ test/store_u64.c | 17 +++++++++ 17 files changed, 133 insertions(+), 58 deletions(-) delete mode 100755 test/load_file_md5 create mode 100644 test/load_u32.c create mode 100644 test/load_u64.c create mode 100644 test/store_u32.c create mode 100644 test/store_u64.c diff --git a/Makefile b/Makefile index b1ffdef..498cb32 100644 --- a/Makefile +++ b/Makefile @@ -79,4 +79,4 @@ clean: rm -rf *.a *.so src/*.o $(MAKE) -C test clean -.PHONY: all clean install +.PHONY: all clean install test diff --git a/include/bytes.h b/include/bytes.h index 320b3a6..23f687b 100644 --- a/include/bytes.h +++ b/include/bytes.h @@ -39,9 +39,9 @@ int load_u16(FILE *stream, u16 *num); int store_u16(FILE *stream, u16 *num); -int load_u32(FILE *stream, u32 num); -int store_u32(FILE *stream, u32 num); -int load_u64(FILE *stream, u64 num); -int store_u64(FILE *stream, u64 num); +int load_u32(FILE *stream, u32 *num); +int store_u32(FILE *stream, u32 *num); +int load_u64(FILE *stream, u64 *num); +int store_u64(FILE *stream, u64 *num); #endif diff --git a/src/bytes.c b/src/bytes.c index b465ddc..06f3899 100644 --- a/src/bytes.c +++ b/src/bytes.c @@ -46,84 +46,84 @@ int store_u16(FILE *stream, u16 *num) { return fwrite(&num->bytes, 1, 2, stream); } -int load_u32(FILE *stream, u32 num) { - return fread(num.bytes, 1, 4, stream); +int load_u32(FILE *stream, u32 *num) { + return fread(&num->bytes, 1, 4, stream); } -int store_u32(FILE *stream, u32 num) { - return fwrite(num.bytes, 1, 4, stream); +int store_u32(FILE *stream, u32 *num) { + return fwrite(&num->bytes, 1, 4, stream); } -int load_u64(FILE *stream, u64 num) { - return fread(num.bytes, 1, 8, stream); +int load_u64(FILE *stream, u64 *num) { + return fread(&num->bytes, 1, 8, stream); } -int store_u64(FILE *stream, u64 num) { - return fwrite(num.bytes, 1, 8, stream); +int store_u64(FILE *stream, u64 *num) { + return fwrite(&num->bytes, 1, 8, stream); } #else -int load_u16(FILE *stream, u16 num) { +int load_u16(FILE *stream, u16 *num) { u8 buf[2]; int res = fread(buf, 1, 2, stream); if (res != 2) return res; - num.bytes[0] = buf[1]; - num.bytes[1] = buf[0]; + num->bytes[0] = buf[1]; + num->bytes[1] = buf[0]; return res; } -int store_u16(FILE * stream, u16 num) { +int store_u16(FILE * stream, u16 *num) { u8 buf[2]; - buf[0] = num.bytes[1]; - buf[1] = num.bytes[0]; + buf[0] = num->bytes[1]; + buf[1] = num->bytes[0]; return fwrite(buf, 1, 2, stream); } -int load_u32(FILE *stream, u32 num) { +int load_u32(FILE *stream, u32 *num) { u8 buf[4]; int res = fread(buf, 1, 4, stream); if (res != 4) return res; - num.bytes[0] = buf[3]; - num.bytes[1] = buf[2]; - num.bytes[2] = buf[1]; - num.bytes[3] = buf[0]; + num->bytes[0] = buf[3]; + num->bytes[1] = buf[2]; + num->bytes[2] = buf[1]; + num->bytes[3] = buf[0]; } -int store_u32(FILE *stream, u32 num) { +int store_u32(FILE *stream, u32 *num) { u8 buf[4]; - buf[0] = num.bytes[3]; - buf[1] = num.bytes[2]; - buf[2] = num.bytes[1]; - buf[3] = num.bytes[0]; + buf[0] = num->bytes[3]; + buf[1] = num->bytes[2]; + buf[2] = num->bytes[1]; + buf[3] = num->bytes[0]; return fwrite(buf, 1, 2, stream); } -int load_u64(FILE *stream, u64 num) { +int load_u64(FILE *stream, u64 *num) { u8 buf[8]; int res = fread(buf, 1, 8, stream); if (res != 8) return res; - num.bytes[0] = buf[7]; - num.bytes[1] = buf[6]; - num.bytes[2] = buf[5]; - num.bytes[3] = buf[4]; - num.bytes[4] = buf[3]; - num.bytes[5] = buf[2]; - num.bytes[6] = buf[1]; - num.bytes[7] = buf[0]; + num->bytes[0] = buf[7]; + num->bytes[1] = buf[6]; + num->bytes[2] = buf[5]; + num->bytes[3] = buf[4]; + num->bytes[4] = buf[3]; + num->bytes[5] = buf[2]; + num->bytes[6] = buf[1]; + num->bytes[7] = buf[0]; } -int store_u64(FILE *stream, u64 num) { +int store_u64(FILE *stream, u64 *num) { u8 buf[8]; - buf[0] = num.bytes[7]; - buf[1] = num.bytes[6]; - buf[2] = num.bytes[5]; - buf[3] = num.bytes[4]; - buf[4] = num.bytes[3]; - buf[5] = num.butes[2]; - buf[6] = num.bytes[1]; - buf[7] = num.bytes[0]; + buf[0] = num->bytes[7]; + buf[1] = num->bytes[6]; + buf[2] = num->bytes[5]; + buf[3] = num->bytes[4]; + buf[4] = num->bytes[3]; + buf[5] = num->butes[2]; + buf[6] = num->bytes[1]; + buf[7] = num->bytes[0]; return fwrite(buf, 1, 2, stream); } #endif diff --git a/src/haggis.c b/src/haggis.c index 99a3b09..73df9f3 100644 --- a/src/haggis.c +++ b/src/haggis.c @@ -331,7 +331,7 @@ void haggis_file_deinit(haggis_file *f) { } int haggis_store_file(FILE *stream, haggis_file *file) { - if (store_u64(stream, file->len) != 8) + if (store_u64(stream, &file->len) != 8) return 1; if (haggis_store_cksum(stream, &file->cksum) != 0) return 1; @@ -342,7 +342,7 @@ int haggis_store_file(FILE *stream, haggis_file *file) { } int haggis_load_file(FILE *stream, haggis_file *f) { - if (load_u64(stream, f->len) != 8) + if (load_u64(stream, &f->len) != 8) return 1; if (haggis_load_cksum(stream, &f->cksum) != 0) return 1; @@ -636,13 +636,13 @@ int haggis_load_node(FILE *stream, haggis_node *node) { res = haggis_load_filename(stream, &node->name); if (res) return res; - res = load_u32(stream, node->uid); + res = load_u32(stream, &node->uid); if (res != 4) return 2; - res = load_u32(stream, node->gid); + res = load_u32(stream, &node->gid); if (res != 4) return 2; - res = load_u64(stream, node->mtime); + res = load_u64(stream, &node->mtime); if (res != 8) return 2; res = load_u16(stream, &mode); @@ -662,9 +662,9 @@ int haggis_store_node(FILE *stream, haggis_node *node) { if (haggis_store_filename(stream, &node->name) != (size_t)(node->name.len.val) + 2) return 2; - if (store_u32(stream, node->uid) != 4) return 2; - if (store_u32(stream, node->gid) != 4) return 2; - if (store_u64(stream, node->mtime) != 8) return 2; + if (store_u32(stream, &node->uid) != 4) return 2; + if (store_u32(stream, &node->gid) != 4) return 2; + if (store_u64(stream, &node->mtime) != 8) return 2; mode = haggis_derive_mode(node->mode, &node->filetype); if (store_u16(stream, &mode) != 2) return 2; return haggis_store_filetype(stream, &node->filetype); diff --git a/test/Makefile b/test/Makefile index d90d555..8f8e92b 100644 --- a/test/Makefile +++ b/test/Makefile @@ -36,6 +36,10 @@ LIBS += -lmd tests += store_u16 tests += load_u16 +tests += store_u32 +tests += load_u32 +tests += store_u64 +tests += load_u64 tests += store_header tests += check_header tests += store_device @@ -50,7 +54,7 @@ tests += init_file_md5 tests += init_file_sha1 tests += init_file_sha256 tests += store_file_md5 -#tests += load_file_md5 +tests += load_file_md5 total != echo $(tests) | wc -w | awk '{ print $$1 }' .PHONY: test diff --git a/test/load_file_md5 b/test/load_file_md5 deleted file mode 100755 index 627f1ba6fb8cdcb3de03e4572c31763727ee5152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28176 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 diff --git a/test/load_file_md5.c b/test/load_file_md5.c index 66ea029..f24cff3 100644 --- a/test/load_file_md5.c +++ b/test/load_file_md5.c @@ -12,5 +12,5 @@ int main() { fd = fopen(f, "r"); res = haggis_load_file(fd, &hf); fclose(fd); - return 1; + return res; } diff --git a/test/load_md5.c b/test/load_md5.c index 0892356..98fb275 100644 --- a/test/load_md5.c +++ b/test/load_md5.c @@ -15,4 +15,5 @@ int main() { for (i = 0; i < 16; i++) { assert(cksum.sum.md5[i] == (uint8_t)i); } + fclose(f); } diff --git a/test/load_sha1.c b/test/load_sha1.c index fcfbe77..d98e3ef 100644 --- a/test/load_sha1.c +++ b/test/load_sha1.c @@ -15,5 +15,6 @@ int main() { for (i = 0; i < 20; i++) { assert(cksum.sum.sha1[i] == (uint8_t)i); } + fclose(f); } diff --git a/test/load_sha256.c b/test/load_sha256.c index b2c2c17..6a35380 100644 --- a/test/load_sha256.c +++ b/test/load_sha256.c @@ -15,6 +15,6 @@ int main() { for (i = 0; i < 32; i++) { assert(cksum.sum.sha1[i] == (uint8_t)i); } + fclose(f); } - diff --git a/test/load_u32.c b/test/load_u32.c new file mode 100644 index 0000000..1e272e0 --- /dev/null +++ b/test/load_u32.c @@ -0,0 +1,16 @@ +#include "bytes.h" +#include "haggis_private.h" +#include +#include + +int main() { + u32 n; + FILE *fd; + + n.val = 0; + fd = fopen("output/u32", "r"); + assert(load_u32(fd, &n) == 4); + assert(n.val == 123456); + fclose(fd); +} + diff --git a/test/load_u64.c b/test/load_u64.c new file mode 100644 index 0000000..c075158 --- /dev/null +++ b/test/load_u64.c @@ -0,0 +1,16 @@ +#include "bytes.h" +#include "haggis_private.h" +#include +#include + +int main() { + u64 n; + FILE *fd; + + n.val = 0; + fd = fopen("output/u64", "r"); + assert(load_u64(fd, &n) == 8); + assert(n.val == 1234567890); + fclose(fd); +} + diff --git a/test/store_device.c b/test/store_device.c index 0406e0e..bd3a62b 100644 --- a/test/store_device.c +++ b/test/store_device.c @@ -10,6 +10,7 @@ int main() { dev.minor.val = 69; f = fopen("output/device", "w"); ret = haggis_store_device(f, &dev); + fflush(f); fclose(f); return ret; } diff --git a/test/store_file_md5.c b/test/store_file_md5.c index 4fa1efd..c8ca693 100644 --- a/test/store_file_md5.c +++ b/test/store_file_md5.c @@ -11,6 +11,7 @@ int main() { assert(haggis_file_init(f, &hf, md5) == 0); fd = fopen("output/store_file_md5", "w"); assert(haggis_store_file(fd, &hf) == 0); + fflush(fd); fclose(fd); return 0; } diff --git a/test/store_header.c b/test/store_header.c index 580a8c1..6f89810 100644 --- a/test/store_header.c +++ b/test/store_header.c @@ -7,6 +7,7 @@ int main() { f = fopen("output/header", "w"); ret = haggis_store_header(f); + fflush(f); fclose(f); return ret; } diff --git a/test/store_u32.c b/test/store_u32.c new file mode 100644 index 0000000..6000757 --- /dev/null +++ b/test/store_u32.c @@ -0,0 +1,17 @@ +#include "bytes.h" +#include "haggis_private.h" +#include +#include +#include + +int main() { + u32 n; + FILE *fd; + + n.val = 123456; + fd = fopen("output/u32", "w"); + assert(store_u32(fd, &n) == 4); + fflush(fd); + fclose(fd); +} + diff --git a/test/store_u64.c b/test/store_u64.c new file mode 100644 index 0000000..af72acd --- /dev/null +++ b/test/store_u64.c @@ -0,0 +1,17 @@ +#include "bytes.h" +#include "haggis_private.h" +#include +#include +#include + +int main() { + u64 n; + FILE *fd; + + n.val = 1234567890; + fd = fopen("output/u64", "w"); + assert(store_u64(fd, &n) == 8); + fflush(fd); + fclose(fd); +} +