From 72241ddc76e3ffbbb86e84e370492ea3c03d11cd Mon Sep 17 00:00:00 2001 From: Ed Page Date: Wed, 15 May 2024 11:46:21 -0500 Subject: [PATCH] refactor: Move trycmd into a folder --- Cargo.toml | 69 ------------------- README.md | 56 +-------------- CHANGELOG.md => crates/trycmd/CHANGELOG.md | 0 crates/trycmd/Cargo.toml | 68 ++++++++++++++++++ crates/trycmd/LICENSE-APACHE | 1 + crates/trycmd/LICENSE-MIT | 1 + crates/trycmd/README.md | 55 +++++++++++++++ schema.json => crates/trycmd/schema.json | 0 {src => crates/trycmd/src}/bin/bin-fixture.rs | 0 .../trycmd/src}/bin/trycmd-schema.rs | 0 {src => crates/trycmd/src}/cargo.rs | 0 {src => crates/trycmd/src}/cases.rs | 0 {src => crates/trycmd/src}/lib.rs | 0 {src => crates/trycmd/src}/registry.rs | 0 {src => crates/trycmd/src}/runner.rs | 0 {src => crates/trycmd/src}/schema.rs | 0 {src => crates/trycmd/src}/spec.rs | 0 {tests => crates/trycmd/tests}/cli_tests.rs | 0 {tests => crates/trycmd/tests}/cmd/basic.toml | 0 .../trycmd/tests}/cmd/basic.trycmd | 0 {tests => crates/trycmd/tests}/cmd/code.toml | 0 .../trycmd/tests}/cmd/cwd-base.in/file.txt | 0 .../trycmd/tests}/cmd/cwd-base.in/foo/.keep | 0 .../trycmd/tests}/cmd/cwd-base.stderr | 0 .../trycmd/tests}/cmd/cwd-base.toml | 0 .../tests}/cmd/diff_subset.in/dir/.keep | 0 .../tests}/cmd/diff_subset.in/dir/ignore | 0 .../trycmd/tests}/cmd/diff_subset.in/file.txt | 0 .../trycmd/tests}/cmd/diff_subset.in/ignore | 0 .../tests}/cmd/diff_subset.out/dir/.keep | 0 .../tests}/cmd/diff_subset.out/file.txt | 0 .../trycmd/tests}/cmd/diff_subset.toml | 0 .../trycmd/tests}/cmd/failure.toml | 0 .../trycmd/tests}/cmd/ignored_bin.trycmd | 0 .../trycmd/tests}/cmd/infer-cwd.in/file.txt | 0 .../trycmd/tests}/cmd/infer-cwd.stderr | 0 .../trycmd/tests}/cmd/infer-cwd.toml | 0 .../trycmd/tests}/cmd/large.stdout | 0 {tests => crates/trycmd/tests}/cmd/large.toml | 0 .../trycmd/tests}/cmd/multistep.out/file.txt | 0 .../trycmd/tests}/cmd/multistep.trycmd | 0 .../trycmd/tests}/cmd/normalize.out/file.txt | 0 .../trycmd/tests}/cmd/normalize.stderr | 0 .../trycmd/tests}/cmd/normalize.stdout | 0 .../trycmd/tests}/cmd/normalize.toml | 0 .../trycmd/tests}/cmd/sandbox.out/file.txt | 0 .../trycmd/tests}/cmd/sandbox.stderr | 0 .../trycmd/tests}/cmd/sandbox.toml | 0 .../tests}/cmd/stderr-to-stdout-large.stdout | 0 .../tests}/cmd/stderr-to-stdout-large.toml | 0 .../trycmd/tests}/cmd/stderr-to-stdout.stderr | 0 .../trycmd/tests}/cmd/stderr-to-stdout.stdout | 0 .../trycmd/tests}/cmd/stderr-to-stdout.toml | 0 .../trycmd/tests}/cmd/stderr.stderr | 0 .../trycmd/tests}/cmd/stderr.toml | 0 .../trycmd/tests}/cmd/stderr_toml.toml | 0 .../trycmd/tests}/cmd/stdout.stdout | 0 .../trycmd/tests}/cmd/stdout.toml | 0 .../trycmd/tests}/cmd/stdout.trycmd | 0 .../trycmd/tests}/cmd/subst-cwd.in/file.txt | 0 .../trycmd/tests}/cmd/subst-cwd.in/foo/.keep | 0 .../trycmd/tests}/cmd/subst-cwd.stderr | 0 .../trycmd/tests}/cmd/subst-cwd.toml | 0 .../trycmd/tests}/cmd/symlink-target/file.txt | 0 {tests => crates/trycmd/tests}/cmd/symlink.in | 0 .../trycmd/tests}/cmd/symlink.stderr | 0 .../trycmd/tests}/cmd/symlink.toml | 0 .../trycmd/tests}/cmd/timeout.toml | 0 .../trycmd/tests}/cmd/unresolved.trycmd | 0 .../trycmd/tests}/cmd/vars.trycmd | 0 .../trycmd/tests}/example_tests.rs | 0 .../trycmd/tests}/testsuite/main.rs | 0 .../trycmd/tests}/testsuite/schema.rs | 0 73 files changed, 126 insertions(+), 124 deletions(-) mode change 100644 => 120000 README.md rename CHANGELOG.md => crates/trycmd/CHANGELOG.md (100%) create mode 100644 crates/trycmd/Cargo.toml create mode 120000 crates/trycmd/LICENSE-APACHE create mode 120000 crates/trycmd/LICENSE-MIT create mode 100644 crates/trycmd/README.md rename schema.json => crates/trycmd/schema.json (100%) rename {src => crates/trycmd/src}/bin/bin-fixture.rs (100%) rename {src => crates/trycmd/src}/bin/trycmd-schema.rs (100%) rename {src => crates/trycmd/src}/cargo.rs (100%) rename {src => crates/trycmd/src}/cases.rs (100%) rename {src => crates/trycmd/src}/lib.rs (100%) rename {src => crates/trycmd/src}/registry.rs (100%) rename {src => crates/trycmd/src}/runner.rs (100%) rename {src => crates/trycmd/src}/schema.rs (100%) rename {src => crates/trycmd/src}/spec.rs (100%) rename {tests => crates/trycmd/tests}/cli_tests.rs (100%) rename {tests => crates/trycmd/tests}/cmd/basic.toml (100%) rename {tests => crates/trycmd/tests}/cmd/basic.trycmd (100%) rename {tests => crates/trycmd/tests}/cmd/code.toml (100%) rename {tests => crates/trycmd/tests}/cmd/cwd-base.in/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/cwd-base.in/foo/.keep (100%) rename {tests => crates/trycmd/tests}/cmd/cwd-base.stderr (100%) rename {tests => crates/trycmd/tests}/cmd/cwd-base.toml (100%) rename {tests => crates/trycmd/tests}/cmd/diff_subset.in/dir/.keep (100%) rename {tests => crates/trycmd/tests}/cmd/diff_subset.in/dir/ignore (100%) rename {tests => crates/trycmd/tests}/cmd/diff_subset.in/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/diff_subset.in/ignore (100%) rename {tests => crates/trycmd/tests}/cmd/diff_subset.out/dir/.keep (100%) rename {tests => crates/trycmd/tests}/cmd/diff_subset.out/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/diff_subset.toml (100%) rename {tests => crates/trycmd/tests}/cmd/failure.toml (100%) rename {tests => crates/trycmd/tests}/cmd/ignored_bin.trycmd (100%) rename {tests => crates/trycmd/tests}/cmd/infer-cwd.in/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/infer-cwd.stderr (100%) rename {tests => crates/trycmd/tests}/cmd/infer-cwd.toml (100%) rename {tests => crates/trycmd/tests}/cmd/large.stdout (100%) rename {tests => crates/trycmd/tests}/cmd/large.toml (100%) rename {tests => crates/trycmd/tests}/cmd/multistep.out/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/multistep.trycmd (100%) rename {tests => crates/trycmd/tests}/cmd/normalize.out/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/normalize.stderr (100%) rename {tests => crates/trycmd/tests}/cmd/normalize.stdout (100%) rename {tests => crates/trycmd/tests}/cmd/normalize.toml (100%) rename {tests => crates/trycmd/tests}/cmd/sandbox.out/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/sandbox.stderr (100%) rename {tests => crates/trycmd/tests}/cmd/sandbox.toml (100%) rename {tests => crates/trycmd/tests}/cmd/stderr-to-stdout-large.stdout (100%) rename {tests => crates/trycmd/tests}/cmd/stderr-to-stdout-large.toml (100%) rename {tests => crates/trycmd/tests}/cmd/stderr-to-stdout.stderr (100%) rename {tests => crates/trycmd/tests}/cmd/stderr-to-stdout.stdout (100%) rename {tests => crates/trycmd/tests}/cmd/stderr-to-stdout.toml (100%) rename {tests => crates/trycmd/tests}/cmd/stderr.stderr (100%) rename {tests => crates/trycmd/tests}/cmd/stderr.toml (100%) rename {tests => crates/trycmd/tests}/cmd/stderr_toml.toml (100%) rename {tests => crates/trycmd/tests}/cmd/stdout.stdout (100%) rename {tests => crates/trycmd/tests}/cmd/stdout.toml (100%) rename {tests => crates/trycmd/tests}/cmd/stdout.trycmd (100%) rename {tests => crates/trycmd/tests}/cmd/subst-cwd.in/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/subst-cwd.in/foo/.keep (100%) rename {tests => crates/trycmd/tests}/cmd/subst-cwd.stderr (100%) rename {tests => crates/trycmd/tests}/cmd/subst-cwd.toml (100%) rename {tests => crates/trycmd/tests}/cmd/symlink-target/file.txt (100%) rename {tests => crates/trycmd/tests}/cmd/symlink.in (100%) rename {tests => crates/trycmd/tests}/cmd/symlink.stderr (100%) rename {tests => crates/trycmd/tests}/cmd/symlink.toml (100%) rename {tests => crates/trycmd/tests}/cmd/timeout.toml (100%) rename {tests => crates/trycmd/tests}/cmd/unresolved.trycmd (100%) rename {tests => crates/trycmd/tests}/cmd/vars.trycmd (100%) rename {tests => crates/trycmd/tests}/example_tests.rs (100%) rename {tests => crates/trycmd/tests}/testsuite/main.rs (100%) rename {tests => crates/trycmd/tests}/testsuite/schema.rs (100%) diff --git a/Cargo.toml b/Cargo.toml index b7f46e5d..1dcd99af 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -87,72 +87,3 @@ let_and_return = "allow" # sometimes good to name what you are returning # Remove these later: assigning_clones = "allow" - -[package] -name = "trycmd" -version = "0.15.2" -description = "Snapshot testing for a herd of CLI tests" -authors = ["Ed Page "] -repository = "https://github.com/assert-rs/trycmd.git" -homepage = "https://github.com/assert-rs/trycmd" -documentation = "http://docs.rs/trycmd/" -readme = "README.md" -categories = ["development-tools::testing"] -keywords = ["cli", "test", "assert", "command", "duct"] -license.workspace = true -edition.workspace = true -rust-version.workspace = true -include.workspace = true - -[package.metadata.docs.rs] -all-features = true -rustdoc-args = ["--cfg", "docsrs"] -cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] - -[package.metadata.release] -pre-release-replacements = [ - {file="CHANGELOG.md", search="Unreleased", replace="{{version}}", min=1}, - {file="CHANGELOG.md", search="\\.\\.\\.HEAD", replace="...{{tag_name}}", exactly=1}, - {file="CHANGELOG.md", search="ReleaseDate", replace="{{date}}", min=1}, - {file="CHANGELOG.md", search="", replace="\n## [Unreleased] - ReleaseDate\n", exactly=1}, - {file="CHANGELOG.md", search="", replace="\n[Unreleased]: https://github.com/assert-rs/trycmd/compare/{{tag_name}}...HEAD", exactly=1}, -] - -[features] -default = ["color-auto", "filesystem", "diff"] -color = ["snapbox/color", "dep:anstream"] -color-auto = ["snapbox/color-auto"] -diff = ["snapbox/diff"] -filesystem = ["snapbox/path"] - -schema = ["dep:schemars", "dep:serde_json"] -examples = ["snapbox/examples"] -debug = ["snapbox/debug"] - -[[bin]] -name = "bin-fixture" - -[[bin]] -name = "trycmd-schema" -required-features = ["schema"] - -[dependencies] -automod = "1.0.14" -snapbox = { path = "crates/snapbox", version = "0.5.10", default-features = false, features = ["cmd"] } -anstream = { version = "0.6.7", optional = true } - -glob = "0.3.0" -rayon = "1.5.1" - -serde = { version = "1.0", features = ["derive"] } -shlex = "1.1.0" -humantime = "2" -humantime-serde = "1" -toml_edit = { version = "0.19.14", features = ["serde"] } -escargot = { version = "0.5.7", optional = true } - -schemars = { version = "0.8.3", features = ["preserve_order"], optional = true } -serde_json = { version = "1.0", optional = true } - -[lints] -workspace = true diff --git a/README.md b/README.md deleted file mode 100644 index 7e8e7037..00000000 --- a/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# trycmd - -> Treat your tests like cattle, instead of [pets](https://docs.rs/snapbox) - -[![Documentation](https://img.shields.io/badge/docs-master-blue.svg)][Documentation] -![License](https://img.shields.io/crates/l/trycmd.svg) -[![Crates Status](https://img.shields.io/crates/v/trycmd.svg)][Crates.io] - -`trycmd` is a test harness that will enumerate test case files and run them to verify the -results, taking inspiration from -[trybuild](https://crates.io/crates/trybuild) and [cram](https://bitheap.org/cram/). - -## Example - -To create a minimal setup, create a `tests/cli_tests.rs` with -```rust,no_run -#[test] -fn cli_tests() { - trycmd::TestCases::new() - .case("tests/cmd/*.toml") - .case("README.md"); -} -``` -and write out your test cases in `.toml` files along with examples in your `README.md`. - -Run this with `cargo test` like normal. `TestCases` will enumerate all test case files and -run the contained commands, verifying they run as expected. - -See the [docs](http://docs.rs/trycmd) for more. - -## Users - -- [typos](https://github.com/crate-ci/typos) (source code spell checker) - - See [port from `assert_cmd`](https://github.com/crate-ci/typos/compare/a8ae8a5..cdfdc4084c928423211c6a80acbd24dbed7108f6) -- [cargo-edit](https://github.com/killercup/cargo-edit) (`Cargo.toml` editor) -- [clap](https://github.com/clap-rs/clap/) (CLI parser) to test examples - -## License - -Licensed under either of - -* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or ) -* MIT license ([LICENSE-MIT](LICENSE-MIT) or ) - -at your option. - -### Contribution - -Unless you explicitly state otherwise, any contribution intentionally -submitted for inclusion in the work by you, as defined in the Apache-2.0 -license, shall be dual licensed as above, without any additional terms or -conditions. - -[Crates.io]: https://crates.io/crates/trycmd -[Documentation]: https://docs.rs/trycmd diff --git a/README.md b/README.md new file mode 120000 index 00000000..c0a2fac8 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +crates/snapbox/README.md \ No newline at end of file diff --git a/CHANGELOG.md b/crates/trycmd/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to crates/trycmd/CHANGELOG.md diff --git a/crates/trycmd/Cargo.toml b/crates/trycmd/Cargo.toml new file mode 100644 index 00000000..1b23ca51 --- /dev/null +++ b/crates/trycmd/Cargo.toml @@ -0,0 +1,68 @@ +[package] +name = "trycmd" +version = "0.15.2" +description = "Snapshot testing for a herd of CLI tests" +authors = ["Ed Page "] +repository = "https://github.com/assert-rs/trycmd.git" +homepage = "https://github.com/assert-rs/trycmd" +documentation = "http://docs.rs/trycmd/" +readme = "README.md" +categories = ["development-tools::testing"] +keywords = ["cli", "test", "assert", "command", "duct"] +license.workspace = true +edition.workspace = true +rust-version.workspace = true +include.workspace = true + +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] +cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples"] + +[package.metadata.release] +pre-release-replacements = [ + {file="CHANGELOG.md", search="Unreleased", replace="{{version}}", min=1}, + {file="CHANGELOG.md", search="\\.\\.\\.HEAD", replace="...{{tag_name}}", exactly=1}, + {file="CHANGELOG.md", search="ReleaseDate", replace="{{date}}", min=1}, + {file="CHANGELOG.md", search="", replace="\n## [Unreleased] - ReleaseDate\n", exactly=1}, + {file="CHANGELOG.md", search="", replace="\n[Unreleased]: https://github.com/assert-rs/trycmd/compare/{{tag_name}}...HEAD", exactly=1}, +] + +[features] +default = ["color-auto", "filesystem", "diff"] +color = ["snapbox/color", "dep:anstream"] +color-auto = ["snapbox/color-auto"] +diff = ["snapbox/diff"] +filesystem = ["snapbox/path"] + +schema = ["dep:schemars", "dep:serde_json"] +examples = ["snapbox/examples"] +debug = ["snapbox/debug"] + +[[bin]] +name = "bin-fixture" + +[[bin]] +name = "trycmd-schema" +required-features = ["schema"] + +[dependencies] +automod = "1.0.14" +snapbox = { path = "../snapbox", version = "0.5.10", default-features = false, features = ["cmd"] } +anstream = { version = "0.6.7", optional = true } + +glob = "0.3.0" +rayon = "1.5.1" + +serde = { version = "1.0", features = ["derive"] } +shlex = "1.1.0" +humantime = "2" +humantime-serde = "1" +toml_edit = { version = "0.19.14", features = ["serde"] } +escargot = { version = "0.5.7", optional = true } + +schemars = { version = "0.8.3", features = ["preserve_order"], optional = true } +serde_json = { version = "1.0", optional = true } + +[lints] +workspace = true diff --git a/crates/trycmd/LICENSE-APACHE b/crates/trycmd/LICENSE-APACHE new file mode 120000 index 00000000..1cd601d0 --- /dev/null +++ b/crates/trycmd/LICENSE-APACHE @@ -0,0 +1 @@ +../../LICENSE-APACHE \ No newline at end of file diff --git a/crates/trycmd/LICENSE-MIT b/crates/trycmd/LICENSE-MIT new file mode 120000 index 00000000..b2cfbdc7 --- /dev/null +++ b/crates/trycmd/LICENSE-MIT @@ -0,0 +1 @@ +../../LICENSE-MIT \ No newline at end of file diff --git a/crates/trycmd/README.md b/crates/trycmd/README.md new file mode 100644 index 00000000..7e8e7037 --- /dev/null +++ b/crates/trycmd/README.md @@ -0,0 +1,55 @@ +# trycmd + +> Treat your tests like cattle, instead of [pets](https://docs.rs/snapbox) + +[![Documentation](https://img.shields.io/badge/docs-master-blue.svg)][Documentation] +![License](https://img.shields.io/crates/l/trycmd.svg) +[![Crates Status](https://img.shields.io/crates/v/trycmd.svg)][Crates.io] + +`trycmd` is a test harness that will enumerate test case files and run them to verify the +results, taking inspiration from +[trybuild](https://crates.io/crates/trybuild) and [cram](https://bitheap.org/cram/). + +## Example + +To create a minimal setup, create a `tests/cli_tests.rs` with +```rust,no_run +#[test] +fn cli_tests() { + trycmd::TestCases::new() + .case("tests/cmd/*.toml") + .case("README.md"); +} +``` +and write out your test cases in `.toml` files along with examples in your `README.md`. + +Run this with `cargo test` like normal. `TestCases` will enumerate all test case files and +run the contained commands, verifying they run as expected. + +See the [docs](http://docs.rs/trycmd) for more. + +## Users + +- [typos](https://github.com/crate-ci/typos) (source code spell checker) + - See [port from `assert_cmd`](https://github.com/crate-ci/typos/compare/a8ae8a5..cdfdc4084c928423211c6a80acbd24dbed7108f6) +- [cargo-edit](https://github.com/killercup/cargo-edit) (`Cargo.toml` editor) +- [clap](https://github.com/clap-rs/clap/) (CLI parser) to test examples + +## License + +Licensed under either of + +* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or ) +* MIT license ([LICENSE-MIT](LICENSE-MIT) or ) + +at your option. + +### Contribution + +Unless you explicitly state otherwise, any contribution intentionally +submitted for inclusion in the work by you, as defined in the Apache-2.0 +license, shall be dual licensed as above, without any additional terms or +conditions. + +[Crates.io]: https://crates.io/crates/trycmd +[Documentation]: https://docs.rs/trycmd diff --git a/schema.json b/crates/trycmd/schema.json similarity index 100% rename from schema.json rename to crates/trycmd/schema.json diff --git a/src/bin/bin-fixture.rs b/crates/trycmd/src/bin/bin-fixture.rs similarity index 100% rename from src/bin/bin-fixture.rs rename to crates/trycmd/src/bin/bin-fixture.rs diff --git a/src/bin/trycmd-schema.rs b/crates/trycmd/src/bin/trycmd-schema.rs similarity index 100% rename from src/bin/trycmd-schema.rs rename to crates/trycmd/src/bin/trycmd-schema.rs diff --git a/src/cargo.rs b/crates/trycmd/src/cargo.rs similarity index 100% rename from src/cargo.rs rename to crates/trycmd/src/cargo.rs diff --git a/src/cases.rs b/crates/trycmd/src/cases.rs similarity index 100% rename from src/cases.rs rename to crates/trycmd/src/cases.rs diff --git a/src/lib.rs b/crates/trycmd/src/lib.rs similarity index 100% rename from src/lib.rs rename to crates/trycmd/src/lib.rs diff --git a/src/registry.rs b/crates/trycmd/src/registry.rs similarity index 100% rename from src/registry.rs rename to crates/trycmd/src/registry.rs diff --git a/src/runner.rs b/crates/trycmd/src/runner.rs similarity index 100% rename from src/runner.rs rename to crates/trycmd/src/runner.rs diff --git a/src/schema.rs b/crates/trycmd/src/schema.rs similarity index 100% rename from src/schema.rs rename to crates/trycmd/src/schema.rs diff --git a/src/spec.rs b/crates/trycmd/src/spec.rs similarity index 100% rename from src/spec.rs rename to crates/trycmd/src/spec.rs diff --git a/tests/cli_tests.rs b/crates/trycmd/tests/cli_tests.rs similarity index 100% rename from tests/cli_tests.rs rename to crates/trycmd/tests/cli_tests.rs diff --git a/tests/cmd/basic.toml b/crates/trycmd/tests/cmd/basic.toml similarity index 100% rename from tests/cmd/basic.toml rename to crates/trycmd/tests/cmd/basic.toml diff --git a/tests/cmd/basic.trycmd b/crates/trycmd/tests/cmd/basic.trycmd similarity index 100% rename from tests/cmd/basic.trycmd rename to crates/trycmd/tests/cmd/basic.trycmd diff --git a/tests/cmd/code.toml b/crates/trycmd/tests/cmd/code.toml similarity index 100% rename from tests/cmd/code.toml rename to crates/trycmd/tests/cmd/code.toml diff --git a/tests/cmd/cwd-base.in/file.txt b/crates/trycmd/tests/cmd/cwd-base.in/file.txt similarity index 100% rename from tests/cmd/cwd-base.in/file.txt rename to crates/trycmd/tests/cmd/cwd-base.in/file.txt diff --git a/tests/cmd/cwd-base.in/foo/.keep b/crates/trycmd/tests/cmd/cwd-base.in/foo/.keep similarity index 100% rename from tests/cmd/cwd-base.in/foo/.keep rename to crates/trycmd/tests/cmd/cwd-base.in/foo/.keep diff --git a/tests/cmd/cwd-base.stderr b/crates/trycmd/tests/cmd/cwd-base.stderr similarity index 100% rename from tests/cmd/cwd-base.stderr rename to crates/trycmd/tests/cmd/cwd-base.stderr diff --git a/tests/cmd/cwd-base.toml b/crates/trycmd/tests/cmd/cwd-base.toml similarity index 100% rename from tests/cmd/cwd-base.toml rename to crates/trycmd/tests/cmd/cwd-base.toml diff --git a/tests/cmd/diff_subset.in/dir/.keep b/crates/trycmd/tests/cmd/diff_subset.in/dir/.keep similarity index 100% rename from tests/cmd/diff_subset.in/dir/.keep rename to crates/trycmd/tests/cmd/diff_subset.in/dir/.keep diff --git a/tests/cmd/diff_subset.in/dir/ignore b/crates/trycmd/tests/cmd/diff_subset.in/dir/ignore similarity index 100% rename from tests/cmd/diff_subset.in/dir/ignore rename to crates/trycmd/tests/cmd/diff_subset.in/dir/ignore diff --git a/tests/cmd/diff_subset.in/file.txt b/crates/trycmd/tests/cmd/diff_subset.in/file.txt similarity index 100% rename from tests/cmd/diff_subset.in/file.txt rename to crates/trycmd/tests/cmd/diff_subset.in/file.txt diff --git a/tests/cmd/diff_subset.in/ignore b/crates/trycmd/tests/cmd/diff_subset.in/ignore similarity index 100% rename from tests/cmd/diff_subset.in/ignore rename to crates/trycmd/tests/cmd/diff_subset.in/ignore diff --git a/tests/cmd/diff_subset.out/dir/.keep b/crates/trycmd/tests/cmd/diff_subset.out/dir/.keep similarity index 100% rename from tests/cmd/diff_subset.out/dir/.keep rename to crates/trycmd/tests/cmd/diff_subset.out/dir/.keep diff --git a/tests/cmd/diff_subset.out/file.txt b/crates/trycmd/tests/cmd/diff_subset.out/file.txt similarity index 100% rename from tests/cmd/diff_subset.out/file.txt rename to crates/trycmd/tests/cmd/diff_subset.out/file.txt diff --git a/tests/cmd/diff_subset.toml b/crates/trycmd/tests/cmd/diff_subset.toml similarity index 100% rename from tests/cmd/diff_subset.toml rename to crates/trycmd/tests/cmd/diff_subset.toml diff --git a/tests/cmd/failure.toml b/crates/trycmd/tests/cmd/failure.toml similarity index 100% rename from tests/cmd/failure.toml rename to crates/trycmd/tests/cmd/failure.toml diff --git a/tests/cmd/ignored_bin.trycmd b/crates/trycmd/tests/cmd/ignored_bin.trycmd similarity index 100% rename from tests/cmd/ignored_bin.trycmd rename to crates/trycmd/tests/cmd/ignored_bin.trycmd diff --git a/tests/cmd/infer-cwd.in/file.txt b/crates/trycmd/tests/cmd/infer-cwd.in/file.txt similarity index 100% rename from tests/cmd/infer-cwd.in/file.txt rename to crates/trycmd/tests/cmd/infer-cwd.in/file.txt diff --git a/tests/cmd/infer-cwd.stderr b/crates/trycmd/tests/cmd/infer-cwd.stderr similarity index 100% rename from tests/cmd/infer-cwd.stderr rename to crates/trycmd/tests/cmd/infer-cwd.stderr diff --git a/tests/cmd/infer-cwd.toml b/crates/trycmd/tests/cmd/infer-cwd.toml similarity index 100% rename from tests/cmd/infer-cwd.toml rename to crates/trycmd/tests/cmd/infer-cwd.toml diff --git a/tests/cmd/large.stdout b/crates/trycmd/tests/cmd/large.stdout similarity index 100% rename from tests/cmd/large.stdout rename to crates/trycmd/tests/cmd/large.stdout diff --git a/tests/cmd/large.toml b/crates/trycmd/tests/cmd/large.toml similarity index 100% rename from tests/cmd/large.toml rename to crates/trycmd/tests/cmd/large.toml diff --git a/tests/cmd/multistep.out/file.txt b/crates/trycmd/tests/cmd/multistep.out/file.txt similarity index 100% rename from tests/cmd/multistep.out/file.txt rename to crates/trycmd/tests/cmd/multistep.out/file.txt diff --git a/tests/cmd/multistep.trycmd b/crates/trycmd/tests/cmd/multistep.trycmd similarity index 100% rename from tests/cmd/multistep.trycmd rename to crates/trycmd/tests/cmd/multistep.trycmd diff --git a/tests/cmd/normalize.out/file.txt b/crates/trycmd/tests/cmd/normalize.out/file.txt similarity index 100% rename from tests/cmd/normalize.out/file.txt rename to crates/trycmd/tests/cmd/normalize.out/file.txt diff --git a/tests/cmd/normalize.stderr b/crates/trycmd/tests/cmd/normalize.stderr similarity index 100% rename from tests/cmd/normalize.stderr rename to crates/trycmd/tests/cmd/normalize.stderr diff --git a/tests/cmd/normalize.stdout b/crates/trycmd/tests/cmd/normalize.stdout similarity index 100% rename from tests/cmd/normalize.stdout rename to crates/trycmd/tests/cmd/normalize.stdout diff --git a/tests/cmd/normalize.toml b/crates/trycmd/tests/cmd/normalize.toml similarity index 100% rename from tests/cmd/normalize.toml rename to crates/trycmd/tests/cmd/normalize.toml diff --git a/tests/cmd/sandbox.out/file.txt b/crates/trycmd/tests/cmd/sandbox.out/file.txt similarity index 100% rename from tests/cmd/sandbox.out/file.txt rename to crates/trycmd/tests/cmd/sandbox.out/file.txt diff --git a/tests/cmd/sandbox.stderr b/crates/trycmd/tests/cmd/sandbox.stderr similarity index 100% rename from tests/cmd/sandbox.stderr rename to crates/trycmd/tests/cmd/sandbox.stderr diff --git a/tests/cmd/sandbox.toml b/crates/trycmd/tests/cmd/sandbox.toml similarity index 100% rename from tests/cmd/sandbox.toml rename to crates/trycmd/tests/cmd/sandbox.toml diff --git a/tests/cmd/stderr-to-stdout-large.stdout b/crates/trycmd/tests/cmd/stderr-to-stdout-large.stdout similarity index 100% rename from tests/cmd/stderr-to-stdout-large.stdout rename to crates/trycmd/tests/cmd/stderr-to-stdout-large.stdout diff --git a/tests/cmd/stderr-to-stdout-large.toml b/crates/trycmd/tests/cmd/stderr-to-stdout-large.toml similarity index 100% rename from tests/cmd/stderr-to-stdout-large.toml rename to crates/trycmd/tests/cmd/stderr-to-stdout-large.toml diff --git a/tests/cmd/stderr-to-stdout.stderr b/crates/trycmd/tests/cmd/stderr-to-stdout.stderr similarity index 100% rename from tests/cmd/stderr-to-stdout.stderr rename to crates/trycmd/tests/cmd/stderr-to-stdout.stderr diff --git a/tests/cmd/stderr-to-stdout.stdout b/crates/trycmd/tests/cmd/stderr-to-stdout.stdout similarity index 100% rename from tests/cmd/stderr-to-stdout.stdout rename to crates/trycmd/tests/cmd/stderr-to-stdout.stdout diff --git a/tests/cmd/stderr-to-stdout.toml b/crates/trycmd/tests/cmd/stderr-to-stdout.toml similarity index 100% rename from tests/cmd/stderr-to-stdout.toml rename to crates/trycmd/tests/cmd/stderr-to-stdout.toml diff --git a/tests/cmd/stderr.stderr b/crates/trycmd/tests/cmd/stderr.stderr similarity index 100% rename from tests/cmd/stderr.stderr rename to crates/trycmd/tests/cmd/stderr.stderr diff --git a/tests/cmd/stderr.toml b/crates/trycmd/tests/cmd/stderr.toml similarity index 100% rename from tests/cmd/stderr.toml rename to crates/trycmd/tests/cmd/stderr.toml diff --git a/tests/cmd/stderr_toml.toml b/crates/trycmd/tests/cmd/stderr_toml.toml similarity index 100% rename from tests/cmd/stderr_toml.toml rename to crates/trycmd/tests/cmd/stderr_toml.toml diff --git a/tests/cmd/stdout.stdout b/crates/trycmd/tests/cmd/stdout.stdout similarity index 100% rename from tests/cmd/stdout.stdout rename to crates/trycmd/tests/cmd/stdout.stdout diff --git a/tests/cmd/stdout.toml b/crates/trycmd/tests/cmd/stdout.toml similarity index 100% rename from tests/cmd/stdout.toml rename to crates/trycmd/tests/cmd/stdout.toml diff --git a/tests/cmd/stdout.trycmd b/crates/trycmd/tests/cmd/stdout.trycmd similarity index 100% rename from tests/cmd/stdout.trycmd rename to crates/trycmd/tests/cmd/stdout.trycmd diff --git a/tests/cmd/subst-cwd.in/file.txt b/crates/trycmd/tests/cmd/subst-cwd.in/file.txt similarity index 100% rename from tests/cmd/subst-cwd.in/file.txt rename to crates/trycmd/tests/cmd/subst-cwd.in/file.txt diff --git a/tests/cmd/subst-cwd.in/foo/.keep b/crates/trycmd/tests/cmd/subst-cwd.in/foo/.keep similarity index 100% rename from tests/cmd/subst-cwd.in/foo/.keep rename to crates/trycmd/tests/cmd/subst-cwd.in/foo/.keep diff --git a/tests/cmd/subst-cwd.stderr b/crates/trycmd/tests/cmd/subst-cwd.stderr similarity index 100% rename from tests/cmd/subst-cwd.stderr rename to crates/trycmd/tests/cmd/subst-cwd.stderr diff --git a/tests/cmd/subst-cwd.toml b/crates/trycmd/tests/cmd/subst-cwd.toml similarity index 100% rename from tests/cmd/subst-cwd.toml rename to crates/trycmd/tests/cmd/subst-cwd.toml diff --git a/tests/cmd/symlink-target/file.txt b/crates/trycmd/tests/cmd/symlink-target/file.txt similarity index 100% rename from tests/cmd/symlink-target/file.txt rename to crates/trycmd/tests/cmd/symlink-target/file.txt diff --git a/tests/cmd/symlink.in b/crates/trycmd/tests/cmd/symlink.in similarity index 100% rename from tests/cmd/symlink.in rename to crates/trycmd/tests/cmd/symlink.in diff --git a/tests/cmd/symlink.stderr b/crates/trycmd/tests/cmd/symlink.stderr similarity index 100% rename from tests/cmd/symlink.stderr rename to crates/trycmd/tests/cmd/symlink.stderr diff --git a/tests/cmd/symlink.toml b/crates/trycmd/tests/cmd/symlink.toml similarity index 100% rename from tests/cmd/symlink.toml rename to crates/trycmd/tests/cmd/symlink.toml diff --git a/tests/cmd/timeout.toml b/crates/trycmd/tests/cmd/timeout.toml similarity index 100% rename from tests/cmd/timeout.toml rename to crates/trycmd/tests/cmd/timeout.toml diff --git a/tests/cmd/unresolved.trycmd b/crates/trycmd/tests/cmd/unresolved.trycmd similarity index 100% rename from tests/cmd/unresolved.trycmd rename to crates/trycmd/tests/cmd/unresolved.trycmd diff --git a/tests/cmd/vars.trycmd b/crates/trycmd/tests/cmd/vars.trycmd similarity index 100% rename from tests/cmd/vars.trycmd rename to crates/trycmd/tests/cmd/vars.trycmd diff --git a/tests/example_tests.rs b/crates/trycmd/tests/example_tests.rs similarity index 100% rename from tests/example_tests.rs rename to crates/trycmd/tests/example_tests.rs diff --git a/tests/testsuite/main.rs b/crates/trycmd/tests/testsuite/main.rs similarity index 100% rename from tests/testsuite/main.rs rename to crates/trycmd/tests/testsuite/main.rs diff --git a/tests/testsuite/schema.rs b/crates/trycmd/tests/testsuite/schema.rs similarity index 100% rename from tests/testsuite/schema.rs rename to crates/trycmd/tests/testsuite/schema.rs