Allow more time between thread CPU slices in db_init_outside_future_executor (#5310)
This commit is contained in:
parent
469c471d92
commit
cea622307a
|
@ -76,7 +76,7 @@ const DEFAULT_PROXY_CHANNEL_SIZE: usize = 100;
|
||||||
///
|
///
|
||||||
/// Note that if a test checks that no requests are received, each check has to wait for this
|
/// Note that if a test checks that no requests are received, each check has to wait for this
|
||||||
/// amount of time, so this may affect the test execution time.
|
/// amount of time, so this may affect the test execution time.
|
||||||
const DEFAULT_MAX_REQUEST_DELAY: Duration = Duration::from_millis(25);
|
pub const DEFAULT_MAX_REQUEST_DELAY: Duration = Duration::from_millis(25);
|
||||||
|
|
||||||
/// An internal type representing the item that's sent in the [`broadcast`] channel.
|
/// An internal type representing the item that's sent in the [`broadcast`] channel.
|
||||||
///
|
///
|
||||||
|
|
|
@ -113,7 +113,12 @@
|
||||||
//! export TMPDIR=/path/to/disk/directory
|
//! export TMPDIR=/path/to/disk/directory
|
||||||
//! ```
|
//! ```
|
||||||
|
|
||||||
use std::{collections::HashSet, env, fs, panic, path::PathBuf, time::Duration};
|
use std::{
|
||||||
|
collections::HashSet,
|
||||||
|
env, fs, panic,
|
||||||
|
path::PathBuf,
|
||||||
|
time::{Duration, Instant},
|
||||||
|
};
|
||||||
|
|
||||||
use color_eyre::{
|
use color_eyre::{
|
||||||
eyre::{eyre, Result, WrapErr},
|
eyre::{eyre, Result, WrapErr},
|
||||||
|
@ -152,6 +157,13 @@ use common::{
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/// The maximum amount of time that we allow the creation of a future to block the `tokio` executor.
|
||||||
|
///
|
||||||
|
/// This should be larger than the amount of time between thread time slices on a busy test VM.
|
||||||
|
///
|
||||||
|
/// This limit only applies to some tests.
|
||||||
|
pub const MAX_ASYNC_BLOCKING_TIME: Duration = zebra_test::mock_service::DEFAULT_MAX_REQUEST_DELAY;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn generate_no_args() -> Result<()> {
|
fn generate_no_args() -> Result<()> {
|
||||||
let _init_guard = zebra_test::init();
|
let _init_guard = zebra_test::init();
|
||||||
|
@ -315,8 +327,6 @@ fn start_args() -> Result<()> {
|
||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn db_init_outside_future_executor() -> Result<()> {
|
async fn db_init_outside_future_executor() -> Result<()> {
|
||||||
use std::time::{Duration, Instant};
|
|
||||||
|
|
||||||
let _init_guard = zebra_test::init();
|
let _init_guard = zebra_test::init();
|
||||||
let config = default_test_config()?;
|
let config = default_test_config()?;
|
||||||
|
|
||||||
|
@ -328,7 +338,7 @@ async fn db_init_outside_future_executor() -> Result<()> {
|
||||||
// will wait indefinitely for blocking operation to finish once started
|
// will wait indefinitely for blocking operation to finish once started
|
||||||
let block_duration = start.elapsed();
|
let block_duration = start.elapsed();
|
||||||
assert!(
|
assert!(
|
||||||
block_duration < Duration::from_millis(5),
|
block_duration <= MAX_ASYNC_BLOCKING_TIME,
|
||||||
"futures executor was blocked longer than expected ({:?})",
|
"futures executor was blocked longer than expected ({:?})",
|
||||||
block_duration,
|
block_duration,
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue