Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
More tests
  • Loading branch information
bkchr committed Feb 1, 2021
commit e2aa705788e9bd85e370af165ee9989d8c01b05f
46 changes: 23 additions & 23 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion client/service/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,6 @@ substrate-test-runtime = { version = "2.0.0", path = "../../test-utils/runtime/"
sp-consensus-babe = { version = "0.8.0", path = "../../primitives/consensus/babe" }
grandpa = { version = "0.8.0", package = "sc-finality-grandpa", path = "../finality-grandpa" }
grandpa-primitives = { version = "2.0.0", package = "sp-finality-grandpa", path = "../../primitives/finality-grandpa" }
tokio = { version = "0.2", default-features = false }
tokio = { version = "0.2.25", default-features = false }
async-std = { version = "1.6.5", default-features = false }
tracing-subscriber = "0.2.15"
23 changes: 17 additions & 6 deletions client/service/src/task_manager/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ use futures::{future::FutureExt, pin_mut, select};
use parking_lot::Mutex;
use std::{any::Any, sync::Arc, time::Duration};
use tracing_subscriber::{layer::{SubscriberExt, Context}, Layer};
use tracing::{subscriber::Subscriber, span::{Attributes, Id, Record}, event::Event};
use tracing::{subscriber::Subscriber, span::{Attributes, Id, Record, Span}, event::Event};
use sc_telemetry::TelemetrySpan;

#[derive(Clone, Debug)]
Expand Down Expand Up @@ -359,7 +359,7 @@ fn setup_subscriber() -> (
#[test]
fn telemetry_span_is_forwarded_to_task() {
let (subscriber, spans_entered) = setup_subscriber();
let _sub_guard = tracing::subscriber::set_default(subscriber);
let _sub_guard = tracing::subscriber::set_global_default(subscriber);

let telemetry_span = TelemetrySpan::new();

Expand All @@ -372,24 +372,35 @@ fn telemetry_span_is_forwarded_to_task() {
let task_manager = TaskManager::new(task_executor, None, Some(telemetry_span.clone())).unwrap();

let (sender, receiver) = futures::channel::oneshot::channel();
let spawn_handle = task_manager.spawn_handle();

let span = span.clone();
task_manager.spawn_handle().spawn(
"test",
async move {
sender.send(()).unwrap();
assert_eq!(span, Span::current());
spawn_handle.spawn("test-nested", async move {
assert_eq!(span, Span::current());
sender.send(()).unwrap();
}.boxed());
}.boxed(),
);

// We need to leave exit the span here. If tokio is not running with multithreading, this
// would lead to duplicate spans being "active" and forwarding the wrong one.
drop(_enter);
runtime.block_on(receiver).unwrap();
runtime.block_on(task_manager.clean_shutdown());
drop(runtime);

let spans = spans_entered.lock();
// We entered the telemetry span and the "test" in the future and the "test" span outside
// of the future. So, we should have recorded 3 spans.
assert_eq!(3, spans.len());
// We entered the telemetry span and the "test" in the future, the nested future and
// the "test" span outside of the future. So, we should have recorded 3 spans.
assert_eq!(5, spans.len());

assert_eq!(spans[0], "test");
assert_eq!(spans[1], telemetry_span.span().metadata().unwrap().name());
assert_eq!(spans[2], "test");
assert_eq!(spans[3], telemetry_span.span().metadata().unwrap().name());
assert_eq!(spans[4], "test");
}