mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-10-31 16:19:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "clar_libgit2.h"
 | |
| #include "git2/odb_backend.h"
 | |
| 
 | |
| static git_repository *repo;
 | |
| static git_odb *odb;
 | |
| static git_odb_stream *stream;
 | |
| 
 | |
| void test_odb_streamwrite__initialize(void)
 | |
| {
 | |
| 	repo = cl_git_sandbox_init("testrepo.git");
 | |
| 	cl_git_pass(git_repository_odb(&odb, repo));
 | |
| 
 | |
| 	cl_git_pass(git_odb_open_wstream(&stream, odb, 14, GIT_OBJ_BLOB));
 | |
| 	cl_assert_equal_sz(14, stream->declared_size);
 | |
| }
 | |
| 
 | |
| void test_odb_streamwrite__cleanup(void)
 | |
| {
 | |
| 	git_odb_stream_free(stream);
 | |
| 	git_odb_free(odb);
 | |
| 	cl_git_sandbox_cleanup();
 | |
| }
 | |
| 
 | |
| void test_odb_streamwrite__can_accept_chunks(void)
 | |
| {
 | |
| 	git_oid oid;
 | |
| 
 | |
| 	cl_git_pass(git_odb_stream_write(stream, "deadbeef", 8));
 | |
| 	cl_assert_equal_sz(8, stream->received_bytes);
 | |
| 
 | |
| 	cl_git_pass(git_odb_stream_write(stream, "deadbeef", 6));
 | |
| 	cl_assert_equal_sz(8 + 6, stream->received_bytes);
 | |
| 
 | |
| 	cl_git_pass(git_odb_stream_finalize_write(&oid, stream));
 | |
| }
 | |
| 
 | |
| void test_odb_streamwrite__can_detect_missing_bytes(void)
 | |
| {
 | |
| 	git_oid oid;
 | |
| 
 | |
| 	cl_git_pass(git_odb_stream_write(stream, "deadbeef", 8));
 | |
| 	cl_assert_equal_sz(8, stream->received_bytes);
 | |
| 
 | |
| 	cl_git_pass(git_odb_stream_write(stream, "deadbeef", 4));
 | |
| 	cl_assert_equal_sz(8 + 4, stream->received_bytes);
 | |
| 
 | |
| 	cl_git_fail(git_odb_stream_finalize_write(&oid, stream));
 | |
| }
 | |
| 
 | |
| void test_odb_streamwrite__can_detect_additional_bytes(void)
 | |
| {
 | |
| 	cl_git_pass(git_odb_stream_write(stream, "deadbeef", 8));
 | |
| 	cl_assert_equal_sz(8, stream->received_bytes);
 | |
| 
 | |
| 	cl_git_fail(git_odb_stream_write(stream, "deadbeef", 7));
 | |
| }
 | 
