-
Notifications
You must be signed in to change notification settings - Fork 236
/
Copy pathbackground_task.rs
45 lines (42 loc) · 1.55 KB
/
background_task.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use binaryninja::background_task::*;
use binaryninja::headless::Session;
#[test]
fn test_background_task_registered() {
let _session = Session::new().expect("Failed to initialize session");
let task_progress = "test registered";
let task = BackgroundTask::new(task_progress, false);
BackgroundTask::running_tasks()
.iter()
.find(|t| t.progress_text().as_str() == task_progress)
.expect("Task not running");
task.finish();
let still_running = BackgroundTask::running_tasks()
.iter()
.find(|t| t.progress_text().as_str() == task_progress)
.is_some();
assert!(!still_running, "Task still running");
}
#[test]
fn test_background_task_cancellable() {
let _session = Session::new().expect("Failed to initialize session");
let task_progress = "test cancellable";
let task = BackgroundTask::new(task_progress, false);
BackgroundTask::running_tasks()
.iter()
.find(|t| t.progress_text().as_str() == task_progress)
.expect("Task not running");
task.cancel();
assert!(task.is_cancelled());
task.finish();
}
#[test]
fn test_background_task_progress() {
let _session = Session::new().expect("Failed to initialize session");
let task = BackgroundTask::new("test progress", false);
let first_progress = task.progress_text().to_string();
assert_eq!(first_progress, "test progress");
task.set_progress_text("new progress");
let second_progress = task.progress_text().to_string();
assert_eq!(second_progress, "new progress");
task.finish();
}