Skip to content

Commit

Permalink
Added more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sagiegurari committed Jun 25, 2017
1 parent 9a2354c commit 7ce6622
Show file tree
Hide file tree
Showing 7 changed files with 408 additions and 124 deletions.
1 change: 0 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ addons:
script:
- cargo install --debug cargo-make
- cargo make --task ci-flow
after_script:
- echo "Running coverage"
- wget https://github.com/SimonKagstrom/kcov/archive/v$KCOV_VERSION.zip
- unzip v$KCOV_VERSION.zip
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "cargo-make"
version = "0.2.3"
version = "0.2.4"
authors = ["Sagie Gur-Ari <sagiegurari@gmail.com>"]
description = "Rust task runner and build tool."
license = "Apache-2.0"
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,7 @@ See [contributing guide](.github/CONTRIBUTING.md)

| Date | Version | Description |
| ----------- | ------- | ----------- |
| 2017-06-25 | v0.2.4 | More tests |
| 2017-06-25 | v0.2.3 | Added disabled task attribute support |
| 2017-06-24 | v0.2.0 | Internal fixes (renamed dependencies attribute) |
| 2017-06-24 | v0.1.2 | Print build time, added internal docs, unit tests and coverage |
Expand Down
78 changes: 56 additions & 22 deletions docs/api/src/cargo_make/cli.rs.html
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,23 @@
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
</pre><pre class="rust ">
<span class="doccomment">//! # cli</span>
<span class="doccomment">//!</span>
Expand All @@ -107,47 +124,64 @@
<span class="kw">use</span> <span class="ident">log</span>;
<span class="kw">use</span> <span class="ident">runner</span>;

<span class="doccomment">/// Handles the command line arguments and executes the runner.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">run_cli</span>() {
<span class="kw">let</span> <span class="ident">name</span> <span class="op">=</span> <span class="string">&quot;make&quot;</span>;
<span class="kw">let</span> <span class="ident">version</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_VERSION&quot;</span>);
<span class="kw">let</span> <span class="ident">author</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_AUTHORS&quot;</span>);
<span class="kw">let</span> <span class="ident">description</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_DESCRIPTION&quot;</span>);
<span class="kw">static</span> <span class="ident">NAME</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;make&quot;</span>;
<span class="kw">static</span> <span class="ident">VERSION</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_VERSION&quot;</span>);
<span class="kw">static</span> <span class="ident">AUTHOR</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_AUTHORS&quot;</span>);
<span class="kw">static</span> <span class="ident">DESCRIPTION</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="macro">env</span><span class="macro">!</span>(<span class="string">&quot;CARGO_PKG_DESCRIPTION&quot;</span>);
<span class="kw">static</span> <span class="ident">DEFAULT_TOML</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;Makefile.toml&quot;</span>;

<span class="kw">fn</span> <span class="ident">run</span>(
<span class="ident">build_file</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
<span class="ident">task</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
<span class="ident">log_level</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
) {
<span class="kw">let</span> <span class="ident">logger</span> <span class="op">=</span> <span class="ident">log</span>::<span class="ident">create</span>(<span class="ident">log_level</span>);

<span class="ident">logger</span>.<span class="ident">info</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>(<span class="string">&quot;Using Build File: &quot;</span>, <span class="kw-2">&amp;</span>[<span class="ident">build_file</span>], <span class="prelude-val">None</span>);
<span class="ident">logger</span>.<span class="ident">info</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>(<span class="string">&quot;Task: &quot;</span>, <span class="kw-2">&amp;</span>[<span class="ident">task</span>], <span class="prelude-val">None</span>);

<span class="kw">let</span> <span class="ident">default_toml</span> <span class="op">=</span> <span class="string">&quot;Makefile.toml&quot;</span>;
<span class="kw">let</span> <span class="ident">config</span> <span class="op">=</span> <span class="ident">descriptor</span>::<span class="ident">load</span>(<span class="kw-2">&amp;</span><span class="ident">build_file</span>, <span class="kw-2">&amp;</span><span class="ident">logger</span>);

<span class="ident">runner</span>::<span class="ident">run</span>(<span class="kw-2">&amp;</span><span class="ident">logger</span>, <span class="kw-2">&amp;</span><span class="ident">config</span>, <span class="kw-2">&amp;</span><span class="ident">task</span>);
}

<span class="doccomment">/// Handles the command line arguments and executes the runner.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">run_cli</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">build_file_arg</span> <span class="op">=</span> <span class="string">&quot;-b, --buildFile=[FILE] &#39;Build toml file containing the build descriptor (default: &quot;</span>.<span class="ident">to_string</span>();
<span class="ident">build_file_arg</span>.<span class="ident">push_str</span>(<span class="kw-2">&amp;</span><span class="ident">default_toml</span>);
<span class="ident">build_file_arg</span>.<span class="ident">push_str</span>(<span class="kw-2">&amp;</span><span class="ident">DEFAULT_TOML</span>);
<span class="ident">build_file_arg</span>.<span class="ident">push_str</span>(<span class="string">&quot; if exists)&#39;&quot;</span>);

