summaryrefslogtreecommitdiffstats
path: root/vendor/snapbox-macros/src
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/snapbox-macros/src')
-rw-r--r--vendor/snapbox-macros/src/lib.rs51
1 files changed, 51 insertions, 0 deletions
diff --git a/vendor/snapbox-macros/src/lib.rs b/vendor/snapbox-macros/src/lib.rs
new file mode 100644
index 0000000..1bc98f7
--- /dev/null
+++ b/vendor/snapbox-macros/src/lib.rs
@@ -0,0 +1,51 @@
+#![cfg_attr(docsrs, feature(doc_auto_cfg))]
+
+#[cfg(feature = "color")]
+pub use anstream::eprint;
+#[cfg(feature = "color")]
+pub use anstream::eprintln;
+#[cfg(not(feature = "color"))]
+pub use std::eprint;
+#[cfg(not(feature = "color"))]
+pub use std::eprintln;
+
+/// Feature-flag controlled additional test debug information
+#[cfg(feature = "debug")]
+#[macro_export]
+macro_rules! debug {
+ ($($arg:tt)*) => ({
+ $crate::eprint!("[{:>w$}] \t", module_path!(), w = 28);
+ $crate::eprintln!($($arg)*);
+ })
+}
+
+/// Feature-flag controlled additional test debug information
+#[cfg(not(feature = "debug"))]
+#[macro_export]
+macro_rules! debug {
+ ($($arg:tt)*) => {};
+}
+
+/// The absolute path to a binary target's executable.
+///
+/// The `bin_target_name` is the name of the binary
+/// target, exactly as-is.
+///
+/// **NOTE:** This is only set when building an integration test or benchmark.
+///
+/// ## Example
+///
+/// ```rust,no_run
+/// #[test]
+/// fn cli_tests() {
+/// trycmd::TestCases::new()
+/// .default_bin_path(trycmd::cargo_bin!("bin-fixture"))
+/// .case("tests/cmd/*.trycmd");
+/// }
+/// ```
+#[macro_export]
+macro_rules! cargo_bin {
+ ($bin_target_name:expr) => {
+ ::std::path::Path::new(env!(concat!("CARGO_BIN_EXE_", $bin_target_name)))
+ };
+}