Page MenuHomePhabricator

D4637.id14930.diff
No OneTemporary

D4637.id14930.diff

diff --git a/services/commtest/tests/backup_performance_test.rs b/services/commtest/tests/backup_performance_test.rs
--- a/services/commtest/tests/backup_performance_test.rs
+++ b/services/commtest/tests/backup_performance_test.rs
@@ -1,17 +1,26 @@
#[path = "./backup/backup_utils.rs"]
mod backup_utils;
+#[path = "./backup/create_new_backup.rs"]
+mod create_new_backup;
#[path = "./lib/tools.rs"]
mod tools;
use bytesize::ByteSize;
use std::env;
+use std::sync::mpsc::channel;
+use tokio::runtime::Runtime;
use tools::Error;
-use backup_utils::{BackupData, Item};
+use backup_utils::{BackupData, BackupServiceClient, Item};
#[tokio::test]
async fn backup_performance_test() -> Result<(), Error> {
+ let port = env::var("COMM_SERVICES_PORT_BACKUP")
+ .expect("port env var expected but not received");
+ let client =
+ BackupServiceClient::connect(format!("http://localhost:{}", port)).await?;
+
let number_of_threads_str: String =
env::var("COMM_NUMBER_OF_THREADS").unwrap();
let mut number_of_threads = num_cpus::get();
@@ -47,8 +56,49 @@
});
}
+ let rt = Runtime::new().unwrap();
tokio::task::spawn_blocking(move || {
// CREATE NEW BACKUP
+ rt.block_on(async {
+ println!("performing CREATE NEW BACKUP operations");
+ let mut handlers = vec![];
+ let (sender, receiver) = channel::<(usize, String)>();
+ for (i, item) in backup_data.iter().enumerate() {
+ let item_cloned = item.clone();
+ let mut client_cloned = client.clone();
+ let sender_cloned = sender.clone();
+ handlers.push(tokio::spawn(async move {
+ let id = create_new_backup::run(&mut client_cloned, &item_cloned)
+ .await
+ .unwrap();
+ assert!(
+ !id.is_empty(),
+ "backup id should not be empty after creating a new backup"
+ );
+ sender_cloned.send((i, id)).unwrap();
+ }));
+ }
+ drop(sender);
+
+ for handler in handlers {
+ handler.await.unwrap();
+ }
+ for data in receiver {
+ println!("received: {:?}", data);
+ let (index, id) = data;
+ backup_data[index].backup_item.id = id;
+ }
+ });
+
+ // check if backup IDs are properly set
+ for (i, item) in backup_data.iter().enumerate() {
+ assert!(
+ !item.backup_item.id.is_empty(),
+ "missing backup id for index {}",
+ i
+ );
+ }
+
// SEND LOG
// ADD ATTACHMENTS
// PULL BACKUP

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 7, 7:49 AM (21 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2252805
Default Alt Text
D4637.id14930.diff (2 KB)

Event Timeline