summaryrefslogtreecommitdiff
path: root/test_util/src/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test_util/src/macros.rs')
-rw-r--r--test_util/src/macros.rs86
1 files changed, 86 insertions, 0 deletions
diff --git a/test_util/src/macros.rs b/test_util/src/macros.rs
new file mode 100644
index 000000000..7cfedcc7e
--- /dev/null
+++ b/test_util/src/macros.rs
@@ -0,0 +1,86 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+
+#[macro_export]
+macro_rules! itest(
+($name:ident {$( $key:ident: $value:expr,)*}) => {
+ #[test]
+ fn $name() {
+ let test = $crate::CheckOutputIntegrationTest {
+ $(
+ $key: $value,
+ )*
+ .. Default::default()
+ };
+ let output = test.output();
+ output.assert_exit_code(test.exit_code);
+ if !test.output.is_empty() {
+ assert!(test.output_str.is_none());
+ output.assert_matches_file(test.output);
+ } else {
+ output.assert_matches_text(test.output_str.unwrap_or(""));
+ }
+ }
+}
+);
+
+#[macro_export]
+macro_rules! itest_flaky(
+($name:ident {$( $key:ident: $value:expr,)*}) => {
+ #[flaky_test::flaky_test]
+ fn $name() {
+ let test = $crate::CheckOutputIntegrationTest {
+ $(
+ $key: $value,
+ )*
+ .. Default::default()
+ };
+ let output = test.output();
+ output.assert_exit_code(test.exit_code);
+ if !test.output.is_empty() {
+ assert!(test.output_str.is_none());
+ output.assert_matches_file(test.output);
+ } else {
+ output.assert_matches_text(test.output_str.unwrap_or(""));
+ }
+ }
+}
+);
+
+#[macro_export]
+macro_rules! context(
+({$( $key:ident: $value:expr,)*}) => {
+ $crate::TestContext::create($crate::TestContextOptions {
+ $(
+ $key: $value,
+ )*
+ .. Default::default()
+ })
+}
+);
+
+#[macro_export]
+macro_rules! itest_steps(
+($name:ident {$( $key:ident: $value:expr,)*}) => {
+ #[test]
+ fn $name() {
+ ($crate::CheckOutputIntegrationTestSteps {
+ $(
+ $key: $value,
+ )*
+ .. Default::default()
+ }).run()
+ }
+}
+);
+
+#[macro_export]
+macro_rules! command_step(
+({$( $key:ident: $value:expr,)*}) => {
+ $crate::CheckOutputIntegrationTestCommandStep {
+ $(
+ $key: $value,
+ )*
+ .. Default::default()
+ }
+}
+);