mirror of
https://gitlab.steamos.cloud/holo/steamos-manager.git
synced 2025-07-13 18:02:00 -04:00
ds_inhibit: Use tokio::time::sleep instead of std:🧵:sleep, fix up tests
This commit is contained in:
parent
95671ebce7
commit
d40562b0dc
1 changed files with 12 additions and 15 deletions
|
@ -4,9 +4,9 @@ use inotify::{Event, EventMask, EventStream, Inotify, WatchDescriptor, WatchMask
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::ffi::OsString;
|
use std::ffi::OsString;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::thread::sleep;
|
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use tokio::fs::{self, read_dir, read_link};
|
use tokio::fs::{self, read_dir, read_link};
|
||||||
|
use tokio::time::sleep;
|
||||||
use tokio_stream::StreamExt;
|
use tokio_stream::StreamExt;
|
||||||
use tracing::{debug, error, info, warn};
|
use tracing::{debug, error, info, warn};
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ impl Inhibitor {
|
||||||
};
|
};
|
||||||
debug!("New device {} found", path.display());
|
debug!("New device {} found", path.display());
|
||||||
let path = crate::path("/dev").join(path);
|
let path = crate::path("/dev").join(path);
|
||||||
sleep(QSEC); // Wait a quarter second for nodes to enumerate
|
sleep(QSEC).await; // Wait a quarter second for nodes to enumerate
|
||||||
if let Err(e) = self.watch(path.as_path()).await {
|
if let Err(e) = self.watch(path.as_path()).await {
|
||||||
error!("Encountered error attempting to watch: {e}");
|
error!("Encountered error attempting to watch: {e}");
|
||||||
return Err(e);
|
return Err(e);
|
||||||
|
@ -299,12 +299,9 @@ mod test {
|
||||||
use crate::testing;
|
use crate::testing;
|
||||||
use std::fs::{create_dir_all, read_to_string, remove_file, write, File};
|
use std::fs::{create_dir_all, read_to_string, remove_file, write, File};
|
||||||
use std::os::unix::fs::symlink;
|
use std::os::unix::fs::symlink;
|
||||||
use tokio::time::sleep;
|
|
||||||
|
|
||||||
async fn nyield(times: u32) {
|
async fn nyield(time: u64) {
|
||||||
for _ in 0..times {
|
sleep(Duration::from_millis(time)).await;
|
||||||
sleep(Duration::from_millis(1)).await;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
|
@ -499,7 +496,7 @@ mod test {
|
||||||
inhibitor.run().await.expect("run");
|
inhibitor.run().await.expect("run");
|
||||||
});
|
});
|
||||||
|
|
||||||
nyield(1).await;
|
nyield(5).await;
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
||||||
"0\n"
|
"0\n"
|
||||||
|
@ -507,7 +504,7 @@ mod test {
|
||||||
|
|
||||||
symlink(hid.hidraw(), path.join("proc/1/fd/3")).expect("symlink");
|
symlink(hid.hidraw(), path.join("proc/1/fd/3")).expect("symlink");
|
||||||
let f = File::open(hid.hidraw()).expect("hidraw");
|
let f = File::open(hid.hidraw()).expect("hidraw");
|
||||||
nyield(3).await;
|
nyield(10).await;
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
||||||
"1\n"
|
"1\n"
|
||||||
|
@ -515,7 +512,7 @@ mod test {
|
||||||
|
|
||||||
drop(f);
|
drop(f);
|
||||||
remove_file(path.join("proc/1/fd/3")).expect("rm");
|
remove_file(path.join("proc/1/fd/3")).expect("rm");
|
||||||
nyield(1).await;
|
nyield(5).await;
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
||||||
"0\n"
|
"0\n"
|
||||||
|
@ -543,13 +540,13 @@ mod test {
|
||||||
inhibitor.run().await.expect("run");
|
inhibitor.run().await.expect("run");
|
||||||
});
|
});
|
||||||
|
|
||||||
nyield(1).await;
|
nyield(5).await;
|
||||||
assert!(read_to_string(sys_base.join("input/input0/inhibited")).is_err());
|
assert!(read_to_string(sys_base.join("input/input0/inhibited")).is_err());
|
||||||
|
|
||||||
File::create(hid.hidraw()).expect("hidraw");
|
File::create(hid.hidraw()).expect("hidraw");
|
||||||
symlink(hid.hidraw(), path.join("proc/1/fd/3")).expect("symlink");
|
symlink(hid.hidraw(), path.join("proc/1/fd/3")).expect("symlink");
|
||||||
let _f = File::open(hid.hidraw()).expect("hidraw");
|
let _f = File::open(hid.hidraw()).expect("hidraw");
|
||||||
nyield(4).await;
|
nyield(300).await;
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
||||||
"1\n"
|
"1\n"
|
||||||
|
@ -576,14 +573,14 @@ mod test {
|
||||||
inhibitor.run().await.expect("run");
|
inhibitor.run().await.expect("run");
|
||||||
});
|
});
|
||||||
|
|
||||||
nyield(3).await;
|
nyield(5).await;
|
||||||
assert!(read_to_string(sys_base.join("input/input0/inhibited")).is_err());
|
assert!(read_to_string(sys_base.join("input/input0/inhibited")).is_err());
|
||||||
|
|
||||||
File::create(hid.hidraw()).expect("hidraw");
|
File::create(hid.hidraw()).expect("hidraw");
|
||||||
nyield(3).await;
|
nyield(50).await;
|
||||||
symlink(hid.hidraw(), path("/proc/1/fd/3")).expect("symlink");
|
symlink(hid.hidraw(), path("/proc/1/fd/3")).expect("symlink");
|
||||||
let _f = File::open(hid.hidraw()).expect("hidraw");
|
let _f = File::open(hid.hidraw()).expect("hidraw");
|
||||||
nyield(3).await;
|
nyield(250).await;
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
read_to_string(sys_base.join("input/input0/inhibited")).expect("inhibited"),
|
||||||
"1\n"
|
"1\n"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue