summaryrefslogtreecommitdiff
path: root/t/helper/test-prio-queue.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2016-04-13 20:22:42 +0700
committerJunio C Hamano <gitster@pobox.com>2016-04-15 10:12:19 -0700
commite6e7530d10b74d763b4311ea93e0a831b810d6c2 (patch)
tree7ac83d3fecd39d6076f24eaddd6719a24c3b6ce8 /t/helper/test-prio-queue.c
parent7897d84b8240720352e23030c35db461581b68e3 (diff)
downloadgit-e6e7530d10b74d763b4311ea93e0a831b810d6c2.tar.gz
test helpers: move test-* to t/helper/ subdirectory
This keeps top dir a bit less crowded. And because these programs are for testing purposes, it makes sense that they stay somewhere in t/ Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/helper/test-prio-queue.c')
-rw-r--r--t/helper/test-prio-queue.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/t/helper/test-prio-queue.c b/t/helper/test-prio-queue.c
new file mode 100644
index 0000000000..7be72f0086
--- /dev/null
+++ b/t/helper/test-prio-queue.c
@@ -0,0 +1,39 @@
+#include "cache.h"
+#include "prio-queue.h"
+
+static int intcmp(const void *va, const void *vb, void *data)
+{
+ const int *a = va, *b = vb;
+ return *a - *b;
+}
+
+static void show(int *v)
+{
+ if (!v)
+ printf("NULL\n");
+ else
+ printf("%d\n", *v);
+ free(v);
+}
+
+int main(int argc, char **argv)
+{
+ struct prio_queue pq = { intcmp };
+
+ while (*++argv) {
+ if (!strcmp(*argv, "get"))
+ show(prio_queue_get(&pq));
+ else if (!strcmp(*argv, "dump")) {
+ int *v;
+ while ((v = prio_queue_get(&pq)))
+ show(v);
+ }
+ else {
+ int *v = malloc(sizeof(*v));
+ *v = atoi(*argv);
+ prio_queue_put(&pq, v);
+ }
+ }
+
+ return 0;
+}