<span class="kw">let</span> <span class="ident">matches</span> <span class="op">=</span> <span class="ident">App</span>::<span class="ident">new</span>(<span class="string">&quot;cargo&quot;</span>)
.<span class="ident">subcommand</span>(
<span class="ident">SubCommand</span>::<span class="ident">with_name</span>(<span class="ident">name</span>)
.<span class="ident">version</span>(<span class="ident">version</span>)
.<span class="ident">author</span>(<span class="ident">author</span>)
.<span class="ident">about</span>(<span class="ident">description</span>)
<span class="ident">SubCommand</span>::<span class="ident">with_name</span>(<span class="ident">NAME</span>)
.<span class="ident">version</span>(<span class="ident">VERSION</span>)
.<span class="ident">author</span>(<span class="ident">AUTHOR</span>)
.<span class="ident">about</span>(<span class="ident">DESCRIPTION</span>)
.<span class="ident">arg_from_usage</span>(<span class="kw-2">&amp;</span><span class="ident">build_file_arg</span>)
.<span class="ident">arg_from_usage</span>(<span class="string">&quot;-t, --task=[TASK NAME] &#39;The task name to execute (default: default)&#39;&quot;</span>)
.<span class="ident">arg</span>(<span class="ident">Arg</span>::<span class="ident">from_usage</span>(<span class="string">&quot;-l, --loglevel=[LOG LEVEL] &#39;The log level (default: info)&#39;&quot;</span>).<span class="ident">possible_values</span>(<span class="kw-2">&amp;</span>[<span class="string">&quot;verbose&quot;</span>, <span class="string">&quot;info&quot;</span>, <span class="string">&quot;error&quot;</span>]))
)
.<span class="ident">get_matches</span>();

<span class="kw">match</span> <span class="ident">matches</span>.<span class="ident">subcommand_matches</span>(<span class="ident">name</span>) {
<span class="kw">match</span> <span class="ident">matches</span>.<span class="ident">subcommand_matches</span>(<span class="ident">NAME</span>) {
<span class="prelude-val">Some</span>(<span class="ident">cmd_matches</span>) <span class="op">=&gt;</span> {
<span class="kw">let</span> <span class="ident">build_file</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">value_of</span>(<span class="string">&quot;buildFile&quot;</span>).<span class="ident">unwrap_or</span>(<span class="kw-2">&amp;</span><span class="ident">default_toml</span>);
<span class="kw">let</span> <span class="ident">build_file</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">value_of</span>(<span class="string">&quot;buildFile&quot;</span>).<span class="ident">unwrap_or</span>(<span class="kw-2">&amp;</span><span class="ident">DEFAULT_TOML</span>);
<span class="kw">let</span> <span class="ident">task</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">value_of</span>(<span class="string">&quot;task&quot;</span>).<span class="ident">unwrap_or</span>(<span class="string">&quot;default&quot;</span>);
<span class="kw">let</span> <span class="ident">log_level</span> <span class="op">=</span> <span class="ident">cmd_matches</span>.<span class="ident">value_of</span>(<span class="string">&quot;loglevel&quot;</span>).<span class="ident">unwrap_or</span>(<span class="string">&quot;info&quot;</span>);

<span class="kw">let</span> <span class="ident">logger</span> <span class="op">=</span> <span class="ident">log</span>::<span class="ident">create</span>(<span class="ident">log_level</span>);

<span class="ident">logger</span>.<span class="ident">info</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>(<span class="string">&quot;Using Build File: &quot;</span>, <span class="kw-2">&amp;</span>[<span class="ident">build_file</span>], <span class="prelude-val">None</span>);
<span class="ident">logger</span>.<span class="ident">info</span>::<span class="op">&lt;</span>()<span class="op">&gt;</span>(<span class="string">&quot;Task: &quot;</span>, <span class="kw-2">&amp;</span>[<span class="ident">task</span>], <span class="prelude-val">None</span>);
<span class="ident">run</span>(<span class="ident">build_file</span>, <span class="ident">task</span>, <span class="ident">log_level</span>);
}
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;cargo-{} not invoked via cargo command.&quot;</span>, <span class="ident">NAME</span>),
}
}

<span class="kw">let</span> <span class="ident">config</span> <span class="op">=</span> <span class="ident">descriptor</span>::<span class="ident">load</span>(<span class="kw-2">&amp;</span><span class="ident">build_file</span>, <span class="kw-2">&amp;</span><span class="ident">logger</span>);
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;

<span class="ident">runner</span>::<span class="ident">run</span>(<span class="kw-2">&amp;</span><span class="ident">logger</span>, <span class="kw-2">&amp;</span><span class="ident">config</span>, <span class="kw-2">&amp;</span><span class="ident">task</span>);
}
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;cargo-{} not invoked via cargo command.&quot;</span>, <span class="ident">name</span>),
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">run_empty_task</span>() {
<span class="ident">run</span>(<span class="string">&quot;bad.toml&quot;</span>, <span class="string">&quot;empty&quot;</span>, <span class="string">&quot;error&quot;</span>);
}
}
</pre>
Expand Down
Loading

0 comments on commit 7ce6622

Please sign in to comment.