コード例 #1
0
ファイル: loose.c プロジェクト: gitpan/Git-XS
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);
}
コード例 #2
0
ファイル: loose.c プロジェクト: CodeSmithyIDE/libgit2
static void test_read_object(object_data *data)
{
    git_oid id;
    git_odb_object *obj;
	git_odb *odb;
	git_rawobj tmp;

    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));

	tmp.data = obj->buffer;
	tmp.len = obj->cached.size;
	tmp.type = obj->cached.type;

    cmp_objects(&tmp, data);

    git_odb_object_free(obj);
	git_odb_free(odb);
}
コード例 #3
0
ファイル: loose.c プロジェクト: CodeSmithyIDE/libgit2
static void test_readstream_object(object_data *data, size_t blocksize)
{
	git_oid id;
	git_odb *odb;
	git_odb_stream *stream;
	git_rawobj tmp;
	char buf[2048], *ptr = buf;
	size_t remain;
	int ret;

	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_open_rstream(&stream, &tmp.len, &tmp.type, odb, &id));

	remain = tmp.len;

	while (remain) {
		cl_assert((ret = git_odb_stream_read(stream, ptr, blocksize)) >= 0);
		if (ret == 0)
			break;

		cl_assert(remain >= (size_t)ret);
		remain -= ret;
		ptr += ret;
	}

	cl_assert(remain == 0);

	tmp.data = buf;

	cmp_objects(&tmp, data);

	git_odb_stream_free(stream);
	git_odb_free(odb);
}
コード例 #4
0
ファイル: t0203-readloose.c プロジェクト: dborowitz/libgit2
    "test-objects/fd/8430bc864cfcd5f10e5590f8a447e01b942bfe",
    some_data,
    sizeof(some_data),
};

BEGIN_TEST(read_loose_commit)
    git_odb *db;
    git_oid id;
    git_obj obj;

    must_pass(write_object_files(odb_dir, &commit));
    must_pass(git_odb_open(&db, odb_dir));
    must_pass(git_oid_mkstr(&id, commit.id));

    must_pass(git_odb__read_loose(&obj, db, &id));
    must_pass(cmp_objects(&obj, &commit));

    git_obj_close(&obj);
    git_odb_close(db);
    must_pass(remove_object_files(odb_dir, &commit));
END_TEST

BEGIN_TEST(read_loose_tree)
    git_odb *db;
    git_oid id;
    git_obj obj;

    must_pass(write_object_files(odb_dir, &tree));
    must_pass(git_odb_open(&db, odb_dir));
    must_pass(git_oid_mkstr(&id, tree.id));
コード例 #5
0
ファイル: t0301-write.c プロジェクト: dborowitz/libgit2
BEGIN_TEST(write_commit)
git_odb *db;
git_oid id1, id2;
git_obj obj;

must_pass(make_odb_dir());
must_pass(git_odb_open(&db, odb_dir));
must_pass(git_oid_mkstr(&id1, commit.id));

must_pass(git_odb_write(&id2, db, &commit_obj));
must_be_true(git_oid_cmp(&id1, &id2) == 0);
must_pass(check_object_files(&commit));

must_pass(git_odb__read_loose(&obj, db, &id1));
must_pass(cmp_objects(&obj, &commit_obj));

git_obj_close(&obj);
git_odb_close(db);
must_pass(remove_object_files(&commit));
END_TEST

BEGIN_TEST(write_tree)
git_odb *db;
git_oid id1, id2;
git_obj obj;

must_pass(make_odb_dir());
must_pass(git_odb_open(&db, odb_dir));
must_pass(git_oid_mkstr(&id1, tree.id));