diff options
author | Vicent Martà <vicent@github.com> | 2013-05-31 14:36:08 -0700 |
---|---|---|
committer | Vicent Martà <vicent@github.com> | 2013-05-31 14:36:08 -0700 |
commit | efd5a4e16a55ff32ce0b300d3792e44aed4157f8 (patch) | |
tree | 33fa5cceec1bbb24ab919ccb21732cd1487d4fec /tests-clar/repo/iterator.c | |
parent | 1ed356dcfef449313bac3ce795f26d19423c744c (diff) | |
parent | cee695ae6b9a9f586d32d0b9460a358bfdc4fe1b (diff) | |
download | libgit2-vmg/full-ref-iterator.tar.gz |
Merge pull request #1627 from arrbee/iterator-api-improvementsvmg/full-ref-iterator
Make iterators use GIT_ITEROVER & smart advance
Diffstat (limited to 'tests-clar/repo/iterator.c')
-rw-r--r-- | tests-clar/repo/iterator.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/tests-clar/repo/iterator.c b/tests-clar/repo/iterator.c index ab460735c..11a7d2a23 100644 --- a/tests-clar/repo/iterator.c +++ b/tests-clar/repo/iterator.c @@ -31,12 +31,11 @@ static void expect_iterator_items( if (expected_flat < 0) { v = true; expected_flat = -expected_flat; } if (expected_total < 0) { v = true; expected_total = -expected_total; } - count = 0; - cl_git_pass(git_iterator_current(&entry, i)); - if (v) fprintf(stderr, "== %s ==\n", no_trees ? "notrees" : "trees"); - while (entry != NULL) { + count = 0; + + while (!git_iterator_advance(&entry, i)) { if (v) fprintf(stderr, " %s %07o\n", entry->path, (int)entry->mode); if (no_trees) @@ -54,8 +53,6 @@ static void expect_iterator_items( cl_assert(entry->mode != GIT_FILEMODE_TREE); } - cl_git_pass(git_iterator_advance(&entry, i)); - if (++count > expected_flat) break; } @@ -93,10 +90,14 @@ static void expect_iterator_items( /* could return NOTFOUND if directory is empty */ cl_assert(!error || error == GIT_ENOTFOUND); - if (error == GIT_ENOTFOUND) - cl_git_pass(git_iterator_advance(&entry, i)); - } else - cl_git_pass(git_iterator_advance(&entry, i)); + if (error == GIT_ENOTFOUND) { + error = git_iterator_advance(&entry, i); + cl_assert(!error || error == GIT_ITEROVER); + } + } else { + error = git_iterator_advance(&entry, i); + cl_assert(!error || error == GIT_ITEROVER); + } if (++count > expected_total) break; |