About the commit subject, maybe something like the following would be a bit shorter: t1006: split test utility functions into new "lib-cat-file.sh" On Wed, Jan 8, 2025 at 7:38 PM Eric Ju <eric.peijian@xxxxxxxxx> wrote: > > This refactor extracts utility functions from the cat-file's test s/test/test script/ > t1006-cat-file.sh into a dedicated library file. The goal is to improve s/a dedicated library file/a new "lib-cat-file.sh" dedicated library file/ > code reuse and readability, enabling future tests to leverage these > utilities without duplicating code s/code/code./ > diff --git a/t/lib-cat-file.sh b/t/lib-cat-file.sh > new file mode 100644 > index 0000000000..9fb20be308 > --- /dev/null > +++ b/t/lib-cat-file.sh > @@ -0,0 +1,16 @@ > +# Library of git-cat-file related tests. s/tests/test functions/ > + > +# Print a string without a trailing newline s/newline/newline./ > +echo_without_newline () { > + printf '%s' "$*" > +} > + > +# Print a string without newlines and replaces them with a NULL character (\0). s/replaces/replace/ > +echo_without_newline_nul () { > + echo_without_newline "$@" | tr '\n' '\0' > +} > + > +# Calculate the length of a string removing any leading spaces. This might be a bit misleading as leading spaces are removed from the output from `wc -c`, not from the string. > +strlen () { > + echo_without_newline "$1" | wc -c | sed -e 's/^ *//' > +}