mirror of
https://github.com/chatmail/core.git
synced 2026-05-23 00:36:32 +03:00
try to benchmark get_fresh_msg_cnt()
This commit is contained in:
27
src/chat.rs
27
src/chat.rs
@@ -2886,6 +2886,7 @@ pub(crate) async fn add_info_msg(context: &Context, chat_id: ChatId, text: impl
|
|||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
use crate::chat;
|
||||||
use crate::contact::Contact;
|
use crate::contact::Contact;
|
||||||
use crate::test_utils::*;
|
use crate::test_utils::*;
|
||||||
|
|
||||||
@@ -3548,4 +3549,30 @@ mod tests {
|
|||||||
chat_id.set_draft(&t.ctx, Some(&mut msg)).await;
|
chat_id.set_draft(&t.ctx, Some(&mut msg)).await;
|
||||||
assert!(!chat_id.parent_is_encrypted(&t.ctx).await.unwrap());
|
assert!(!chat_id.parent_is_encrypted(&t.ctx).await.unwrap());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[async_std::test]
|
||||||
|
async fn test_get_fresh_msg_cnt() {
|
||||||
|
let t = TestContext::new().await;
|
||||||
|
// create 50 chats with 1k messages each
|
||||||
|
let mut chat_ids = Vec::new();
|
||||||
|
for _i in 1..50 {
|
||||||
|
let chat_id = create_group_chat(&t.ctx, VerifiedStatus::Unverified, "foo")
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
for _i in 1..1000 {
|
||||||
|
let mut msg = Message::new(Viewtype::Text);
|
||||||
|
msg.text = Some("message text".to_string());
|
||||||
|
chat::send_msg(&t.ctx, chat_id, &mut msg)
|
||||||
|
.await
|
||||||
|
.unwrap_or_default();
|
||||||
|
}
|
||||||
|
chat_ids.push(chat_id);
|
||||||
|
}
|
||||||
|
// load all chats 20k times
|
||||||
|
for _i in 1..20_000 {
|
||||||
|
for chat_id in chat_ids.iter() {
|
||||||
|
chat_id.get_fresh_msg_cnt(&t.ctx).await;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user