From: Ghanshyam Thakkar Date: Thu, 23 May 2024 23:59:42 GMT Subject: [PATCH v3 0/3] Port t0015-hash to the unit testing framework Message-ID: <20240523235945.26833-1-shyamthakkar001@gmail.com> In-Reply-To: <20240229054004.3807-1-ach.lumap@gmail.com> Changes in v3: - use st_mult() instead of unsigned_mult_overflows(), as suggested by Junio. - split migration of SHA-1 and SHA-256 in different patches, as suggested by Patrick. - Revert removal of 'sha256' subcommand of test-tool due to existing dependencies on it. - Fix some formatting CI for v3: https://github.com/spectre10/git/actions/runs/9216124753 Ghanshyam Thakkar (3): strbuf: introduce strbuf_addstrings() to repeatedly add a string t/: port helper/test-sha1.c to unit-tests/t-hash.c t/: port helper/test-sha256.c to unit-tests/t-hash.c Makefile | 1 + builtin/submodule--helper.c | 4 +- json-writer.c | 5 +-- strbuf.c | 9 +++++ strbuf.h | 5 +++ t/t0015-hash.sh | 56 -------------------------- t/unit-tests/t-hash.c | 79 +++++++++++++++++++++++++++++++++++++ 7 files changed, 96 insertions(+), 63 deletions(-) delete mode 100755 t/t0015-hash.sh create mode 100644 t/unit-tests/t-hash.c Range-diff against v2: 1: b8c4ab31c6 ! 1: cd831fabf5 strbuf: introduce strbuf_addstrings() to repeatedly add a string @@ ## Metadata ## -Author: Achu Luma +Author: Ghanshyam Thakkar ## Commit message ## strbuf: introduce strbuf_addstrings() to repeatedly add a string @@ Commit message strbuf_addstrings() would be similar for strings as strbuf_addch() and strbuf_addchars() for characters. + Helped-by: Junio C Hamano Mentored-by: Christian Couder + Mentored-by: Kaartic Sivaraam + Co-authored-by: Achu Luma Signed-off-by: Achu Luma + Signed-off-by: Ghanshyam Thakkar ## builtin/submodule--helper.c ## @@ builtin/submodule--helper.c: static void module_list_active(struct module_list *list) @@ strbuf.c: void strbuf_add(struct strbuf *sb, const void *data, size_t len) +void strbuf_addstrings(struct strbuf *sb, const char *s, size_t n) +{ -+ size_t len = strlen(s); -+ if (unsigned_mult_overflows(len, n)) -+ die("you want to use way too much memory"); -+ strbuf_grow(sb, len * n); -+ for (size_t i = 0; i < n; i++) -+ strbuf_add(sb, s, len); ++ size_t len = strlen(s); ++ ++ strbuf_grow(sb, st_mult(len, n)); ++ for (size_t i = 0; i < n; i++) ++ strbuf_add(sb, s, len); +} + void strbuf_addbuf(struct strbuf *sb, const struct strbuf *sb2) 2: 20a7ff8e24 < -: ---------- Port helper/test-sha256.c and helper/test-sha1.c to unit-tests/t-hash.c -: ---------- > 2: 2c4471ce37 t/: port helper/test-sha1.c to unit-tests/t-hash.c -: ---------- > 3: 68dcf388d8 t/: port helper/test-sha256.c to unit-tests/t-hash.c -- 2.45.1