diff options
| author | Vicent Martà <tanoku@gmail.com> | 2012-01-24 20:35:15 -0800 |
|---|---|---|
| committer | Vicent Martà <tanoku@gmail.com> | 2012-01-24 20:35:15 -0800 |
| commit | 3fd1520cd4d8b4d6b6493a7d3dc393ffd9abf1db (patch) | |
| tree | 51b29f5d8ffeb31ba751ab2a099e4f2a32d4be07 /tests-clar/odb | |
| parent | a9fe8ae0ee1ddcc289fad53f1a671f02a3e9a88f (diff) | |
| download | libgit2-3fd1520cd4d8b4d6b6493a7d3dc393ffd9abf1db.tar.gz | |
Rename the Clay test suite to Clar
Clay is the name of a programming language on the makings, and we want
to avoid confusions. Sorry for the huge diff!
Diffstat (limited to 'tests-clar/odb')
| -rw-r--r-- | tests-clar/odb/loose.c | 84 | ||||
| -rw-r--r-- | tests-clar/odb/loose_data.h | 522 | ||||
| -rw-r--r-- | tests-clar/odb/pack_data.h | 151 | ||||
| -rw-r--r-- | tests-clar/odb/packed.c | 78 | ||||
| -rw-r--r-- | tests-clar/odb/sorting.c | 71 |
5 files changed, 906 insertions, 0 deletions
diff --git a/tests-clar/odb/loose.c b/tests-clar/odb/loose.c new file mode 100644 index 000000000..f95dc28d4 --- /dev/null +++ b/tests-clar/odb/loose.c @@ -0,0 +1,84 @@ +#include "clar_libgit2.h" +#include "odb.h" +#include "posix.h" +#include "loose_data.h" + +static void write_object_files(object_data *d) +{ + int fd; + + if (p_mkdir(d->dir, GIT_OBJECT_DIR_MODE) < 0) + cl_assert(errno == EEXIST); + + cl_assert((fd = p_creat(d->file, S_IREAD | S_IWRITE)) >= 0); + cl_must_pass(p_write(fd, d->bytes, d->blen)); + + p_close(fd); +} + +static void cmp_objects(git_rawobj *o, object_data *d) +{ + cl_assert(o->type == git_object_string2type(d->type)); + cl_assert(o->len == d->dlen); + + if (o->len > 0) + cl_assert(memcmp(o->data, d->data, o->len) == 0); +} + +static void test_read_object(object_data *data) +{ + git_oid id; + git_odb_object *obj; + git_odb *odb; + + write_object_files(data); + + cl_git_pass(git_odb_open(&odb, "test-objects")); + cl_git_pass(git_oid_fromstr(&id, data->id)); + cl_git_pass(git_odb_read(&obj, odb, &id)); + + cmp_objects((git_rawobj *)&obj->raw, data); + + git_odb_object_free(obj); + git_odb_free(odb); +} + +void test_odb_loose__initialize(void) +{ + cl_must_pass(p_mkdir("test-objects", GIT_OBJECT_DIR_MODE)); +} + +void test_odb_loose__cleanup(void) +{ + cl_fixture_cleanup("test-objects"); +} + +void test_odb_loose__exists(void) +{ + git_oid id, id2; + git_odb *odb; + + write_object_files(&one); + cl_git_pass(git_odb_open(&odb, "test-objects")); + + cl_git_pass(git_oid_fromstr(&id, one.id)); + + cl_assert(git_odb_exists(odb, &id)); + + /* Test for a non-existant object */ + cl_git_pass(git_oid_fromstr(&id2, "8b137891791fe96927ad78e64b0aad7bded08baa")); + cl_assert(!git_odb_exists(odb, &id2)); + + git_odb_free(odb); +} + +void test_odb_loose__simple_reads(void) +{ + test_read_object(&commit); + test_read_object(&tree); + test_read_object(&tag); + test_read_object(&zero); + test_read_object(&one); + test_read_object(&two); + test_read_object(&some); +} diff --git a/tests-clar/odb/loose_data.h b/tests-clar/odb/loose_data.h new file mode 100644 index 000000000..c10c9bc7f --- /dev/null +++ b/tests-clar/odb/loose_data.h @@ -0,0 +1,522 @@ +typedef struct object_data { + unsigned char *bytes; /* (compressed) bytes stored in object store */ + size_t blen; /* length of data in object store */ + char *id; /* object id (sha1) */ + char *type; /* object type */ + char *dir; /* object store (fan-out) directory name */ + char *file; /* object store filename */ + unsigned char *data; /* (uncompressed) object data */ + size_t dlen; /* length of (uncompressed) object data */ +} object_data; + +/* one == 8b137891791fe96927ad78e64b0aad7bded08bdc */ +static unsigned char one_bytes[] = { + 0x31, 0x78, 0x9c, 0xe3, 0x02, 0x00, 0x00, 0x0b, + 0x00, 0x0b, +}; + +static unsigned char one_data[] = { + 0x0a, +}; + +static object_data one = { + one_bytes, + sizeof(one_bytes), + "8b137891791fe96927ad78e64b0aad7bded08bdc", + "blob", + "test-objects/8b", + "test-objects/8b/137891791fe96927ad78e64b0aad7bded08bdc", + one_data, + sizeof(one_data), +}; + + +/* commit == 3d7f8a6af076c8c3f20071a8935cdbe8228594d1 */ +static unsigned char commit_bytes[] = { + 0x78, 0x01, 0x85, 0x50, 0xc1, 0x6a, 0xc3, 0x30, + 0x0c, 0xdd, 0xd9, 0x5f, 0xa1, 0xfb, 0x96, 0x12, + 0xbb, 0x29, 0x71, 0x46, 0x19, 0x2b, 0x3d, 0x97, + 0x1d, 0xd6, 0x7d, 0x80, 0x1d, 0xcb, 0x89, 0x21, + 0xb6, 0x82, 0xed, 0x40, 0xf3, 0xf7, 0xf3, 0x48, + 0x29, 0x3b, 0x6d, 0xd2, 0xe5, 0xbd, 0x27, 0xbd, + 0x27, 0x50, 0x4f, 0xde, 0xbb, 0x0c, 0xfb, 0x43, + 0xf3, 0x94, 0x23, 0x22, 0x18, 0x6b, 0x85, 0x51, + 0x5d, 0xad, 0xc5, 0xa1, 0x41, 0xae, 0x51, 0x4b, + 0xd9, 0x19, 0x6e, 0x4b, 0x0b, 0x29, 0x35, 0x72, + 0x59, 0xef, 0x5b, 0x29, 0x8c, 0x65, 0x6a, 0xc9, + 0x23, 0x45, 0x38, 0xc1, 0x17, 0x5c, 0x7f, 0xc0, + 0x71, 0x13, 0xde, 0xf1, 0xa6, 0xfc, 0x3c, 0xe1, + 0xae, 0x27, 0xff, 0x06, 0x5c, 0x88, 0x56, 0xf2, + 0x46, 0x74, 0x2d, 0x3c, 0xd7, 0xa5, 0x58, 0x51, + 0xcb, 0xb9, 0x8c, 0x11, 0xce, 0xf0, 0x01, 0x97, + 0x0d, 0x1e, 0x1f, 0xea, 0x3f, 0x6e, 0x76, 0x02, + 0x0a, 0x58, 0x4d, 0x2e, 0x20, 0x6c, 0x1e, 0x48, + 0x8b, 0xf7, 0x2a, 0xae, 0x8c, 0x5d, 0x47, 0x04, + 0x4d, 0x66, 0x05, 0xb2, 0x90, 0x0b, 0xbe, 0xcf, + 0x3d, 0xa6, 0xa4, 0x06, 0x7c, 0x29, 0x3c, 0x64, + 0xe5, 0x82, 0x0b, 0x03, 0xd8, 0x25, 0x96, 0x8d, + 0x08, 0x78, 0x9b, 0x27, 0x15, 0x54, 0x76, 0x14, + 0xd8, 0xdd, 0x35, 0x2f, 0x71, 0xa6, 0x84, 0x8f, + 0x90, 0x51, 0x85, 0x01, 0x13, 0xb8, 0x90, 0x23, + 0x99, 0xa5, 0x47, 0x03, 0x7a, 0xfd, 0x15, 0xbf, + 0x63, 0xec, 0xd3, 0x0d, 0x01, 0x4d, 0x45, 0xb6, + 0xd2, 0xeb, 0xeb, 0xdf, 0xef, 0x60, 0xdf, 0xef, + 0x1f, 0x78, 0x35, +}; + +static unsigned char commit_data[] = { + 0x74, 0x72, 0x65, 0x65, 0x20, 0x64, 0x66, 0x66, + 0x32, 0x64, 0x61, 0x39, 0x30, 0x62, 0x32, 0x35, + 0x34, 0x65, 0x31, 0x62, 0x65, 0x62, 0x38, 0x38, + 0x39, 0x64, 0x31, 0x66, 0x31, 0x66, 0x31, 0x32, + 0x38, 0x38, 0x62, 0x65, 0x31, 0x38, 0x30, 0x33, + 0x37, 0x38, 0x32, 0x64, 0x66, 0x0a, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x20, 0x41, 0x20, 0x55, + 0x20, 0x54, 0x68, 0x6f, 0x72, 0x20, 0x3c, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x40, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x3e, 0x20, 0x31, 0x32, 0x32, 0x37, 0x38, + 0x31, 0x34, 0x32, 0x39, 0x37, 0x20, 0x2b, 0x30, + 0x30, 0x30, 0x30, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x72, 0x20, 0x43, 0x20, + 0x4f, 0x20, 0x4d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x20, 0x3c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x40, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x3e, + 0x20, 0x31, 0x32, 0x32, 0x37, 0x38, 0x31, 0x34, + 0x32, 0x39, 0x37, 0x20, 0x2b, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x0a, 0x41, 0x20, 0x6f, 0x6e, 0x65, + 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x20, 0x73, 0x75, 0x6d, + 0x6d, 0x61, 0x72, 0x79, 0x0a, 0x0a, 0x54, 0x68, + 0x65, 0x20, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x6f, + 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x20, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2c, 0x20, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x20, 0x66, 0x75, 0x72, 0x74, 0x68, 0x65, 0x72, + 0x20, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x72, 0x70, + 0x6f, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x65, 0x64, 0x20, 0x62, 0x79, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x2e, 0x0a, 0x0a, 0x53, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x2d, 0x6f, 0x66, 0x2d, + 0x62, 0x79, 0x3a, 0x20, 0x41, 0x20, 0x55, 0x20, + 0x54, 0x68, 0x6f, 0x72, 0x20, 0x3c, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x40, 0x65, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x3e, 0x0a, +}; + +static object_data commit = { + commit_bytes, + sizeof(commit_bytes), + "3d7f8a6af076c8c3f20071a8935cdbe8228594d1", + "commit", + "test-objects/3d", + "test-objects/3d/7f8a6af076c8c3f20071a8935cdbe8228594d1", + commit_data, + sizeof(commit_data), +}; + +/* tree == dff2da90b254e1beb889d1f1f1288be1803782df */ +static unsigned char tree_bytes[] = { + 0x78, 0x01, 0x2b, 0x29, 0x4a, 0x4d, 0x55, 0x30, + 0x34, 0x32, 0x63, 0x30, 0x34, 0x30, 0x30, 0x33, + 0x31, 0x51, 0xc8, 0xcf, 0x4b, 0x65, 0xe8, 0x16, + 0xae, 0x98, 0x58, 0x29, 0xff, 0x32, 0x53, 0x7d, + 0x6d, 0xc5, 0x33, 0x6f, 0xae, 0xb5, 0xd5, 0xf7, + 0x2e, 0x74, 0xdf, 0x81, 0x4a, 0x17, 0xe7, 0xe7, + 0xa6, 0x32, 0xfc, 0x6d, 0x31, 0xd8, 0xd3, 0xe6, + 0xf3, 0xe7, 0xea, 0x47, 0xbe, 0xd0, 0x09, 0x3f, + 0x96, 0xb8, 0x3f, 0x90, 0x9e, 0xa2, 0xfd, 0x0f, + 0x2a, 0x5f, 0x52, 0x9e, 0xcf, 0x50, 0x31, 0x43, + 0x52, 0x29, 0xd1, 0x5a, 0xeb, 0x77, 0x82, 0x2a, + 0x8b, 0xfe, 0xb7, 0xbd, 0xed, 0x5d, 0x07, 0x67, + 0xfa, 0xb5, 0x42, 0xa5, 0xab, 0x52, 0x8b, 0xf2, + 0x19, 0x9e, 0xcd, 0x7d, 0x34, 0x7b, 0xd3, 0xc5, + 0x6b, 0xce, 0xde, 0xdd, 0x9a, 0xeb, 0xca, 0xa3, + 0x6e, 0x1c, 0x7a, 0xd2, 0x13, 0x3c, 0x11, 0x00, + 0xe2, 0xaa, 0x38, 0x57, +}; + +static unsigned char tree_data[] = { + 0x31, 0x30, 0x30, 0x36, 0x34, 0x34, 0x20, 0x6f, + 0x6e, 0x65, 0x00, 0x8b, 0x13, 0x78, 0x91, 0x79, + 0x1f, 0xe9, 0x69, 0x27, 0xad, 0x78, 0xe6, 0x4b, + 0x0a, 0xad, 0x7b, 0xde, 0xd0, 0x8b, 0xdc, 0x31, + 0x30, 0x30, 0x36, 0x34, 0x34, 0x20, 0x73, 0x6f, + 0x6d, 0x65, 0x00, 0xfd, 0x84, 0x30, 0xbc, 0x86, + 0x4c, 0xfc, 0xd5, 0xf1, 0x0e, 0x55, 0x90, 0xf8, + 0xa4, 0x47, 0xe0, 0x1b, 0x94, 0x2b, 0xfe, 0x31, + 0x30, 0x30, 0x36, 0x34, 0x34, 0x20, 0x74, 0x77, + 0x6f, 0x00, 0x78, 0x98, 0x19, 0x22, 0x61, 0x3b, + 0x2a, 0xfb, 0x60, 0x25, 0x04, 0x2f, 0xf6, 0xbd, + 0x87, 0x8a, 0xc1, 0x99, 0x4e, 0x85, 0x31, 0x30, + 0x30, 0x36, 0x34, 0x34, 0x20, 0x7a, 0x65, 0x72, + 0x6f, 0x00, 0xe6, 0x9d, 0xe2, 0x9b, 0xb2, 0xd1, + 0xd6, 0x43, 0x4b, 0x8b, 0x29, 0xae, 0x77, 0x5a, + 0xd8, 0xc2, 0xe4, 0x8c, 0x53, 0x91, +}; + +static object_data tree = { + tree_bytes, + sizeof(tree_bytes), + "dff2da90b254e1beb889d1f1f1288be1803782df", + "tree", + "test-objects/df", + "test-objects/df/f2da90b254e1beb889d1f1f1288be1803782df", + tree_data, + sizeof(tree_data), +}; + +/* tag == 09d373e1dfdc16b129ceec6dd649739911541e05 */ +static unsigned char tag_bytes[] = { + 0x78, 0x01, 0x35, 0x4e, 0xcb, 0x0a, 0xc2, 0x40, + 0x10, 0xf3, 0xbc, 0x5f, 0x31, 0x77, 0xa1, 0xec, + 0xa3, 0xed, 0x6e, 0x41, 0x44, 0xf0, 0x2c, 0x5e, + 0xfc, 0x81, 0xe9, 0x76, 0xb6, 0xad, 0xb4, 0xb4, + 0x6c, 0x07, 0xd1, 0xbf, 0x77, 0x44, 0x0d, 0x39, + 0x84, 0x10, 0x92, 0x30, 0xf6, 0x60, 0xbc, 0xdb, + 0x2d, 0xed, 0x9d, 0x22, 0x83, 0xeb, 0x7c, 0x0a, + 0x58, 0x63, 0xd2, 0xbe, 0x8e, 0x21, 0xba, 0x64, + 0xb5, 0xf6, 0x06, 0x43, 0xe3, 0xaa, 0xd8, 0xb5, + 0x14, 0xac, 0x0d, 0x55, 0x53, 0x76, 0x46, 0xf1, + 0x6b, 0x25, 0x88, 0xcb, 0x3c, 0x8f, 0xac, 0x58, + 0x3a, 0x1e, 0xba, 0xd0, 0x85, 0xd8, 0xd8, 0xf7, + 0x94, 0xe1, 0x0c, 0x57, 0xb8, 0x8c, 0xcc, 0x22, + 0x0f, 0xdf, 0x90, 0xc8, 0x13, 0x3d, 0x71, 0x5e, + 0x27, 0x2a, 0xc4, 0x39, 0x82, 0xb1, 0xd6, 0x07, + 0x53, 0xda, 0xc6, 0xc3, 0x5e, 0x0b, 0x94, 0xba, + 0x0d, 0xe3, 0x06, 0x42, 0x1e, 0x08, 0x3e, 0x95, + 0xbf, 0x4b, 0x69, 0xc9, 0x90, 0x69, 0x22, 0xdc, + 0xe8, 0xbf, 0xf2, 0x06, 0x42, 0x9a, 0x36, 0xb1, +}; + +static unsigned char tag_data[] = { + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x20, 0x33, + 0x64, 0x37, 0x66, 0x38, 0x61, 0x36, 0x61, 0x66, + 0x30, 0x37, 0x36, 0x63, 0x38, 0x63, 0x33, 0x66, + 0x32, 0x30, 0x30, 0x37, 0x31, 0x61, 0x38, 0x39, + 0x33, 0x35, 0x63, 0x64, 0x62, 0x65, 0x38, 0x32, + 0x32, 0x38, 0x35, 0x39, 0x34, 0x64, 0x31, 0x0a, + 0x74, 0x79, 0x70, 0x65, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x0a, 0x74, 0x61, 0x67, 0x20, + 0x76, 0x30, 0x2e, 0x30, 0x2e, 0x31, 0x0a, 0x74, + 0x61, 0x67, 0x67, 0x65, 0x72, 0x20, 0x43, 0x20, + 0x4f, 0x20, 0x4d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x20, 0x3c, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x74, 0x65, 0x72, 0x40, 0x65, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x3e, + 0x20, 0x31, 0x32, 0x32, 0x37, 0x38, 0x31, 0x34, + 0x32, 0x39, 0x37, 0x20, 0x2b, 0x30, 0x30, 0x30, + 0x30, 0x0a, 0x0a, 0x54, 0x68, 0x69, 0x73, 0x20, + 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x74, + 0x61, 0x67, 0x20, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x72, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x20, 0x76, 0x30, + 0x2e, 0x30, 0x2e, 0x31, 0x0a, +}; + +static object_data tag = { + tag_bytes, + sizeof(tag_bytes), + "09d373e1dfdc16b129ceec6dd649739911541e05", + "tag", + "test-objects/09", + "test-objects/09/d373e1dfdc16b129ceec6dd649739911541e05", + tag_data, + sizeof(tag_data), +}; + +/* zero == e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 */ +static unsigned char zero_bytes[] = { + 0x78, 0x01, 0x4b, 0xca, 0xc9, 0x4f, 0x52, 0x30, + 0x60, 0x00, 0x00, 0x09, 0xb0, 0x01, 0xf0, +}; + +static unsigned char zero_data[] = { + 0x00 /* dummy data */ +}; + +static object_data zero = { + zero_bytes, + sizeof(zero_bytes), + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "blob", + "test-objects/e6", + "test-objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391", + zero_data, + 0, +}; + +/* two == 78981922613b2afb6025042ff6bd878ac1994e85 */ +static unsigned char two_bytes[] = { + 0x78, 0x01, 0x4b, 0xca, 0xc9, 0x4f, 0x52, 0x30, + 0x62, 0x48, 0xe4, 0x02, 0x00, 0x0e, 0x64, 0x02, + 0x5d, +}; + +static unsigned char two_data[] = { + 0x61, 0x0a, +}; + +static object_data two = { + two_bytes, + sizeof(two_bytes), + "78981922613b2afb6025042ff6bd878ac1994e85", + "blob", + "test-objects/78", + "test-objects/78/981922613b2afb6025042ff6bd878ac1994e85", + two_data, + sizeof(two_data), +}; + +/* some == fd8430bc864cfcd5f10e5590f8a447e01b942bfe */ +static unsigned char some_bytes[] = { + 0x78, 0x01, 0x7d, 0x54, 0xc1, 0x4e, 0xe3, 0x30, + 0x10, 0xdd, 0x33, 0x5f, 0x31, 0xc7, 0x5d, 0x94, + 0xa5, 0x84, 0xd5, 0x22, 0xad, 0x7a, 0x0a, 0x15, + 0x85, 0x48, 0xd0, 0x56, 0x49, 0x2a, 0xd4, 0xa3, + 0x13, 0x4f, 0x88, 0x85, 0x63, 0x47, 0xb6, 0x43, + 0xc9, 0xdf, 0xef, 0x8c, 0x69, 0x17, 0x56, 0x0b, + 0x7b, 0xaa, 0x62, 0x7b, 0xde, 0xbc, 0xf7, 0xe6, + 0x4d, 0x6b, 0x6d, 0x6b, 0x48, 0xd3, 0xcb, 0x5f, + 0x5f, 0x66, 0xa7, 0x27, 0x70, 0x0a, 0x55, 0xa7, + 0x3c, 0xb4, 0x4a, 0x23, 0xf0, 0xaf, 0x43, 0x04, + 0x6f, 0xdb, 0xb0, 0x17, 0x0e, 0xe7, 0x30, 0xd9, + 0x11, 0x1a, 0x61, 0xc0, 0xa1, 0x54, 0x3e, 0x38, + 0x55, 0x8f, 0x81, 0x9e, 0x05, 0x10, 0x46, 0xce, + 0xac, 0x83, 0xde, 0x4a, 0xd5, 0x4e, 0x0c, 0x42, + 0x67, 0xa3, 0x91, 0xe8, 0x20, 0x74, 0x08, 0x01, + 0x5d, 0xef, 0xc1, 0xb6, 0xf1, 0xe3, 0x66, 0xb5, + 0x85, 0x1b, 0x34, 0xe8, 0x84, 0x86, 0xcd, 0x58, + 0x6b, 0xd5, 0xc0, 0x9d, 0x6a, 0xd0, 0x78, 0x4c, + 0xe0, 0x19, 0x9d, 0x57, 0xd6, 0xc0, 0x45, 0xc2, + 0x18, 0xc2, 0xc3, 0xc0, 0x0f, 0x7c, 0x87, 0x12, + 0xea, 0x29, 0x56, 0x2f, 0x99, 0x4f, 0x79, 0xe0, + 0x03, 0x4b, 0x4b, 0x4d, 0x44, 0xa0, 0x92, 0x33, + 0x2a, 0xe0, 0x9a, 0xdc, 0x80, 0x90, 0x52, 0xf1, + 0x11, 0x04, 0x1b, 0x4b, 0x06, 0xea, 0xae, 0x3c, + 0xe3, 0x7a, 0x50, 0x74, 0x4a, 0x84, 0xfe, 0xc3, + 0x81, 0x41, 0xf8, 0x89, 0x18, 0x43, 0x67, 0x9d, + 0x87, 0x47, 0xf5, 0x8c, 0x51, 0xf6, 0x68, 0xb4, + 0xea, 0x55, 0x20, 0x2a, 0x6f, 0x80, 0xdc, 0x42, + 0x2b, 0xf3, 0x14, 0x2b, 0x1a, 0xdb, 0x0f, 0xe4, + 0x9a, 0x64, 0x84, 0xa3, 0x90, 0xa8, 0xf9, 0x8f, + 0x9d, 0x86, 0x9e, 0xd3, 0xab, 0x5a, 0x99, 0xc8, + 0xd9, 0xc3, 0x5e, 0x85, 0x0e, 0x2c, 0xb5, 0x73, + 0x30, 0x38, 0xfb, 0xe8, 0x44, 0xef, 0x5f, 0x95, + 0x1b, 0xc9, 0xd0, 0xef, 0x3c, 0x26, 0x32, 0x1e, + 0xff, 0x2d, 0xb6, 0x23, 0x7b, 0x3f, 0xd1, 0x3c, + 0x78, 0x1a, 0x0d, 0xcb, 0xe6, 0xf6, 0xd4, 0x44, + 0x99, 0x47, 0x1a, 0x9e, 0xed, 0x23, 0xb5, 0x91, + 0x6a, 0xdf, 0x53, 0x39, 0x03, 0xf8, 0x5a, 0xb1, + 0x0f, 0x1f, 0xce, 0x81, 0x11, 0xde, 0x01, 0x7a, + 0x90, 0x16, 0xc4, 0x30, 0xe8, 0x89, 0xed, 0x7b, + 0x65, 0x4b, 0xd7, 0x03, 0x36, 0xc1, 0xcf, 0xa1, + 0xa5, 0xb1, 0xe3, 0x8b, 0xe8, 0x07, 0x4d, 0xf3, + 0x23, 0x25, 0x13, 0x35, 0x27, 0xf5, 0x8c, 0x11, + 0xd3, 0xa0, 0x9a, 0xa8, 0xf5, 0x38, 0x7d, 0xce, + 0x55, 0xc2, 0x71, 0x79, 0x13, 0xc7, 0xa3, 0xda, + 0x77, 0x68, 0xc0, 0xd8, 0x10, 0xdd, 0x24, 0x8b, + 0x15, 0x59, 0xc5, 0x10, 0xe2, 0x20, 0x99, 0x8e, + 0xf0, 0x05, 0x9b, 0x31, 0x88, 0x5a, 0xe3, 0xd9, + 0x37, 0xba, 0xe2, 0xdb, 0xbf, 0x92, 0xfa, 0x66, + 0x16, 0x97, 0x47, 0xd9, 0x9d, 0x1d, 0x28, 0x7c, + 0x9d, 0x08, 0x1c, 0xc7, 0xbd, 0xd2, 0x1a, 0x6a, + 0x04, 0xf2, 0xa2, 0x1d, 0x75, 0x02, 0x14, 0x5d, + 0xc6, 0x78, 0xc8, 0xab, 0xdb, 0xf5, 0xb6, 0x82, + 0x6c, 0xb5, 0x83, 0x87, 0xac, 0x28, 0xb2, 0x55, + 0xb5, 0x9b, 0xc7, 0xc1, 0xb0, 0xb7, 0xf8, 0x4c, + 0xbc, 0x38, 0x0e, 0x8a, 0x04, 0x2a, 0x62, 0x41, + 0x6b, 0xe0, 0x84, 0x09, 0x13, 0xe9, 0xe1, 0xea, + 0xfb, 0xeb, 0x62, 0x71, 0x4b, 0x25, 0xd9, 0x55, + 0x7e, 0x97, 0x57, 0x3b, 0x20, 0x33, 0x96, 0x79, + 0xb5, 0xba, 0x2e, 0x4b, 0x58, 0xae, 0x0b, 0xc8, + 0x60, 0x93, 0x15, 0x55, 0xbe, 0xd8, 0xde, 0x65, + 0x05, 0x6c, 0xb6, 0xc5, 0x66, 0x5d, 0x5e, 0x93, + 0xf7, 0x25, 0x65, 0x98, 0x41, 0x29, 0x86, 0x0c, + 0xf2, 0xf1, 0x14, 0xa2, 0xb3, 0xbd, 0x75, 0x08, + 0x12, 0x83, 0x50, 0xda, 0x1f, 0x23, 0xbe, 0xa3, + 0x1d, 0xf4, 0x9d, 0x1d, 0xb5, 0x84, 0x4e, 0x50, + 0x38, 0x1d, 0x36, 0x48, 0x21, 0x95, 0xd1, 0xac, + 0x81, 0x99, 0x1d, 0xc1, 0x3f, 0x41, 0xe6, 0x9e, + 0x42, 0x5b, 0x0a, 0x48, 0xcc, 0x5f, 0xe0, 0x7d, + 0x3f, 0xc4, 0x6f, 0x0e, 0xfe, 0xc0, 0x2d, 0xfe, + 0x01, 0x2c, 0xd6, 0x9b, 0x5d, 0xbe, 0xba, 0x21, + 0xca, 0x79, 0xcb, 0xe3, 0x49, 0x60, 0xef, 0x68, + 0x05, 0x28, 0x9b, 0x8c, 0xc1, 0x12, 0x3e, 0xdb, + 0xc7, 0x04, 0x7e, 0xa6, 0x74, 0x29, 0xcc, 0x13, + 0xed, 0x07, 0x94, 0x81, 0xd6, 0x96, 0xaa, 0x97, + 0xaa, 0xa5, 0xc0, 0x2f, 0xb5, 0xb5, 0x2e, 0xe6, + 0xfc, 0xca, 0xfa, 0x60, 0x4d, 0x02, 0xf7, 0x19, + 0x9c, 0x5f, 0xa4, 0xe9, 0xf9, 0xf7, 0xf4, 0xc7, + 0x79, 0x9a, 0xc0, 0xb6, 0xcc, 0x58, 0xec, 0xec, + 0xe4, 0x37, 0x22, 0xfa, 0x8b, 0x53, +}; + +static unsigned char some_data[] = { + 0x2f, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x54, 0x68, + 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, + 0x69, 0x73, 0x20, 0x66, 0x72, 0x65, 0x65, 0x20, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x3b, 0x20, 0x79, 0x6f, 0x75, 0x20, 0x63, 0x61, + 0x6e, 0x20, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x20, 0x69, + 0x74, 0x20, 0x61, 0x6e, 0x64, 0x2f, 0x6f, 0x72, + 0x20, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x0a, + 0x20, 0x2a, 0x20, 0x69, 0x74, 0x20, 0x75, 0x6e, + 0x64, 0x65, 0x72, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x4e, 0x55, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, + 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2c, + 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x20, 0x32, 0x2c, 0x0a, 0x20, 0x2a, 0x20, 0x61, + 0x73, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, + 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x0a, 0x20, 0x2a, 0x0a, + 0x20, 0x2a, 0x20, 0x49, 0x6e, 0x20, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, + 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x47, 0x4e, 0x55, 0x20, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x6c, 0x20, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x2c, 0x0a, 0x20, 0x2a, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x73, 0x20, 0x67, 0x69, 0x76, 0x65, + 0x20, 0x79, 0x6f, 0x75, 0x20, 0x75, 0x6e, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x20, 0x70, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x74, 0x6f, 0x20, 0x6c, 0x69, 0x6e, + 0x6b, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, + 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x64, 0x0a, 0x20, + 0x2a, 0x20, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x69, + 0x73, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x69, + 0x6e, 0x74, 0x6f, 0x20, 0x63, 0x6f, 0x6d, 0x62, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x20, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x73, 0x2c, 0x0a, 0x20, 0x2a, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x74, 0x6f, 0x20, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x20, 0x74, 0x68, 0x6f, 0x73, 0x65, + 0x20, 0x63, 0x6f, 0x6d, 0x62, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x69, + 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, 0x61, 0x6e, + 0x79, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x0a, 0x20, 0x2a, + 0x20, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x20, + 0x66, 0x72, 0x6f, 0x6d, 0x20, 0x74, 0x68, 0x65, + 0x20, 0x75, 0x73, 0x65, 0x20, 0x6f, 0x66, 0x20, + 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x2e, 0x20, 0x20, 0x28, 0x54, 0x68, 0x65, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, + 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, + 0x20, 0x2a, 0x20, 0x72, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, + 0x64, 0x6f, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x20, 0x69, 0x6e, 0x20, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x20, 0x72, 0x65, 0x73, 0x70, 0x65, 0x63, + 0x74, 0x73, 0x3b, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2c, + 0x20, 0x74, 0x68, 0x65, 0x79, 0x20, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x0a, 0x20, 0x2a, 0x20, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x66, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, + 0x20, 0x61, 0x6e, 0x64, 0x20, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x77, 0x68, 0x65, 0x6e, 0x20, 0x6e, + 0x6f, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x65, + 0x64, 0x20, 0x69, 0x6e, 0x74, 0x6f, 0x0a, 0x20, + 0x2a, 0x20, 0x61, 0x20, 0x63, 0x6f, 0x6d, 0x62, + 0x69, 0x6e, 0x65, 0x64, 0x20, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, + 0x29, 0x0a, 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, + 0x54, 0x68, 0x69, 0x73, 0x20, 0x66, 0x69, 0x6c, + 0x65, 0x20, 0x69, 0x73, 0x20, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, + 0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x68, 0x6f, 0x70, 0x65, 0x20, 0x74, 0x68, 0x61, + 0x74, 0x20, 0x69, 0x74, 0x20, 0x77, 0x69, 0x6c, + 0x6c, 0x20, 0x62, 0x65, 0x20, 0x75, 0x73, 0x65, + 0x66, 0x75, 0x6c, 0x2c, 0x20, 0x62, 0x75, 0x74, + 0x0a, 0x20, 0x2a, 0x20, 0x57, 0x49, 0x54, 0x48, + 0x4f, 0x55, 0x54, 0x20, 0x41, 0x4e, 0x59, 0x20, + 0x57, 0x41, 0x52, 0x52, 0x41, 0x4e, 0x54, 0x59, + 0x3b, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, + 0x74, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x69, 0x6d, 0x70, 0x6c, 0x69, + 0x65, 0x64, 0x20, 0x77, 0x61, 0x72, 0x72, 0x61, + 0x6e, 0x74, 0x79, 0x20, 0x6f, 0x66, 0x0a, 0x20, + 0x2a, 0x20, 0x4d, 0x45, 0x52, 0x43, 0x48, 0x41, + 0x4e, 0x54, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, + 0x59, 0x20, 0x6f, 0x72, 0x20, 0x46, 0x49, 0x54, + 0x4e, 0x45, 0x53, 0x53, 0x20, 0x46, 0x4f, 0x52, + 0x20, 0x41, 0x20, 0x50, 0x41, 0x52, 0x54, 0x49, + 0x43, 0x55, 0x4c, 0x41, 0x52, 0x20, 0x50, 0x55, + 0x52, 0x50, 0x4f, 0x53, 0x45, 0x2e, 0x20, 0x20, + 0x53, 0x65, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, + 0x47, 0x4e, 0x55, 0x0a, 0x20, 0x2a, 0x20, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x20, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, + 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x66, 0x6f, + 0x72, 0x20, 0x6d, 0x6f, 0x72, 0x65, 0x20, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x0a, + 0x20, 0x2a, 0x0a, 0x20, 0x2a, 0x20, 0x59, 0x6f, + 0x75, 0x20, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, + 0x20, 0x68, 0x61, 0x76, 0x65, 0x20, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x20, 0x61, + 0x20, 0x63, 0x6f, 0x70, 0x79, 0x20, 0x6f, 0x66, + 0x20, 0x74, 0x68, 0x65, 0x20, 0x47, 0x4e, 0x55, + 0x20, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, + 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, + 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x0a, + 0x20, 0x2a, 0x20, 0x61, 0x6c, 0x6f, 0x6e, 0x67, + 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x74, 0x68, + 0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x3b, 0x20, 0x73, 0x65, 0x65, 0x20, + 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, + 0x20, 0x43, 0x4f, 0x50, 0x59, 0x49, 0x4e, 0x47, + 0x2e, 0x20, 0x20, 0x49, 0x66, 0x20, 0x6e, 0x6f, + 0x74, 0x2c, 0x20, 0x77, 0x72, 0x69, 0x74, 0x65, + 0x20, 0x74, 0x6f, 0x0a, 0x20, 0x2a, 0x20, 0x74, + 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, 0x20, + 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, + 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2c, 0x20, 0x35, 0x31, 0x20, + 0x46, 0x72, 0x61, 0x6e, 0x6b, 0x6c, 0x69, 0x6e, + 0x20, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x2c, + 0x20, 0x46, 0x69, 0x66, 0x74, 0x68, 0x20, 0x46, + 0x6c, 0x6f, 0x6f, 0x72, 0x2c, 0x0a, 0x20, 0x2a, + 0x20, 0x42, 0x6f, 0x73, 0x74, 0x6f, 0x6e, 0x2c, + 0x20, 0x4d, 0x41, 0x20, 0x30, 0x32, 0x31, 0x31, + 0x30, 0x2d, 0x31, 0x33, 0x30, 0x31, 0x2c, 0x20, + 0x55, 0x53, 0x41, 0x2e, 0x0a, 0x20, 0x2a, 0x2f, + 0x0a, +}; + +static object_data some = { + some_bytes, + sizeof(some_bytes), + "fd8430bc864cfcd5f10e5590f8a447e01b942bfe", + "blob", + "test-objects/fd", + "test-objects/fd/8430bc864cfcd5f10e5590f8a447e01b942bfe", + some_data, + sizeof(some_data), +}; diff --git a/tests-clar/odb/pack_data.h b/tests-clar/odb/pack_data.h new file mode 100644 index 000000000..e6371beb1 --- /dev/null +++ b/tests-clar/odb/pack_data.h @@ -0,0 +1,151 @@ + +static const char *packed_objects[] = { + "0266163a49e280c4f5ed1e08facd36a2bd716bcf", + "53fc32d17276939fc79ed05badaef2db09990016", + "6336846bd5c88d32f93ae57d846683e61ab5c530", + "6dcf9bf7541ee10456529833502442f385010c3d", + "bed08a0b30b72a9d4aed7f1af8c8ca124e8d64b9", + "e90810b8df3e80c413d903f631643c716887138d", + "fc3c3a2083e9f6f89e6bd53e9420e70d1e357c9b", + "fc58168adf502d0c0ef614c3111a7038fc8c09c8", + "fd0ec0333948dfe23265ac46be0205a436a8c3a5", + "fd8430bc864cfcd5f10e5590f8a447e01b942bfe", + "fd899f45951c15c1c5f7c34b1c864e91bd6556c6", + "fda23b974899e7e1f938619099280bfda13bdca9", + "fdbec189efb657c8325962b494875987881a356b", + "fe1ca6bd22b5d8353ce6c2f3aba80805c438a7a5", + "fe3a6a42c87ff1239370c741a265f3997add87c1", + "deb106bfd2d36ecf9f0079224c12022201a39ad1", + "dec93efc79e60f2680de3e666755d335967eec30", + "def425bf8568b9c1e20879bf5be6f9c52b7361c4", + "df48000ac4f48570054e3a71a81916357997b680", + "dfae6ed8f6dd8acc3b40a31811ea316239223559", + "dff79e27d3d2cdc09790ded80fe2ea8ff5d61034", + "e00e46abe4c542e17c8bc83d72cf5be8018d7b0e", + "e01b107b4f77f8f98645adac0206a504f2d29d7c", + "e032d863f512c47b479bd984f8b6c8061f66b7d4", + "e044baa468a1c74f9f9da36805445f6888358b49", + "e04529998989ba8ae3419538dd57969af819b241", + "e0637ddfbea67c8d7f557c709e095af8906e9176", + "e0743ad4031231e71700abdc6fdbe94f189d20e5", + "cf33ac7a3d8b2b8f6bb266518aadbf59de397608", + "cf5f7235b9c9689b133f6ea12015720b411329bd", + "cf6cccf1297284833a9a03138a1f5738fa1c6c94", + "cf7992bde17ce7a79cab5f0c1fcbe8a0108721ed", + "cfe3a027ab12506d4144ee8a35669ae8fc4b7ab1", + "cfe96f31dfad7bab49977aa1df7302f7fafcb025", + "cff54d138945ef4de384e9d2759291d0c13ea90a", + "d01f7573ac34c2f502bd1cf18cde73480c741151", + "d03f567593f346a1ca96a57f8191def098d126e3", + "d047b47aadf88501238f36f5c17dd0a50dc62087", + "d0a0d63086fae3b0682af7261df21f7d0f7f066d", + "d0a44bd6ed0be21b725a96c0891bbc79bc1a540c", + "d0d7e736e536a41bcb885005f8bf258c61cad682", + "d0e7959d4b95ffec6198df6f5a7ae259b23a5f50", + "bf2fe2acca17d13356ce802ba9dc8343f710dfb7", + "bf55f407d6d9418e51f42ea7a3a6aadf17388349", + "bf92206f8b633b88a66dca4a911777630b06fbac", + "bfaf8c42eb8842abe206179fee864cfba87e3ca9", + "bfe05675d4e8f6b59d50932add8790f1a06b10ee", + "bff8618112330763327cfa6ce6e914db84f51ddf", + "bff873e9853ed99fed52c25f7ad29f78b27dcec2", + "c01c3fae7251098d7af1b459bcd0786e81d4616d", + "c0220fca67f48b8a5d4163d53b1486224be3a198", + "c02d0b160b82ee72469c269f13de4c26a7ea09cb", + "c059510ad1b45ab58390e042d7dee1ac46703854", + "c07204a1897aeeaa3c248d29dbfa9b033baf9755", + "c073337a4dd7276931b4b3fdbc3f0040e9441793", + "0fd7e4bfba5b3a82be88d1057757ca8b2c5e6d26", + "100746511cc45c9f1ad6721c4ef5be49222fee4d", + "1088490171d9b984d68b8b9be9ca003f4eafff59", + "1093c8ff4cb78fcf5f79dbbeedcb6e824bd4e253", + "10aa3fa72afab7ee31e116ae06442fe0f7b79df2", + "10b759e734e8299aa0dca08be935d95d886127b6", + "111d5ccf0bb010c4e8d7af3eedfa12ef4c5e265b", + "11261fbff21758444d426356ff6327ee01e90752", + "112998d425717bb922ce74e8f6f0f831d8dc4510", + "2ef4e5d838b6507bd61d457cf6466662b791c5c0", + "2ef4faa0f82efa00eeac6cae9e8b2abccc8566ee", + "2f06098183b0d7be350acbe39cdbaccff2df0c4a", + "2f1c5d509ac5bffb3c62f710a1c2c542e126dfd1", + "2f205b20fc16423c42b3ba51b2ea78d7b9ff3578", + "2f9b6b6e3d9250ba09360734aa47973a993b59d1", + "30c62a2d5a8d644f1311d4f7fe3f6a788e4c8188", + "31438e245492d85fd6da4d1406eba0fbde8332a4", + "3184a3abdfea231992254929ff4e275898e5bbf6", + "3188ffdbb3a3d52e0f78f30c484533899224436e", + "32581d0093429770d044a60eb0e9cc0462bedb13", + "32679a9544d83e5403202c4d5efb61ad02492847", + "4e7e9f60b7e2049b7f5697daf133161a18ef688f", + "4e8cda27ddc8be7db875ceb0f360c37734724c6d", + "4ea481c61c59ab55169b7cbaae536ad50b49d6f0", + "4f0adcd0e61eabe06fe32be66b16559537124b7a", + "4f1355c91100d12f9e7202f91b245df0c110867c", + "4f6eadeb08b9d0d1e8b1b3eac8a34940adf29a2d", + "4f9339df943c53117a5fc8e86e2f38716ff3a668", + "4fc3874b118752e40de556b1c3e7b4a9f1737d00", + "4ff1dd0992dd6baafdb5e166be6f9f23b59bdf87", + "5018a35e0b7e2eec7ce5050baf9c7343f3f74164", + "50298f44a45eda3a29dae82dbe911b5aa176ac07", + "502acd164fb115768d723144da2e7bb5a24891bb", + "50330c02bd4fd95c9db1fcf2f97f4218e42b7226", + "5052bf355d9f8c52446561a39733a8767bf31e37", + "6f2cd729ae42988c1dd43588d3a6661ba48ad7a0", + "6f4e2c42d9138bfbf3e0f908f1308828cc6f2178", + "6f6a17db05a83620cef4572761831c20a70ba9b9", + "6faad60901e36538634f0d8b8ff3f21f83503c71", + "6fc72e46de3df0c3842dab302bbacf697a63abab", + "6fdccd49f442a7204399ca9b418f017322dbded8", + "6fe7568fc3861c334cb008fd85d57d9647249ef5", + "700f55d91d7b55665594676a4bada1f1457a0598", + "702bd70595a7b19afc48a1f784a6505be68469d4", + "7033f9ee0e52b08cb5679cd49b7b7999eaf9eaf8", + "70957110ce446c4e250f865760fb3da513cdcc92", + "8ec696a4734f16479d091bc70574d23dd9fe7443", + "8ed341c55ed4d6f4cdc8bf4f0ca18a08c93f6962", + "8edc2805f1f11b63e44bf81f4557f8b473612b69", + "8ef9060a954118a698fc10e20acdc430566a100f", + "8f0c4b543f4bb6eb1518ecfc3d4699e43108d393", + "8fac94df3035405c2e60b3799153ce7c428af6b9", + "904c0ac12b23548de524adae712241b423d765a3", + "90bbaa9a809c3a768d873a9cc7d52b4f3bf3d1b9", + "90d4d2f0fc362beabbbf76b4ffda0828229c198d", + "90f9ff6755330b685feff6c3d81782ee3592ab04", + "91822c50ebe4f9bf5bbb8308ecf9f6557062775c", + "91d973263a55708fa8255867b3202d81ef9c2868", + "af292c99c6148d772af3315a1c74e83330e7ead7", + "af3b99d5be330dbbce0b9250c3a5fb05911908cc", + "af55d0cdeb280af2db8697e5afa506e081012719", + "af795e498d411142ddb073e8ca2c5447c3295a4c", + "afadc73a392f8cc8e2cc77dd62a7433dd3bafa8c", + "affd84ed8ec7ce67612fe3c12a80f8164b101f6a", + "b0941f9c70ffe67f0387a827b338e64ecf3190f0", + "b0a3077f9ef6e093f8d9869bdb0c07095bd722cb", + "b0a8568a7614806378a54db5706ee3b06ae58693", + "b0fb7372f242233d1d35ce7d8e74d3990cbc5841", + "b10489944b9ead17427551759d180d10203e06ba", + "b196a807b323f2748ffc6b1d42cd0812d04c9a40", + "b1bb1d888f0c5e19278536d49fa77db035fac7ae" +}; + +static const char *loose_objects[] = { + "45b983be36b73c0788dc9cbcb76cbb80fc7bb057", + "a8233120f6ad708f843d861ce2b7228ec4e3dec6", + "fd093bff70906175335656e6ce6ae05783708765", + "c47800c7266a2be04c571c04d5a6614691ea99bd", + "a71586c1dfe8a71c6cbf6c129f404c5642ff31bd", + "8496071c1b46c854b31185ea97743be6a8774479", + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "814889a078c031f61ed08ab5fa863aea9314344d", + "5b5b025afb0b4c913b4c338a42934a3863bf3644", + "1385f264afb75a56a5bec74243be9b367ba4ca08", + "f60079018b664e4e79329a7ef9559c8d9e0378d1", + "be3563ae3f795b2b4353bcce3a527ad0a4f7f644", + "75057dd4114e74cca1d750d0aee1647c903cb60a", + "fa49b077972391ad58037050f2a75f74e3671e92", + "9fd738e8f7967c078dceed8190330fc8648ee56a", + "1810dff58d8a660512d4832e740f692884338ccd", + "181037049a54a1eb5fab404658a3a250b44335d7", + "a4a7dce85cf63874e984719f4fdd239f5145052f", + "4a202b346bb0fb0db7eff3cffeb3c70babbd2045" +}; diff --git a/tests-clar/odb/packed.c b/tests-clar/odb/packed.c new file mode 100644 index 000000000..4bce41ba0 --- /dev/null +++ b/tests-clar/odb/packed.c @@ -0,0 +1,78 @@ +#include "clar_libgit2.h" +#include "odb.h" +#include "pack_data.h" + +static git_odb *_odb; + +void test_odb_packed__initialize(void) +{ + cl_git_pass(git_odb_open(&_odb, cl_fixture("testrepo.git/objects"))); +} + +void test_odb_packed__cleanup(void) +{ + git_odb_free(_odb); +} + +void test_odb_packed__mass_read(void) +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(packed_objects); ++i) { + git_oid id; + git_odb_object *obj; + + cl_git_pass(git_oid_fromstr(&id, packed_objects[i])); + cl_assert(git_odb_exists(_odb, &id) == 1); + cl_git_pass(git_odb_read(&obj, _odb, &id)); + + git_odb_object_free(obj); + } +} + +void test_odb_packed__read_header_0(void) +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(packed_objects); ++i) { + git_oid id; + git_odb_object *obj; + size_t len; + git_otype type; + + cl_git_pass(git_oid_fromstr(&id, packed_objects[i])); + + cl_git_pass(git_odb_read(&obj, _odb, &id)); + cl_git_pass(git_odb_read_header(&len, &type, _odb, &id)); + + cl_assert(obj->raw.len == len); + cl_assert(obj->raw.type == type); + + git_odb_object_free(obj); + } +} + +void test_odb_packed__read_header_1(void) +{ + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(loose_objects); ++i) { + git_oid id; + git_odb_object *obj; + size_t len; + git_otype type; + + cl_git_pass(git_oid_fromstr(&id, loose_objects[i])); + + cl_assert(git_odb_exists(_odb, &id) == 1); + + cl_git_pass(git_odb_read(&obj, _odb, &id)); + cl_git_pass(git_odb_read_header(&len, &type, _odb, &id)); + + cl_assert(obj->raw.len == len); + cl_assert(obj->raw.type == type); + + git_odb_object_free(obj); + } +} + diff --git a/tests-clar/odb/sorting.c b/tests-clar/odb/sorting.c new file mode 100644 index 000000000..bf64f6af4 --- /dev/null +++ b/tests-clar/odb/sorting.c @@ -0,0 +1,71 @@ +#include "clar_libgit2.h" +#include "git2/odb_backend.h" +#include "odb.h" + +typedef struct { + git_odb_backend base; + int position; +} fake_backend; + +static git_odb_backend *new_backend(int position) +{ + fake_backend *b; + + b = git__malloc(sizeof(fake_backend)); + if (b == NULL) + return NULL; + + memset(b, 0x0, sizeof(fake_backend)); + b->position = position; + return (git_odb_backend *)b; +} + +static void check_backend_sorting(git_odb *odb) +{ + unsigned int i; + + for (i = 0; i < odb->backends.length; ++i) { + fake_backend *internal = + *((fake_backend **)git_vector_get(&odb->backends, i)); + + cl_assert(internal != NULL); + cl_assert(internal->position == (int)i); + } +} + +static git_odb *_odb; + +void test_odb_sorting__initialize(void) +{ + cl_git_pass(git_odb_new(&_odb)); +} + +void test_odb_sorting__cleanup(void) +{ + git_odb_free(_odb); + _odb = NULL; +} + +void test_odb_sorting__basic_backends_sorting(void) +{ + cl_git_pass(git_odb_add_backend(_odb, new_backend(0), 5)); + cl_git_pass(git_odb_add_backend(_odb, new_backend(2), 3)); + cl_git_pass(git_odb_add_backend(_odb, new_backend(1), 4)); + cl_git_pass(git_odb_add_backend(_odb, new_backend(3), 1)); + + check_backend_sorting(_odb); +} + +void test_odb_sorting__alternate_backends_sorting(void) +{ + cl_git_pass(git_odb_add_backend(_odb, new_backend(0), 5)); + cl_git_pass(git_odb_add_backend(_odb, new_backend(2), 3)); + cl_git_pass(git_odb_add_backend(_odb, new_backend(1), 4)); + cl_git_pass(git_odb_add_backend(_odb, new_backend(3), 1)); + cl_git_pass(git_odb_add_alternate(_odb, new_backend(4), 5)); + cl_git_pass(git_odb_add_alternate(_odb, new_backend(6), 3)); + cl_git_pass(git_odb_add_alternate(_odb, new_backend(5), 4)); + cl_git_pass(git_odb_add_alternate(_odb, new_backend(7), 1)); + + check_backend_sorting(_odb); +} |
