From a9df587bc8399223ab8d1b856f2f320c4c9d524c Mon Sep 17 00:00:00 2001 From: perro Date: Mon, 13 Feb 2023 11:55:24 -0800 Subject: [PATCH] Init --- exercises/ex01/Cargo.lock | 128 ++++++++++++++++++++++++++++++++ exercises/ex01/Cargo.toml | 11 +++ exercises/ex01/src/bin/false.rs | 3 + exercises/ex01/src/bin/true.rs | 3 + exercises/ex01/src/main.rs | 3 + exercises/ex01/tests/cli.rs | 19 +++++ 6 files changed, 167 insertions(+) create mode 100644 exercises/ex01/Cargo.lock create mode 100644 exercises/ex01/Cargo.toml create mode 100644 exercises/ex01/src/bin/false.rs create mode 100644 exercises/ex01/src/bin/true.rs create mode 100644 exercises/ex01/src/main.rs create mode 100644 exercises/ex01/tests/cli.rs diff --git a/exercises/ex01/Cargo.lock b/exercises/ex01/Cargo.lock new file mode 100644 index 0000000..9965c72 --- /dev/null +++ b/exercises/ex01/Cargo.lock @@ -0,0 +1,128 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "assert_cmd" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c98233c6673d8601ab23e77eb38f999c51100d46c5703b17288c57fddf3a1ffe" +dependencies = [ + "bstr", + "doc-comment", + "predicates", + "predicates-core", + "predicates-tree", + "wait-timeout", +] + +[[package]] +name = "bstr" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3569f383e8f1598449f1a423e72e99569137b47740b1da11ef19af3d5c3223" +dependencies = [ + "lazy_static", + "memchr", + "regex-automata", +] + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + +[[package]] +name = "hello" +version = "0.1.0" +dependencies = [ + "assert_cmd", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "itertools", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2" + +[[package]] +name = "predicates-tree" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" + +[[package]] +name = "termtree" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] diff --git a/exercises/ex01/Cargo.toml b/exercises/ex01/Cargo.toml new file mode 100644 index 0000000..caf74b7 --- /dev/null +++ b/exercises/ex01/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "hello" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] + +[dev-dependencies] +assert_cmd = "1" diff --git a/exercises/ex01/src/bin/false.rs b/exercises/ex01/src/bin/false.rs new file mode 100644 index 0000000..36a129b --- /dev/null +++ b/exercises/ex01/src/bin/false.rs @@ -0,0 +1,3 @@ +fn main() { + std::process::abort(); +} diff --git a/exercises/ex01/src/bin/true.rs b/exercises/ex01/src/bin/true.rs new file mode 100644 index 0000000..5b3e6ee --- /dev/null +++ b/exercises/ex01/src/bin/true.rs @@ -0,0 +1,3 @@ +fn main() { + std::process::exit(0); +} diff --git a/exercises/ex01/src/main.rs b/exercises/ex01/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/exercises/ex01/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/exercises/ex01/tests/cli.rs b/exercises/ex01/tests/cli.rs new file mode 100644 index 0000000..805a7cc --- /dev/null +++ b/exercises/ex01/tests/cli.rs @@ -0,0 +1,19 @@ +use assert_cmd::Command; + +#[test] +fn runs() { + let mut cmd = Command::cargo_bin("hello").unwrap(); + cmd.assert().success().stdout("Hello, world!\n"); +} + +#[test] +fn true_ok() { + let mut cmd = Command::cargo_bin("true").unwrap(); + cmd.assert().success(); +} + +#[test] +fn false_not_ok() { + let mut cmd = Command::cargo_bin("false").unwrap(); + cmd.assert().failure(); +}