summaryrefslogtreecommitdiffstats
path: root/third_party/rust/tracing-attributes/tests/names.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--third_party/rust/tracing-attributes/tests/names.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/third_party/rust/tracing-attributes/tests/names.rs b/third_party/rust/tracing-attributes/tests/names.rs
new file mode 100644
index 0000000000..d97dece9a1
--- /dev/null
+++ b/third_party/rust/tracing-attributes/tests/names.rs
@@ -0,0 +1,63 @@
+use tracing::subscriber::with_default;
+use tracing_attributes::instrument;
+use tracing_mock::*;
+
+#[instrument]
+fn default_name() {}
+
+#[instrument(name = "my_name")]
+fn custom_name() {}
+
+// XXX: it's weird that we support both of these forms, but apparently we
+// managed to release a version that accepts both syntax, so now we have to
+// support it! yay!
+#[instrument("my_other_name")]
+fn custom_name_no_equals() {}
+
+#[test]
+fn default_name_test() {
+ let (subscriber, handle) = subscriber::mock()
+ .new_span(span::mock().named("default_name"))
+ .enter(span::mock().named("default_name"))
+ .exit(span::mock().named("default_name"))
+ .done()
+ .run_with_handle();
+
+ with_default(subscriber, || {
+ default_name();
+ });
+
+ handle.assert_finished();
+}
+
+#[test]
+fn custom_name_test() {
+ let (subscriber, handle) = subscriber::mock()
+ .new_span(span::mock().named("my_name"))
+ .enter(span::mock().named("my_name"))
+ .exit(span::mock().named("my_name"))
+ .done()
+ .run_with_handle();
+
+ with_default(subscriber, || {
+ custom_name();
+ });
+
+ handle.assert_finished();
+}
+
+#[test]
+fn custom_name_no_equals_test() {
+ let (subscriber, handle) = subscriber::mock()
+ .new_span(span::mock().named("my_other_name"))
+ .enter(span::mock().named("my_other_name"))
+ .exit(span::mock().named("my_other_name"))
+ .done()
+ .run_with_handle();
+
+ with_default(subscriber, || {
+ custom_name_no_equals();
+ });
+
+ handle.assert_finished();
+}