]>
git.proxmox.com Git - proxmox-backup.git/blob - tests/blob_writer.rs
5 use proxmox_backup
::backup
::*;
8 fn test_data_blob_writer() -> Result
<(), Error
> {
11 let crypt_config
= CryptConfig
::new(key
)?
;
13 let test_data
= b
"123456789".to_vec();
15 let verify_test_blob
= |raw_data
: Vec
<u8>| -> Result
<(), Error
> {
16 let blob
= DataBlob
::from_raw(raw_data
)?
;
19 let data
= blob
.decode(Some(&crypt_config
))?
;
20 if data
!= test_data
{
21 bail
!("blob data is wrong");
27 let tmp
= Cursor
::new(Vec
::<u8>::new());
28 let mut blob_writer
= DataBlobWriter
::new_uncompressed(tmp
)?
;
29 blob_writer
.write_all(&test_data
)?
;
31 let raw_data
= blob_writer
.finish()?
.into_inner();
33 println
!("UNCOMPRESSED: {:?}", raw_data
);
34 verify_test_blob(raw_data
)?
;
38 let tmp
= Cursor
::new(Vec
::<u8>::new());
39 let mut blob_writer
= DataBlobWriter
::new_compressed(tmp
)?
;
40 blob_writer
.write_all(&test_data
)?
;
42 let raw_data
= blob_writer
.finish()?
.into_inner();
44 println
!("COMPRESSED: {:?}", raw_data
);
45 verify_test_blob(raw_data
)?
;
49 let tmp
= Cursor
::new(Vec
::<u8>::new());
50 let mut blob_writer
= DataBlobWriter
::new_signed(tmp
, &crypt_config
)?
;
51 blob_writer
.write_all(&test_data
)?
;
53 let raw_data
= blob_writer
.finish()?
.into_inner();
55 println
!("SIGNED: {:?}", raw_data
);
56 verify_test_blob(raw_data
)?
;
60 let tmp
= Cursor
::new(Vec
::<u8>::new());
61 let mut blob_writer
= DataBlobWriter
::new_signed_compressed(tmp
, &crypt_config
)?
;
62 blob_writer
.write_all(&test_data
)?
;
64 let raw_data
= blob_writer
.finish()?
.into_inner();
66 println
!("SIGNED COMPR: {:?}", raw_data
);
67 verify_test_blob(raw_data
)?
;
71 let tmp
= Cursor
::new(Vec
::<u8>::new());
72 let mut blob_writer
= DataBlobWriter
::new_encrypted(tmp
, &crypt_config
)?
;
73 blob_writer
.write_all(&test_data
)?
;
75 let raw_data
= blob_writer
.finish()?
.into_inner();
77 println
!("ENCRYPTED: {:?}", raw_data
);
78 verify_test_blob(raw_data
)?
;
82 let tmp
= Cursor
::new(Vec
::<u8>::new());
83 let mut blob_writer
= DataBlobWriter
::new_encrypted_compressed(tmp
, &crypt_config
)?
;
84 blob_writer
.write_all(&test_data
)?
;
86 let raw_data
= blob_writer
.finish()?
.into_inner();
88 println
!("ENCRYPTED COMPR: {:?}", raw_data
);
89 verify_test_blob(raw_data
)?
;