Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32354167
D4165.1765317591.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D4165.1765317591.diff
View Options
diff --git a/services/commtest/tests/backup/create_new_backup.rs b/services/commtest/tests/backup/create_new_backup.rs
new file mode 100644
--- /dev/null
+++ b/services/commtest/tests/backup/create_new_backup.rs
@@ -0,0 +1,72 @@
+#[path = "./backup_utils.rs"]
+mod backup_utils;
+#[path = "../lib/tools.rs"]
+mod tools;
+
+use crate::backup_utils::{
+ proto::create_new_backup_request::Data::*, proto::CreateNewBackupRequest,
+ BackupData, BackupServiceClient,
+};
+
+use tonic::Request;
+
+use crate::tools::generate_nbytes;
+use crate::tools::Error;
+
+pub async fn run(
+ client: &mut BackupServiceClient<tonic::transport::Channel>,
+ backup_data: &BackupData,
+) -> Result<String, Error> {
+ println!("create new backup");
+ let cloned_user_id = backup_data.user_id.clone();
+ let cloned_device_id = backup_data.device_id.clone();
+ let cloned_backup_chunk_sizes = backup_data.backup_item.chunks_sizes.clone();
+ let outbound = async_stream::stream! {
+ println!(" - sending user id");
+ let request = CreateNewBackupRequest {
+ data: Some(UserId(cloned_user_id)),
+ };
+ yield request;
+ println!(" - sending device id");
+ let request = CreateNewBackupRequest {
+ data: Some(DeviceId(cloned_device_id)),
+ };
+ yield request;
+ println!(" - sending key entropy");
+ let request = CreateNewBackupRequest {
+ data: Some(KeyEntropy(vec![65,66,67,68])),
+ };
+ yield request;
+ println!(" - sending data hash");
+ // todo calculate the real hash, this is a mocked value
+ let request = CreateNewBackupRequest {
+ data: Some(NewCompactionHash(vec![68,67,66,65,66])),
+ };
+ yield request;
+ for chunk_size in cloned_backup_chunk_sizes {
+ println!(" - sending data chunk {}", chunk_size);
+ let request = CreateNewBackupRequest {
+ data: Some(NewCompactionChunk(generate_nbytes(chunk_size, None))),
+ };
+ yield request;
+ }
+ };
+
+ let mut backup_id: String = String::new();
+ let response = client.create_new_backup(Request::new(outbound)).await?;
+ let mut inbound = response.into_inner();
+ while let Some(response) = inbound.message().await? {
+ if !response.backup_id.is_empty() {
+ assert!(
+ backup_id.is_empty(),
+ "backup id should be returned only once"
+ );
+ backup_id = response.backup_id;
+ }
+ }
+ assert!(
+ !backup_id.is_empty(),
+ "could not get a backup id from the server"
+ );
+ Ok(backup_id)
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Dec 9, 9:59 PM (18 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5858137
Default Alt Text
D4165.1765317591.diff (2 KB)
Attached To
Mode
D4165: [services] Tests - Add create new backup
Attached
Detach File
Event Timeline
Log In to Comment