msvc: Fix an "conversion, possible loss of data" warning
[libgit2.git] / tests / t0603-sort.c
blob28292377a94c052eec6b99a48114ec736d92edd1
1 #include "test_lib.h"
2 #include "test_helpers.h"
3 #include "index.h"
5 #include <git/odb.h>
6 #include <git/index.h>
8 #define TEST_INDEX_PATH "../t0600-objects/index"
10 void print_entries(git_index *index)
12 unsigned int i;
14 for (i = 0; i < index->entry_count; ++i)
15 printf("%d: %s\n", i, index->entries[i].path);
18 void randomize_entries(git_index *index)
20 unsigned int i, j;
21 git_index_entry tmp;
23 srand((unsigned int)time(NULL));
25 for (i = 0; i < index->entry_count; ++i) {
26 j = rand() % index->entry_count;
27 memcpy(&tmp, &index->entries[j], sizeof(git_index_entry));
28 memcpy(&index->entries[j], &index->entries[i], sizeof(git_index_entry));
29 memcpy(&index->entries[i], &tmp, sizeof(git_index_entry));
32 index->sorted = 0;
35 BEGIN_TEST(index_sort_test)
36 git_index *index;
37 unsigned int i;
39 index = git_index_alloc(TEST_INDEX_PATH);
40 must_be_true(index != NULL);
41 must_pass(git_index_read(index));
43 randomize_entries(index);
45 git_index__sort(index);
46 must_be_true(index->sorted);
48 for (i = 1; i < index->entry_count; ++i)
49 must_be_true(strcmp(index->entries[i - 1].path,
50 index->entries[i].path) < 0);
52 git_index_free(index);
53 END_TEST
55 BEGIN_TEST(index_sort_empty_test)
56 git_index *index;
57 index = git_index_alloc("fake-index");
58 must_be_true(index != NULL);
60 git_index__sort(index);
61 must_be_true(index->sorted);
63 git_index_free(index);
64 END_TEST