]> git.proxmox.com Git - libgit2.git/blame - tests/t0503-tableit.c
Add loading and parsing of tag objects
[libgit2.git] / tests / t0503-tableit.c
CommitLineData
b231ef3a
VM
1#include "test_lib.h"
2#include "test_helpers.h"
3#include "commit.h"
4#include "revobject.h"
5#include "hash.h"
6
7typedef struct _aux_object {
8 git_revpool_object object;
9 int visited;
10} aux_object;
11
12
13BEGIN_TEST(table_iterator)
14
15 const int objects_n = 32;
16 int i;
17 aux_object *objects, *ob;
18
19 git_revpool_table *table = NULL;
20 git_revpool_tableit iterator;
21
22 table = git_revpool_table_create(objects_n * 2);
23 must_be_true(table != NULL);
24
25 objects = git__malloc(objects_n * sizeof(aux_object));
26 memset(objects, 0x0, objects_n * sizeof(aux_object));
27
28 /* populate the hash table */
29 for (i = 0; i < objects_n; ++i) {
30 git_hash_buf(&(objects[i].object.id), &i, sizeof(int));
31 must_pass(git_revpool_table_insert(table, (git_revpool_object *)&(objects[i])));
32 }
33
34 git_revpool_tableit_init(table, &iterator);
35
36 /* iterate through all nodes, mark as visited */
37 while ((ob = (aux_object *)git_revpool_tableit_next(&iterator)) != NULL)
38 ob->visited = 1;
39
40 /* make sure all nodes have been visited */
41 for (i = 0; i < objects_n; ++i)
42 must_be_true(objects[i].visited);
43
44 git_revpool_table_free(table);
45 free(objects);
46
47END_TEST