summaryrefslogtreecommitdiff
path: root/t/helper/test-oid-array.c
diff options
context:
space:
mode:
authorLibravatar Jeff King <peff@peff.net>2020-03-30 10:04:03 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-03-30 10:59:08 -0700
commited4b804e46b177203b4035cf5a1271f50724ba1c (patch)
treecce344989c3a9fa435f264d590d4a2fcc0825a23 /t/helper/test-oid-array.c
parentoid_array: rename source file from sha1-array (diff)
downloadtgif-ed4b804e46b177203b4035cf5a1271f50724ba1c.tar.xz
test-tool: rename sha1-array to oid-array
This matches the actual data structure name, as well as the source file that contains the code we're testing. The test scripts need updating to use the new name, as well. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/helper/test-oid-array.c')
-rw-r--r--t/helper/test-oid-array.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/t/helper/test-oid-array.c b/t/helper/test-oid-array.c
new file mode 100644
index 0000000000..ce9fd5f091
--- /dev/null
+++ b/t/helper/test-oid-array.c
@@ -0,0 +1,36 @@
+#include "test-tool.h"
+#include "cache.h"
+#include "oid-array.h"
+
+static int print_oid(const struct object_id *oid, void *data)
+{
+ puts(oid_to_hex(oid));
+ return 0;
+}
+
+int cmd__oid_array(int argc, const char **argv)
+{
+ struct oid_array array = OID_ARRAY_INIT;
+ struct strbuf line = STRBUF_INIT;
+
+ while (strbuf_getline(&line, stdin) != EOF) {
+ const char *arg;
+ struct object_id oid;
+
+ if (skip_prefix(line.buf, "append ", &arg)) {
+ if (get_oid_hex(arg, &oid))
+ die("not a hexadecimal oid: %s", arg);
+ oid_array_append(&array, &oid);
+ } else if (skip_prefix(line.buf, "lookup ", &arg)) {
+ if (get_oid_hex(arg, &oid))
+ die("not a hexadecimal oid: %s", arg);
+ printf("%d\n", oid_array_lookup(&array, &oid));
+ } else if (!strcmp(line.buf, "clear"))
+ oid_array_clear(&array);
+ else if (!strcmp(line.buf, "for_each_unique"))
+ oid_array_for_each_unique(&array, print_oid, NULL);
+ else
+ die("unknown command: %s", line.buf);
+ }
+ return 0;
+}