diff --git a/Cargo.lock b/Cargo.lock index a7cf8b56..cab854c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,6 +25,18 @@ dependencies = [ "odds", ] +[[package]] +name = "assert_cmd" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7ac5c260f75e4e4ba87b7342be6edcecbcb3eb6741a0507fda7ad115845cc65" +dependencies = [ + "escargot", + "predicates", + "predicates-core", + "predicates-tree", +] + [[package]] name = "async-trait" version = "0.1.36" @@ -226,6 +238,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + [[package]] name = "digest" version = "0.8.1" @@ -271,12 +289,31 @@ dependencies = [ "synstructure", ] +[[package]] +name = "escargot" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19db1f7e74438642a5018cdf263bb1325b2e792f02dd0a3ca6d6c0f0d7b1d5a5" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "fake-simd" version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +[[package]] +name = "float-cmp" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4" +dependencies = [ + "num-traits", +] + [[package]] name = "fnv" version = "1.0.7" @@ -417,6 +454,7 @@ dependencies = [ name = "garage" version = "0.1.1" dependencies = [ + "assert_cmd", "bytes 0.4.12", "futures", "futures-util", @@ -427,6 +465,7 @@ dependencies = [ "garage_util 0.1.0", "hex", "log", + "predicates", "pretty_env_logger", "rand", "rmp-serde", @@ -1067,6 +1106,12 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + [[package]] name = "num-integer" version = "0.1.43" @@ -1188,6 +1233,35 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +[[package]] +name = "predicates" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a" +dependencies = [ + "difference", + "float-cmp", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178" + +[[package]] +name = "predicates-tree" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124" +dependencies = [ + "predicates-core", + "treeline", +] + [[package]] name = "pretty_env_logger" version = "0.4.0" @@ -1736,6 +1810,12 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" +[[package]] +name = "treeline" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41" + [[package]] name = "try-lock" version = "0.2.2" diff --git a/src/garage/Cargo.toml b/src/garage/Cargo.toml index cb16bcd4..4136d2b7 100644 --- a/src/garage/Cargo.toml +++ b/src/garage/Cargo.toml @@ -37,3 +37,7 @@ serde = { version = "1.0", default-features = false, features = ["derive", "rc"] futures = "0.3" futures-util = "0.3" tokio = { version = "0.2", default-features = false, features = ["rt-core", "rt-threaded", "io-driver", "net", "tcp", "time", "macros", "sync", "signal", "fs"] } + +[dev-dependencies] +assert_cmd = "0.10" +predicates = "1" diff --git a/src/garage/tests/smoke.rs b/src/garage/tests/smoke.rs new file mode 100644 index 00000000..40010a0e --- /dev/null +++ b/src/garage/tests/smoke.rs @@ -0,0 +1,8 @@ +use assert_cmd::prelude::*; // Add methods on commands +use predicates::prelude::*; // Used for writing assertions +use std::process::Command; // Run programs + +#[test] +fn smoke() -> Result<(), CargoError> { + let mut cmd = Command::cargo_bin("garage")?; +}