From a6db3fbb6e4ec11695e2a3af8bc2cb9119cb1941 Mon Sep 17 00:00:00 2001 From: Jeff Hostetler Date: Fri, 14 Apr 2017 19:12:28 +0000 Subject: read-cache: add strcmp_offset function Add strcmp_offset() function to also return the offset of the first change. Add unit test and helper to verify. Signed-off-by: Jeff Hostetler Signed-off-by: Junio C Hamano --- t/helper/.gitignore | 1 + t/helper/test-strcmp-offset.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 t/helper/test-strcmp-offset.c (limited to 't/helper') diff --git a/t/helper/.gitignore b/t/helper/.gitignore index 758ed2e8fa..e7fe7ff598 100644 --- a/t/helper/.gitignore +++ b/t/helper/.gitignore @@ -26,6 +26,7 @@ /test-sha1 /test-sha1-array /test-sigchain +/test-strcmp-offset /test-string-list /test-submodule-config /test-subprocess diff --git a/t/helper/test-strcmp-offset.c b/t/helper/test-strcmp-offset.c new file mode 100644 index 0000000000..4a45a54e92 --- /dev/null +++ b/t/helper/test-strcmp-offset.c @@ -0,0 +1,22 @@ +#include "cache.h" + +int cmd_main(int argc, const char **argv) +{ + int result; + size_t offset; + + if (!argv[1] || !argv[2]) + die("usage: %s ", argv[0]); + + result = strcmp_offset(argv[1], argv[2], &offset); + + /* + * Because differnt CRTs behave differently, only rely on signs + * of the result values. + */ + result = (result < 0 ? -1 : + result > 0 ? 1 : + 0); + printf("%d %"PRIuMAX"\n", result, (uintmax_t)offset); + return 0; +} -- cgit v1.2.3