diff --git a/.travis.yml b/.travis.yml index 99ac36cf44..51678ebb28 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,19 +10,14 @@ env: global: - CRATE_NAME=cargo-tarpaulin rust: -- stable -- beta - nightly -matrix: - allow_failures: - - rust: nightly script: - cargo clean - RUST_BACKTRACE=1 cargo build - cargo test after_success: | test $TRAVIS_BRANCH = develop && - test $TRAVIS_RUST_VERSION = stable && + test $TRAVIS_RUST_VERSION = nightly && ./ci/trigger_docker_build.sh before_deploy: - cargo package @@ -38,5 +33,5 @@ deploy: skip_cleanup: true on: repo: xd009642/tarpaulin - condition: $TRAVIS_RUST_VERSION = stable + condition: $TRAVIS_RUST_VERSION = nightly tags: true diff --git a/Cargo.lock b/Cargo.lock index 3925a5e37b..ce6fc5c6d1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5,10 +5,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "aho-corasick" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,10 +29,10 @@ dependencies = [ [[package]] name = "atty" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -42,30 +42,25 @@ name = "backtrace" version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "backtrace-sys 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", + "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "backtrace-sys" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "bitflags" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "bitflags" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -75,88 +70,89 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "byteorder" -version = "1.2.3" +version = "1.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cargo" -version = "0.24.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", - "core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "crates-io 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crates-io 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "crypto-hash 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "curl 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "docopt 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - "flate2 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", + "curl 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", + "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "fs2 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "git2 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "git2-curl 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "git2 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", + "git2-curl 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "hex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "home 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "ignore 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "ignore 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "jobserver 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "libgit2-sys 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libgit2-sys 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "psapi-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "semver 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", "serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "shell-escape 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "tar 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)", - "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "tempfile 3.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cargo-tarpaulin" -version = "0.6.6" +version = "0.6.7" dependencies = [ - "cargo 0.24.0 (registry+https://github.com/rust-lang/crates.io-index)", + "cargo 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)", "coveralls-api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fallible-iterator 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "gimli 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "fallible-iterator 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "gimli 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "object 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quick-xml 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rustc-demangle 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "object 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quick-xml 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.3 (registry+https://github.com/rust-lang/crates.io-index)", + "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "cc" -version = "1.0.18" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "cfg-if" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -165,20 +161,28 @@ version = "2.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "cmake" -version = "0.1.31" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -194,49 +198,46 @@ name = "commoncrypto-sys" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation" -version = "0.4.6" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "core-foundation-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "core-foundation-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "core-foundation-sys" -version = "0.4.6" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "coveralls-api" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "curl 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", + "curl 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", "deflate 0.7.18 (registry+https://github.com/rust-lang/crates.io-index)", - "md5 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", + "md5 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "crates-io" -version = "0.13.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "curl 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)", + "curl 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -250,12 +251,37 @@ dependencies = [ [[package]] name = "crossbeam" -version = "0.2.12" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "crossbeam" -version = "0.3.2" +name = "crossbeam-channel" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "crossbeam-epoch 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "crossbeam-utils" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -265,36 +291,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "commoncrypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl 0.10.10 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "curl" -version = "0.4.12" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "curl-sys 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "curl-sys 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.33 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)", "schannel 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", - "socket2 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", + "socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "curl-sys" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "libz-sys 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.33 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libz-sys 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -304,33 +330,16 @@ version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", "gzip-header 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "docopt" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "dtoa" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "encoding_rs" -version = "0.7.2" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -343,80 +352,57 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.4.3" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "error-chain" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "termcolor 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "failure_derive" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)", - "synstructure 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", + "synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "fallible-iterator" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "filetime" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "filetime" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "flate2" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "miniz-sys 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "flate2" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "miniz-sys 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -443,7 +429,7 @@ name = "fs2" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -452,7 +438,7 @@ name = "fuchsia-zircon" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -463,36 +449,37 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "gimli" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "fallible-iterator 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "stable_deref_trait 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fallible-iterator 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "git2" -version = "0.6.11" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "libgit2-sys 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libgit2-sys 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.33 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "git2-curl" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "curl 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "git2 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", + "curl 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)", + "git2 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -503,22 +490,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "globset" -version = "0.2.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "aho-corasick 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "goblin" -version = "0.0.15" +version = "0.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", "plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "scroll 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -532,11 +519,6 @@ dependencies = [ "enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "hex" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "hex" version = "0.3.2" @@ -551,34 +533,44 @@ dependencies = [ "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "humantime" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "idna" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "ignore" -version = "0.2.2" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", - "globset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-channel 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", + "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "itoa" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -586,9 +578,9 @@ name = "jobserver" version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -602,98 +594,94 @@ dependencies = [ [[package]] name = "lazy_static" -version = "0.2.11" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] -name = "lazy_static" -version = "1.0.1" +name = "lazycell" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libc" -version = "0.2.42" +version = "0.2.43" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "libgit2-sys" -version = "0.6.19" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "cmake 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", - "curl-sys 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "libssh2-sys 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libz-sys 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.33 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "cmake 0.1.33 (registry+https://github.com/rust-lang/crates.io-index)", + "curl-sys 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libssh2-sys 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "libz-sys 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libssh2-sys" -version = "0.2.7" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cmake 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "libz-sys 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.33 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cmake 0.1.33 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "libz-sys 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "libz-sys" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "log" -version = "0.3.9" +name = "lock_api" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "log" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "matches" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "md5" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "memchr" -version = "1.0.2" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "memchr" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -701,37 +689,30 @@ name = "memmap" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "miniz-sys" -version = "0.1.10" +name = "memoffset" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] -name = "miow" -version = "0.2.1" +name = "miniz-sys" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "net2" -version = "0.2.33" +name = "miow" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -740,10 +721,10 @@ name = "nix" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -770,32 +751,32 @@ name = "num_cpus" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "object" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "flate2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "goblin 0.0.15 (registry+https://github.com/rust-lang/crates.io-index)", - "parity-wasm 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)", + "flate2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "goblin 0.0.17 (registry+https://github.com/rust-lang/crates.io-index)", + "parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)", "scroll 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "openssl" -version = "0.10.10" +version = "0.10.11" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "openssl-sys 0.9.33 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -805,21 +786,50 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "openssl-sys" -version = "0.9.33" +version = "0.9.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", + "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "owning_ref" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", - "pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)", - "vcpkg 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", + "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "parity-wasm" -version = "0.31.0" +version = "0.31.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parking_lot" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "parking_lot_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -829,7 +839,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "pkg-config" -version = "0.3.11" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -839,54 +849,63 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "proc-macro2" -version = "0.4.6" +version = "0.4.19" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "psapi-sys" -version = "0.1.1" +name = "quick-error" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "quick-xml" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "encoding_rs 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "encoding_rs 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "quote" -version = "0.3.15" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", +] [[package]] -name = "quote" -version = "0.6.3" +name = "rand" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "rand" -version = "0.4.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand_core" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "redox_syscall" version = "0.1.40" @@ -902,39 +921,19 @@ dependencies = [ [[package]] name = "regex" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "aho-corasick 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "regex" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "aho-corasick 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - "memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "regex-syntax 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - "thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", - "utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "regex-syntax" -version = "0.5.6" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", + "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", + "utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "regex-syntax" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -950,24 +949,28 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "same-file" -version = "0.1.3" +name = "rustc_version" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", + "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "ryu" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "same-file" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -975,15 +978,10 @@ name = "schannel" version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "scoped-tls" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "scopeguard" version = "0.3.3" @@ -1002,18 +1000,18 @@ name = "scroll_derive" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "semver" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1023,17 +1021,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde" -version = "1.0.70" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "serde_derive" -version = "1.0.70" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.15.3 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1041,17 +1039,17 @@ name = "serde_ignored" version = "0.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "serde_json" -version = "1.0.22" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", - "itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", + "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", + "ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1059,25 +1057,28 @@ name = "shell-escape" version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "smallvec" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "socket2" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "stable_deref_trait" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" - -[[package]] -name = "strsim" -version = "0.6.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1087,39 +1088,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "syn" -version = "0.11.11" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "syn" -version = "0.14.4" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "synom" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "synstructure" -version = "0.6.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1128,17 +1123,20 @@ version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] -name = "tempdir" -version = "0.3.7" +name = "tempfile" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1149,12 +1147,20 @@ dependencies = [ "wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "termcolor" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "termion" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1169,11 +1175,10 @@ dependencies = [ [[package]] name = "thread_local" -version = "0.3.5" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1181,7 +1186,7 @@ name = "toml" version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1194,7 +1199,7 @@ name = "unicode-bidi" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1207,11 +1212,6 @@ name = "unicode-width" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "unicode-xid" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" - [[package]] name = "unicode-xid" version = "0.1.0" @@ -1231,13 +1231,13 @@ version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "utf8-ranges" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1245,12 +1245,12 @@ name = "uuid" version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", + "cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "vcpkg" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] @@ -1259,27 +1259,23 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "void" -version = "1.0.2" +name = "version_check" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "walkdir" -version = "1.0.7" +name = "void" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", -] [[package]] name = "walkdir" -version = "2.1.4" +version = "2.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1306,6 +1302,14 @@ name = "winapi-i686-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "winapi-util" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -1320,169 +1324,167 @@ dependencies = [ ] [[package]] -name = "ws2_32-sys" -version = "0.2.1" +name = "wincolor" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" -"checksum aho-corasick 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f0ba20154ea1f47ce2793322f049c5646cc6d0fa9759d5f333f286e507bf8080" +"checksum aho-corasick 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "68f56c7353e5a9547cbd76ed90f7bb5ffc3ba09d4ea9bd1d8c06c8b1142eeb5a" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef" -"checksum atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2fc4a1aa4c24c0718a250f0681885c1af91419d242f29eb8f2ab28502d80dbd1" +"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" "checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a" -"checksum backtrace-sys 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)" = "bff67d0c06556c0b8e6b5f090f0eac52d950d9dfd1d35ba04e4ca3543eaf6a7e" -"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" -"checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" +"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" +"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" -"checksum byteorder 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "74c0b906e9446b0a2e4f760cdb3fa4b2c48cdc6db8766a845c54b6ff063fd2e9" -"checksum cargo 0.24.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11bae52b8d1073f11a8b4f532ff09e6521d9e7d8908aacd3410542a2953ccd00" -"checksum cc 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "2119ea4867bd2b8ed3aecab467709720b2d55b1bcfe09f772fd68066eaf15275" -"checksum cfg-if 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "efe5c877e17a9c717a0bf3613b2709f723202c4e4675cc8f12926ded29bcb17e" +"checksum byteorder 1.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "90492c5858dd7d2e78691cfb89f90d273a2800fc11d98f60786e5d87e2f83781" +"checksum cargo 0.29.0 (registry+https://github.com/rust-lang/crates.io-index)" = "77ab5adffc496de8506039e8aa4c733e9210c55d2928c3a8f0ba15dbed905d5b" +"checksum cc 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)" = "70f2a88c2e69ceee91c209d8ef25b81fc1a65f42c7f14dfd59d1fed189e514d1" +"checksum cfg-if 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0c4e7bb64a8ebb0d856483e1e682ea3422f883c5f5615a90d51a2c82fe87fdd3" "checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e" -"checksum cmake 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)" = "95470235c31c726d72bf2e1f421adc1e65b9d561bf5529612cbe1a72da1467b3" +"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +"checksum cmake 0.1.33 (registry+https://github.com/rust-lang/crates.io-index)" = "704fbf3bb5149daab0afb255dbea24a1f08d2f4099cedb9baab6d470d4c5eefb" "checksum commoncrypto 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d056a8586ba25a1e4d61cb090900e495952c7886786fc55f909ab2f819b69007" "checksum commoncrypto-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1fed34f46747aa73dfaa578069fd8279d2818ade2b55f38f22a9401c7f4083e2" -"checksum core-foundation 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8047f547cd6856d45b1cdd75ef8d2f21f3d0e4bf1dab0a0041b0ae9a5dda9c0e" -"checksum core-foundation-sys 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "152195421a2e6497a8179195672e9d4ee8e45ed8c465b626f1606d27a08ebcd5" +"checksum core-foundation 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cc3532ec724375c7cb7ff0a097b714fde180bb1f6ed2ab27cfcd99ffca873cd2" +"checksum core-foundation-sys 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a3fb15cdbdd9cf8b82d97d0296bb5cd3631bba58d6e31650a002a8e7fb5721f9" "checksum coveralls-api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1a7f17235b2f17cec847ea899124e7de0527bacd52452ecbd26d4372b9cad640" -"checksum crates-io 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f674c5442534ff590d03226dbe18058939d2c45a9072bb8a2fc82f135aa5d53" +"checksum crates-io 0.17.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6ca4e60b08d3fc7054318268516964c82c4e1732c7741ea051b2a9ec6d9ec390" "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" -"checksum crossbeam 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "bd66663db5a988098a89599d4857919b3acf7f61402e61365acfd3919857b9be" "checksum crossbeam 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "24ce9782d4d5c53674646a6a4c1863a21a8fc0cb649b3c94dfc16e45071dea19" +"checksum crossbeam-channel 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "a5716fadb87a5633db34c5e83ee6e036e6edc229f8a6bfb7c7c84ed340ba95df" +"checksum crossbeam-epoch 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9c90f1474584f38e270b5b613e898c8c328aa4f3dea85e0a27ac2e642f009416" +"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" "checksum crypto-hash 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "09de9ee0fc255ace04c7fa0763c9395a945c37c8292bb554f8d48361d1dcf1b4" -"checksum curl 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "aaf20bbe084f285f215eef2165feed70d6b75ba29cad24469badb853a4a287d0" -"checksum curl-sys 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71c63a540a9ee4e15e56c3ed9b11a2f121239b9f6d7b7fe30f616e048148df9a" +"checksum curl 0.4.14 (registry+https://github.com/rust-lang/crates.io-index)" = "444c2f9e71458b34e75471ed8d756947a0bb920b8b8b9bfc56dfcc4fc6819a13" +"checksum curl-sys 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "981bd902fcd8b8b999cf71b81447e27d66c3493a7f62f1372866fd32986c0c82" "checksum deflate 0.7.18 (registry+https://github.com/rust-lang/crates.io-index)" = "32c8120d981901a9970a3a1c97cf8b630e0fa8c3ca31e75b6fd6fd5f9f427b31" -"checksum docopt 0.8.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d8acd393692c503b168471874953a2531df0e9ab77d0b6bbc582395743300a4a" -"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd" -"checksum encoding_rs 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98fd0f24d1fb71a4a6b9330c8ca04cbd4e7cc5d846b54ca74ff376bc7c9f798d" +"checksum encoding_rs 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2a91912d6f37c6a8fef8a2316a862542d036f13c923ad518b5aca7bcaac7544c" "checksum enum_primitive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180" -"checksum env_logger 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3ddf21e73e016298f5cb37d6ef8e8da8e39f91f9ec8b0df44b7deb16a9f8cd5b" -"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3" -"checksum failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "934799b6c1de475a012a02dab0ace1ace43789ee4b99bcfbf1a2e3e8ced5de82" -"checksum failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7cdda555bb90c9bb67a3b670a0f42de8e73f5981524123ad8578aafec8ddb8b" -"checksum fallible-iterator 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d6034a9c9dfce417c7710128d202eef406878cd2fe294e76e2ee05259c9b042d" -"checksum filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "714653f3e34871534de23771ac7b26e999651a0a228f47beb324dfdf1dd4b10f" +"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38" +"checksum failure 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7efb22686e4a466b1ec1a15c2898f91fa9cb340452496dca654032de20ff95b9" +"checksum failure_derive 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "946d0e98a50d9831f5d589038d2ca7f8f455b1c21028c0db0e84116a12696426" +"checksum fallible-iterator 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea79295a7a3e0d77f19e763cf1fe7189cd95fc2b36735ea0ea6b711a7380f509" "checksum filetime 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "da4b9849e77b13195302c174324b5ba73eec9b236b24c221a61000daefb95c5f" -"checksum flate2 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "e6234dd4468ae5d1e2dbb06fe2b058696fdc50a339c68a393aefbf00bc81e423" -"checksum flate2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fac2277e84e5e858483756647a9d0aa8d9a2b7cba517fd84325a0aaa69a0909" +"checksum flate2 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "37847f133aae7acf82bb9577ccd8bda241df836787642654286e79679826a54b" "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" "checksum fs2 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" -"checksum gimli 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d080d7b981be6932486671c6cb0d8a82ed61d88b81419d39b33ea8966717f4d" -"checksum git2 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ee5b4bb7cd2a44e6e5ee3a26ba6a9ca10d4ce2771cdc3839bbc54b47b7d1be84" -"checksum git2-curl 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "68676bc784bf0bef83278898929bf64a251e87c0340723d0b93fa096c9c5bf8e" +"checksum gimli 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7f6ee5390883802431e4abe323390f52f10ff16e8f8d2d6ce598251f900ede" +"checksum git2 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "591f8be1674b421644b6c030969520bc3fa12114d2eb467471982ed3e9584e71" +"checksum git2-curl 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b502f6b1b467957403d168f0039e0c46fa6a1220efa2adaef25d5b267b5fe024" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" -"checksum globset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "464627f948c3190ae3d04b1bc6d7dca2f785bda0ac01278e6db129ad383dbeb6" -"checksum goblin 0.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e3ba9fec4dc9a09553388bff2724d3bf06bd64013539f2d3e1e3838eefb310a" +"checksum globset 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4743617a7464bbda3c8aec8558ff2f9429047e025771037df561d383337ff865" +"checksum goblin 0.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "5911d7df7b8f65ab676c5327b50acea29d3c6a1a4ad05e444cf5dce321b26db2" "checksum gzip-header 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0a9fcfe1c9ee125342355b2467bc29b9dfcb2124fcae27edb9cee6f4cc5ecd40" -"checksum hex 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d6a22814455d41612f41161581c2883c0c6a1c41852729b17d5ed88f01e153aa" "checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" "checksum home 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "80dff82fb58cfbbc617fb9a9184b010be0529201553cda50ad04372bc2333aff" +"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" -"checksum ignore 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b3fcaf2365eb14b28ec7603c98c06cc531f19de9eb283d89a3dff8417c8c99f5" -"checksum itoa 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5adb58558dcd1d786b5f0bd15f3226ee23486e24b7b58304b60f64dc68e62606" +"checksum ignore 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "36ecfc5ad80f0b1226df948c562e2cddd446096be3f644c95106400eae8a5e01" +"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" "checksum jobserver 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "60af5f849e1981434e4a31d3d782c4774ae9b434ce55b101a96ecfd09147e8be" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" -"checksum lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6412c5e2ad9584b0b8e979393122026cdd6d2a80b933f890dcd694ddbe73739" -"checksum libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1" -"checksum libgit2-sys 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)" = "6eeae66e7b1c995de45cb4e65c5ab438a96a7b4077e448645d4048dc753ad357" -"checksum libssh2-sys 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5afcb36f9a2012ab8d3a9ba5186ee2d1c4587acf199cb47879a73c5fe1b731a4" -"checksum libz-sys 1.0.18 (registry+https://github.com/rust-lang/crates.io-index)" = "87f737ad6cc6fd6eefe3d9dc5412f1573865bded441300904d2f42269e140f16" -"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" -"checksum log 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "61bd98ae7f7b754bc53dca7d44b604f733c6bba044ea6f41bc8d89272d8161d2" -"checksum matches 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "100aabe6b8ff4e4a7e32c1c13523379802df0772b82466207ac25b013f193376" -"checksum md5 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "daa1004633f76cdcd5a9d83ffcfe615e30ca7a2a638fcc8b8039a2dac21289d7" -"checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a" -"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" +"checksum lazy_static 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca488b89a5657b0a2ecd45b95609b3e848cf1755da332a0da46e2b2b1cb371a7" +"checksum lazycell 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a6f08839bc70ef4a3fe1d566d5350f519c5912ea86be0df1740a7d247c7fc0ef" +"checksum libc 0.2.43 (registry+https://github.com/rust-lang/crates.io-index)" = "76e3a3ef172f1a0b9a9ff0dd1491ae5e6c948b94479a3021819ba7d860c8645d" +"checksum libgit2-sys 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6ab62b46003ba97701554631fa570d9f7e7947e2480ae3d941e555a54a2c0f05" +"checksum libssh2-sys 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "10dbc0957a27626444f5a3f523e6b97a70c3d702999bf1c7161cfbe7a25a9368" +"checksum libz-sys 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "f5f9aba969b3c45fe9c94bec65895868a9ceca9a600699f4054b75747a19c7c6" +"checksum lock_api 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "949826a5ccf18c1b3a7c3d57692778d21768b79e46eb9dd07bfc4c2160036c54" +"checksum log 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fcce5fa49cc693c312001daf1d13411c4a5283796bac1084299ea3e567113f" +"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" +"checksum md5 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "79c56d6a0b07f9e19282511c83fc5b086364cbae4ba8c7d5f190c3d9b0425a48" +"checksum memchr 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a3b4142ab8738a78c51896f704f83c11df047ff1bda9a92a661aa6361552d93d" "checksum memmap 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e2ffa2c986de11a9df78620c01eeaaf27d94d3ff02bf81bfcca953102dd0c6ff" +"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" "checksum miniz-sys 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "609ce024854aeb19a0ef7567d348aaa5a746b32fb72e336df7fcc16869d7e2b4" -"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" -"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" +"checksum miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "396aa0f2003d7df8395cb93e09871561ccc3e785f0acb369170e8cc74ddf9226" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" "checksum nodrop 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "9a2228dca57108069a5262f2ed8bd2e82496d2e074a06d1ccc7ce1687b6ae0a2" "checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" "checksum num-traits 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "630de1ef5cc79d0cdd78b7e33b81f083cbfe90de0f4b2b2f07f905867c70e9fe" "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" -"checksum object 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d516d9e7232a46e709ab9027f51e2d3ce97608bce167df6badf12b258a6a61b" -"checksum openssl 0.10.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ed18a0f40ec4e9a8a81f8865033d823b7195d16a0a5721e10963ee1b0c2980ca" +"checksum object 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6cca6ad89d0801138cb4ef606908ae12d83edc4c790ef5178fc7b4c72d959e90" +"checksum openssl 0.10.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6c24d3508b4fb6da175c10baac54c578b33f09c89ae90c6fe9788b3b4768efdc" "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" -"checksum openssl-sys 0.9.33 (registry+https://github.com/rust-lang/crates.io-index)" = "d8abc04833dcedef24221a91852931df2f63e3369ae003134e70aff3645775cc" -"checksum parity-wasm 0.31.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1c91199d14bd5b78ecade323d4a891d094799749c1b9e82d9c590c2e2849a40" +"checksum openssl-sys 0.9.35 (registry+https://github.com/rust-lang/crates.io-index)" = "912f301a749394e1025d9dcddef6106ddee9252620e6d0a0e5f8d0681de9b129" +"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" +"checksum parity-wasm 0.31.3 (registry+https://github.com/rust-lang/crates.io-index)" = "511379a8194230c2395d2f5fa627a5a7e108a9f976656ce723ae68fca4097bfc" +"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" +"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" -"checksum pkg-config 0.3.11 (registry+https://github.com/rust-lang/crates.io-index)" = "110d5ee3593dbb73f56294327fe5668bcc997897097cbc76b51e7aed3f52452f" +"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" "checksum plain 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" -"checksum proc-macro2 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "effdb53b25cdad54f8f48843d67398f7ef2e14f12c1b4cb4effc549a6462a4d6" -"checksum psapi-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f71c7e142c25f297077a8ebc21f10847096b5d21ad7619d7bf0c1fcecb40bb0" -"checksum quick-xml 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b14c27e04216596a49f2b82398a24f67ed9f131a5c0e0235496ea446bdacfb12" -"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" -"checksum quote 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e44651a0dc4cdd99f71c83b561e221f714912d11af1a4dff0631f923d53af035" -"checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" +"checksum proc-macro2 0.4.19 (registry+https://github.com/rust-lang/crates.io-index)" = "ffe022fb8c8bd254524b0b3305906c1921fa37a84a644e29079a9e62200c3901" +"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" +"checksum quick-xml 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7fabc3b4b39f1ac835f364a1f21cbe1d4059770d4e07a9590e9aaf229596907e" +"checksum quote 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dd636425967c33af890042c483632d33fa7a18f19ad1d7ea72e8998c6ef8dea5" +"checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" +"checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" +"checksum rand_core 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "edecf0f94da5551fc9b492093e30b041a891657db7940ee221f9d2f66e82eef2" "checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" -"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" -"checksum regex 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13c93d55961981ba9226a213b385216f83ab43bd6ac53ab16b2eeb47e337cf4e" -"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" -"checksum regex-syntax 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05b06a75f5217880fc5e905952a42750bf44787e56a6c6d6852ed0992f5e1d54" +"checksum regex 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2069749032ea3ec200ca51e4a31df41759190a88edca0d2d86ee8bedf7073341" +"checksum regex-syntax 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "747ba3b235651f6e2f67dfa8bcdcd073ddb7c243cb21c442fc12395dfcac212d" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" -"checksum rustc-demangle 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "76d7ba1feafada44f2d38eed812bd2489a03c0f5abb975799251518b68848649" -"checksum same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7" -"checksum same-file 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cfb6eded0b06a0b512c8ddbcf04089138c9b4362c2f696f3c3d76039d68f3637" +"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" +"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +"checksum ryu 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7153dd96dade874ab973e098cb62fcdbb89a03682e46b144fd09550998d4a4a7" +"checksum same-file 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "10f7794e2fda7f594866840e95f5c5962e886e228e68b6505885811a94dd728c" "checksum schannel 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "dc1fabf2a7b6483a141426e1afd09ad543520a77ac49bd03c286e7696ccfd77f" -"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" "checksum scroll 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "66f024a8cc5e456eb870f688dbd899c84f61190c82c7a911e40f926941969074" "checksum scroll_derive 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f9a353f5dd99e42ff097d5a61db3257aa2c7127d76a3fa8287b642ef9ae0f7c5" -"checksum semver 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bee2bc909ab2d8d60dab26e8cad85b25d795b14603a0dcb627b78b9d30b6454b" +"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum serde 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "0c3adf19c07af6d186d91dae8927b83b0553d07ca56cbf7f2f32560455c91920" -"checksum serde_derive 1.0.70 (registry+https://github.com/rust-lang/crates.io-index)" = "3525a779832b08693031b8ecfb0de81cd71cfd3812088fafe9a7496789572124" +"checksum serde 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)" = "92ec94e2754699adddbbc4f555791bd3acc2a2f5574cba16c93a4a9cf4a04415" +"checksum serde_derive 1.0.78 (registry+https://github.com/rust-lang/crates.io-index)" = "0fb622d85245add5327d4f08b2d24fd51fa5d35fe1bba19ee79a1f211e9ac0ff" "checksum serde_ignored 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "190e9765dcedb56be63b6e0993a006c7e3b071a016a304736e4a315dc01fb142" -"checksum serde_json 1.0.22 (registry+https://github.com/rust-lang/crates.io-index)" = "84b8035cabe9b35878adec8ac5fe03d5f6bc97ff6edd7ccb96b44c1276ba390e" +"checksum serde_json 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)" = "59790990c5115d16027f00913e2e66de23a51f70422e549d2ad68c8c5f268f1c" "checksum shell-escape 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "170a13e64f2a51b77a45702ba77287f5c6829375b04a69cf2222acd17d0cfab9" -"checksum socket2 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "962a516af4d3a7c272cb3a1d50a8cc4e5b41802e4ad54cfb7bee8ba61d37d703" -"checksum stable_deref_trait 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbc596e092fe5f598b12ef46cc03754085ac2f4d8c739ad61c4ae266cc3b3fa" -"checksum strsim 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b4d15c810519a91cf877e7e36e63fe068815c678181439f2f29e2562147c3694" +"checksum smallvec 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "153ffa32fd170e9944f7e0838edf824a754ec4c1fc64746fcc9fe1f8fa602e5d" +"checksum socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c4d11a52082057d87cb5caa31ad812f4504b97ab44732cd8359df2e9ff9f48e7" +"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" "checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" -"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" -"checksum syn 0.14.4 (registry+https://github.com/rust-lang/crates.io-index)" = "2beff8ebc3658f07512a413866875adddd20f4fd47b2a4e6c9da65cd281baaea" -"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" -"checksum synstructure 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3a761d12e6d8dcb4dcf952a7a89b475e3a9d69e4a69307e01a470977642914bd" +"checksum syn 0.14.9 (registry+https://github.com/rust-lang/crates.io-index)" = "261ae9ecaa397c42b960649561949d69311f08eeaea86a65696e6e46517cf741" +"checksum syn 0.15.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e5c1514eb7bb4216fc722b3cd08783d326d7de0d62f6d5e48a774f610bc97cb6" +"checksum synstructure 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb9b7550d063ea184027c9b8c20ac167cd36d3e06b3a40bceb9d746dc1a7b7" "checksum tar 0.4.16 (registry+https://github.com/rust-lang/crates.io-index)" = "e8f41ca4a5689f06998f0247fcb60da6c760f1950cc9df2a10d71575ad0b062a" -"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +"checksum tempfile 3.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c4b103c6d08d323b92ff42c8ce62abcd83ca8efa7fd5bf7927efefec75f58c76" "checksum termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "adc4587ead41bf016f11af03e55a624c06568b5a19db4e90fde573d805074f83" +"checksum termcolor 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ff3bac0e465b59f194e7037ed404b0326e56ff234d767edc4c5cc9cd49e7a2c7" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6" -"checksum thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963" +"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" "checksum toml 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a0263c6c02c4db6c8f7681f9fd35e90de799ebd4cfdeab77a38f4ff6b3d8c0d9" "checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" -"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum url 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2a321979c09843d272956e73700d12c4e7d3d92b2ee112b31548aef0d4efc5a6" -"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122" +"checksum utf8-ranges 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd70f467df6810094968e2fce0ee1bd0e87157aceb026a8c083bcf5e25b9efe4" "checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363" -"checksum vcpkg 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cbe533e138811704c0e3cbde65a818b35d3240409b4346256c5ede403e082474" +"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" +"checksum version_check 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7716c242968ee87e5542f8021178248f267f295a5c4803beae8b8b7fd9bc6051" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" -"checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff" -"checksum walkdir 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "63636bd0eb3d00ccb8b9036381b526efac53caf112b7783b730ab3f8e44da369" +"checksum walkdir 2.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "af464bc7be7b785c7ac72e266a6b67c4c9070155606f51655a650a6686204e35" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eeb06499a3a4d44302791052df005d5232b927ed1a9658146d842165c4de7767" -"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba" diff --git a/Cargo.toml b/Cargo.toml index 4ce88cae14..a4a04ba8ea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,8 @@ +cargo-features = ["publish-lockfile"] + [package] name = "cargo-tarpaulin" -version = "0.6.6" +version = "0.6.7" authors = ["Daniel McKenna "] description = "Cargo-Tarpaulin is a tool to determine code coverage achieved via tests" repository = "https://github.com/xd009642/tarpaulin" @@ -8,26 +10,28 @@ readme = "README.md" license = "MIT/Apache-2.0" categories = ["development-tools"] keywords = ["cargo", "cargo-subcommand", "testing"] +publish-lockfile = true [[bin]] name = "cargo-tarpaulin" [dependencies] -nix = "0.11.0" -libc = "0.2.40" -gimli = "0.16.0" +cargo = "0.29" +clap = "2.31.2" +coveralls-api = "0.3.3" fallible-iterator = "0.1.4" +gimli = "0.16.1" +lazy_static = "1.0" +libc = "0.2.40" memmap = "0.6.2" -object = "0.9" +nix = "0.11.0" +object = "0.10" +proc-macro2 = "0.4.19" +quick-xml = "0.12.3" +regex = "1.0" rustc-demangle = "0.1.7" -cargo = "0.24" -clap = "2.31.2" serde = "1.0" serde_json = "1.0" -coveralls-api = "0.3.3" -quick-xml = "0.12.1" -regex = "1.0" -lazy_static = "1.0" -syn = { version = "0.14.4", features = ["full"]} -proc-macro2 = "0.4.6" -walkdir = "2" +syn = { version = "0.15.3", features = ["full"]} +void = "1.0" +walkdir = "2.2.5" diff --git a/README.md b/README.md index 3e47275f24..524484a8ed 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Tarpaulin -[![Build Status](https://travis-ci.org/xd009642/tarpaulin.svg?branch=master)](https://travis-ci.org/xd009642/tarpaulin) [![Latest Version](https://img.shields.io/crates/v/cargo-tarpaulin.svg)](https://crates.io/crates/cargo-tarpaulin) [![License:MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Docker](https://img.shields.io/docker/automated/xd009642/tarpaulin.svg)](https://hub.docker.com/r/xd009642/tarpaulin/) +[![Build Status](https://travis-ci.org/xd009642/tarpaulin.svg?branch=master)](https://travis-ci.org/xd009642/tarpaulin)[![Latest Version](https://img.shields.io/crates/v/cargo-tarpaulin.svg)](https://crates.io/crates/cargo-tarpaulin)[![License:MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)[![Docker](https://img.shields.io/docker/automated/xd009642/tarpaulin.svg)](https://hub.docker.com/r/xd009642/tarpaulin/) Tarpaulin is designed to be a code coverage reporting tool for the Cargo build system, named for a waterproof cloth used to cover cargo on a ship. Currently, @@ -18,6 +18,10 @@ popular CI tools like Travis. It can also be run in Docker, which is useful for when you don't use Linux but want to run it locally, e.g. during development. See below for how to do that. +**Due to unstable features in syn and issues with no packaging tarpaulin with +the Cargo.lock file tarpaulin is now a nightly only crate. Replace all calls to +`cargo tarpaulin` with `cargo +nightly tarpaulin`** + ## Features Below is a list of features currently implemented. As Tarpaulin loads binary @@ -130,7 +134,9 @@ for your coverage reporting site of choice. We recommend taking the minimal rust .travis.yml, installing the libssl-dev dependency tarpaulin has and then running Tarpaulin with the version of -rustc you require. +rustc you require. Tarpaulin is installed in `before_cache` to allow it to be cached +and prevent having to reinstall every Travis run. You can also replace `cargo test` +with a verbose run of tarpaulin to see the test results as well as coverage output. For codecov.io you'll need to export CODECOV_TOKEN are instructions on this in the settings of your codecov project. @@ -151,6 +157,12 @@ rust: matrix: allow_failures: - rust: nightly + +before_cache: | + if [[ "$TRAVIS_RUST_VERSION" == stable ]]; then + RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin + fi + script: - cargo clean - cargo build @@ -158,7 +170,6 @@ script: after_success: | if [[ "$TRAVIS_RUST_VERSION" == stable ]]; then - RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin # Uncomment the following line for coveralls.io # cargo tarpaulin --ciserver travis-ci --coveralls $TRAVIS_JOB_ID diff --git a/src/breakpoint.rs b/src/breakpoint.rs index db038e373e..2cda135446 100644 --- a/src/breakpoint.rs +++ b/src/breakpoint.rs @@ -9,31 +9,31 @@ const INT: u64 = 0xCC; /// Breakpoint construct used to monitor program execution. As tarpaulin is an -/// automated process, this will likely have less functionality than most +/// automated process, this will likely have less functionality than most /// breakpoint implementations. #[derive(Debug)] -pub struct Breakpoint { +pub struct Breakpoint { /// Program counter pub pc: u64, - /// Bottom byte of address data. + /// Bottom byte of address data. /// This is replaced to enable the interrupt. Rest of data is never changed. data: u8, - /// Reading from memory with ptrace gives addresses aligned to bytes. + /// Reading from memory with ptrace gives addresses aligned to bytes. /// We therefore need to know the shift to place the breakpoint in the right place shift: u64, - /// Map of the state of the breakpoint on each thread/process + /// Map of the state of the breakpoint on each thread/process is_running: HashMap } impl Breakpoint { - /// Creates a new breakpoint for the given process and program counter. + /// Creates a new breakpoint for the given process and program counter. pub fn new(pid:Pid, pc:u64) ->Result { let aligned = pc & !0x7u64; let data = read_address(pid, aligned)?; let shift = 8 * (pc - aligned); let data = ((data >> shift) & 0xFF) as u8; - - let mut b = Breakpoint{ + + let mut b = Breakpoint{ pc, data, shift, @@ -57,7 +57,7 @@ impl Breakpoint { write_to_address(pid, self.aligned_address(), intdata) } } - + fn disable(&self, pid: Pid) -> Result { // I require the bit fiddlin this end. let data = read_address(pid, self.aligned_address())?; diff --git a/src/config.rs b/src/config/mod.rs similarity index 54% rename from src/config.rs rename to src/config/mod.rs index 5029599577..f17d8b755c 100644 --- a/src/config.rs +++ b/src/config/mod.rs @@ -1,39 +1,18 @@ +pub use self::types::*; + use std::path::{PathBuf, Path}; -use std::env; -use std::time::Duration; -use std::str::FromStr; -use clap::ArgMatches; -use coveralls_api::CiService; -use regex::Regex; - -arg_enum!{ - /// Enum to represent possible output formats. - #[derive(Debug)] - pub enum OutputFile { - Json, - Toml, - Stdout, - Xml - } -} +use std::time::{Duration}; + +use clap::{ArgMatches}; +use coveralls_api::{CiService}; +use regex::{Regex}; + +use self::parse::*; + + +mod parse; +mod types; -struct Ci(CiService); - -impl FromStr for Ci { - type Err = (); - /// This will never error so no need to implement the error type. - fn from_str(s: &str) -> Result { - match s { - "travis-ci" => Ok(Ci(CiService::Travis)), - "travis-pro" => Ok(Ci(CiService::TravisPro)), - "circle-ci" => Ok(Ci(CiService::Circle)), - "semaphore" => Ok(Ci(CiService::Semaphore)), - "jenkins" => Ok(Ci(CiService::Jenkins)), - "codeship" => Ok(Ci(CiService::Codeship)), - other => Ok(Ci(CiService::Other(other.to_string()))), - } - } -} /// Specifies the current configuration tarpaulin is using. #[derive(Debug, Default)] @@ -50,8 +29,8 @@ pub struct Config { pub skip_clean: bool, /// Verbose flag for printing information to the user pub verbose: bool, - /// Flag to disable counting line hits in line coverage mode - pub no_count: bool, + /// Flag to count hits in coverage + pub count: bool, /// Flag specifying to run line coverage (default) pub line_coverage: bool, /// Flag specifying to run branch coverage @@ -87,133 +66,68 @@ pub struct Config { pub test_timeout: Duration, } -impl Config { - fn get_list_from_args(args: &ArgMatches, key: &str) -> Vec { - match args.values_of_lossy(key) { - Some(v) => v, - None => vec![], +impl<'a> From<&'a ArgMatches<'a>> for Config { + + fn from(args: &'a ArgMatches<'a>) -> Self { + Config { + manifest: get_manifest(args), + run_ignored: args.is_present("ignored"), + ignore_tests: args.is_present("ignore-tests"), + ignore_panics: args.is_present("ignore-panics"), + skip_clean: args.is_present("skip-clean"), + verbose: args.is_present("verbose"), + count: args.is_present("count"), + line_coverage: get_line_cov(args), + branch_coverage: get_branch_cov(args), + generate: get_outputs(args), + coveralls: get_coveralls(args), + ci_tool: get_ci(args), + report_uri: get_report_uri(args), + forward_signals: args.is_present("forward"), + all_features: args.is_present("all-features"), + features: get_list(args, "features"), + all: args.is_present("all"), + packages: get_list(args, "packages"), + exclude: get_list(args, "exclude"), + excluded_files: get_excluded(args), + varargs: get_list(args, "args"), + test_timeout: get_timeout(args), } } +} - /// Create configuration from clap ArgMatches. - pub fn from_args(args: &ArgMatches) -> Config { - let mut line = args.is_present("line"); - let mut branch = args.is_present("branch"); - let verbose = args.is_present("verbose"); - let ignored = args.is_present("ignored"); - let forward = args.is_present("forward"); - let skip_clean = args.is_present("skip-clean"); - let no_count = !args.is_present("count"); - let ignore_tests = args.is_present("ignore-tests"); - let all_features = args.is_present("all-features"); - let ignore_panics = args.is_present("ignore-panics"); - // If no coverage selected do everything! - if !branch && !line { - branch = true; - line = true; - } - let mut root = env::current_dir().unwrap(); - if let Some(path) = args.value_of("root") { - root.push(path); - }; - root.push("Cargo.toml"); - if let Ok(cpath) = root.canonicalize() { - root = cpath; - } - let ci_tool = match value_t!(args, "ciserver", Ci) { - Ok(ci) => Some(ci.0), - Err(_) => None, - }; - let coveralls = if let Some(cio) = args.value_of("coveralls") { - Some(cio.to_string()) - } else { - None - }; - let report_uri = match args.value_of("report-uri"){ - Some(r) => Some(r.to_string()), - None => None - }; - let out:Vec = values_t!(args.values_of("out"), OutputFile) - .unwrap_or_default(); - let features: Vec = Config::get_list_from_args(args, "features"); - let all = args.is_present("all"); - let packages: Vec = Config::get_list_from_args(args, "packages"); - let exclude: Vec = Config::get_list_from_args(args, "exclude"); - let varargs: Vec = Config::get_list_from_args(args, "args"); - let mut ex_files:Vec = vec![]; - for temp_str in &Config::get_list_from_args(args, "exclude-files") { - let s = &temp_str.replace(".", r"\.").replace("*", ".*"); - if let Ok(re) = Regex::new(s) { - ex_files.push(re); - } else if verbose { - println!("Error in wildcard expression: {}", temp_str); - } - } - - let timeout = if args.is_present("timeout") { - match value_t!(args.value_of("timeout"), u64) { - Ok(s) => s, - Err(_) => { - println!("Invalid value for timeout. Setting to 1 minute"); - 60u64 - } - } - } else { - 60u64 - }; - Config{ - manifest: root, - run_ignored: ignored, - ignore_tests, - ignore_panics, - verbose, - no_count, - line_coverage: line, - skip_clean, - branch_coverage: branch, - generate: out, - coveralls, - ci_tool, - report_uri, - forward_signals: forward, - all_features, - features, - all, - packages, - exclude, - excluded_files: ex_files, - test_timeout: Duration::from_secs(timeout), - varargs, - } - } +impl Config { - /// Determine whether to send data to coveralls + #[inline] pub fn is_coveralls(&self) -> bool { self.coveralls.is_some() } - + #[inline] pub fn exclude_path(&self, path: &Path) -> bool { - let path = self.strip_project_path(path); + let project = self.strip_project_path(path); + self.excluded_files.iter() - .any(|x| x.is_match(path.to_str().unwrap_or(""))) + .any(|x| x.is_match(project.to_str().unwrap_or(""))) } - - /// Strips the directory the project manifest is in from the path. Provides a - /// nicer path for printing to the user. - pub fn strip_project_path<'a>(&'a self, path: &'a Path) -> PathBuf { - if let Some(root) = self.manifest.parent() { - path_relative_from(path, root).unwrap_or_else(|| path.to_path_buf()) - } else { - path.to_path_buf() - } + + /// Strips the directory the project manifest is in from the path. + /// Provides a nicer path for printing to the user. + /// + #[inline] + pub fn strip_project_path(&self, path: &Path) -> PathBuf { + self.manifest.parent() + .and_then(|x| path_relative_from(path, x)) + .unwrap_or_else(|| path.to_path_buf()) } } + /// Gets the relative path from one directory to another, if it exists. /// Credit to brson from this commit from 2015 /// https://github.com/rust-lang/rust/pull/23283/files -pub(crate) fn path_relative_from(path: &Path, base: &Path) -> Option { +/// +fn path_relative_from(path: &Path, base: &Path) -> Option { use std::path::Component; if path.is_absolute() != base.is_absolute() { @@ -225,7 +139,8 @@ pub(crate) fn path_relative_from(path: &Path, base: &Path) -> Option { } else { let mut ita = path.components(); let mut itb = base.components(); - let mut comps: Vec = vec![]; + let mut comps = vec![]; + loop { match (ita.next(), itb.next()) { (None, None) => break, @@ -253,6 +168,7 @@ pub(crate) fn path_relative_from(path: &Path, base: &Path) -> Option { } } + #[cfg(test)] mod tests { use super::*; @@ -265,35 +181,35 @@ mod tests { .args_from_usage("--exclude-files [FILE]... 'Exclude given files from coverage results has * wildcard'") .get_matches_from_safe(vec!["tarpaulin", "--exclude-files", "*module*"]) .unwrap(); - let conf = Config::from_args(&matches); + let conf = Config::from(&matches); assert!(conf.exclude_path(Path::new("src/module/file.rs"))); assert!(!conf.exclude_path(Path::new("src/mod.rs"))); assert!(!conf.exclude_path(Path::new("unrelated.rs"))); assert!(conf.exclude_path(Path::new("module.rs"))); } - - + + #[test] fn no_exclusions() { let matches = App::new("tarpaulin") .args_from_usage("--exclude-files [FILE]... 'Exclude given files from coverage results has * wildcard'") .get_matches_from_safe(vec!["tarpaulin"]) .unwrap(); - let conf = Config::from_args(&matches); + let conf = Config::from(&matches); assert!(!conf.exclude_path(Path::new("src/module/file.rs"))); assert!(!conf.exclude_path(Path::new("src/mod.rs"))); assert!(!conf.exclude_path(Path::new("unrelated.rs"))); assert!(!conf.exclude_path(Path::new("module.rs"))); } - + #[test] fn exclude_exact_file() { let matches = App::new("tarpaulin") .args_from_usage("--exclude-files [FILE]... 'Exclude given files from coverage results has * wildcard'") .get_matches_from_safe(vec!["tarpaulin", "--exclude-files", "*/lib.rs"]) .unwrap(); - let conf = Config::from_args(&matches); + let conf = Config::from(&matches); assert!(conf.exclude_path(Path::new("src/lib.rs"))); assert!(!conf.exclude_path(Path::new("src/mod.rs"))); assert!(!conf.exclude_path(Path::new("src/notlib.rs"))); @@ -314,7 +230,7 @@ mod tests { let rel_path = path_relative_from(path_b, path_a); assert_eq!(rel_path, None, "Did not expect relative path"); - + let path_a = Path::new("./this/should/form/a/rel/path/"); let path_b = Path::new("./this/should/form/b/rel/path/"); @@ -324,3 +240,4 @@ mod tests { assert_eq!(rel_path.unwrap().to_str().unwrap(), "../../../b/rel/path", "Wrong relative path"); } } + diff --git a/src/config/parse.rs b/src/config/parse.rs new file mode 100644 index 0000000000..e29f57013a --- /dev/null +++ b/src/config/parse.rs @@ -0,0 +1,92 @@ +use std::env; +use std::path::{PathBuf}; +use std::time::{Duration}; + +use clap::{ArgMatches}; +use coveralls_api::{CiService}; +use regex::{Regex}; + +use super::types::*; + + +pub(super) fn get_list(args: &ArgMatches, key: &str) -> Vec { + args.values_of_lossy(key).unwrap_or_else(Vec::new) +} + + +pub(super) fn get_line_cov(args: &ArgMatches) -> bool { + let cover_lines = args.is_present("line"); + let cover_branches = args.is_present("branch"); + + cover_lines || !(cover_lines || cover_branches) +} + + +pub(super) fn get_branch_cov(args: &ArgMatches) -> bool { + let cover_lines = args.is_present("line"); + let cover_branches = args.is_present("branch"); + + cover_branches || !(cover_lines || cover_branches) +} + + +pub(super) fn get_manifest(args: &ArgMatches) -> PathBuf { + let mut manifest = env::current_dir().unwrap(); + + if let Some(path) = args.value_of("root") { + manifest.push(path); + } + + manifest.push("Cargo.toml"); + manifest.canonicalize().unwrap_or(manifest) +} + + +pub(super) fn get_ci(args: &ArgMatches) -> Option { + value_t!(args, "ciserver", Ci).map(|x| x.0).ok() +} + + +pub(super) fn get_coveralls(args: &ArgMatches) -> Option { + args.value_of("coveralls").map(ToString::to_string) +} + + +pub(super) fn get_report_uri(args: &ArgMatches) -> Option { + args.value_of("report-uri").map(ToString::to_string) +} + + +pub(super) fn get_outputs(args: &ArgMatches) -> Vec { + values_t!(args.values_of("out"), OutputFile).unwrap_or(vec![]) +} + + +pub(super) fn get_excluded(args: &ArgMatches) -> Vec { + let mut files = vec![]; + + for temp_str in &get_list(args, "exclude-files") { + let s = &temp_str.replace(".", r"\.").replace("*", ".*"); + + if let Ok(re) = Regex::new(s) { + files.push(re); + } + else { + eprintln!("Invalid regex: {}", temp_str); + } + } + + files +} + + +pub(super) fn get_timeout(args: &ArgMatches) -> Duration { + if args.is_present("timeout") { + let duration = value_t!(args.value_of("timeout"), u64).unwrap_or(60); + Duration::from_secs(duration) + } + else { + Duration::from_secs(60) + } +} + diff --git a/src/config/types.rs b/src/config/types.rs new file mode 100644 index 0000000000..65b3eed5c2 --- /dev/null +++ b/src/config/types.rs @@ -0,0 +1,46 @@ +use std::str::{FromStr}; + +use coveralls_api::{CiService}; +use void::{Void}; + + +arg_enum! { + + #[derive(Debug)] + pub enum OutputFile { + Json, + Toml, + Stdout, + Xml, + } +} + +impl Default for OutputFile { + + #[inline] + fn default() -> Self { + OutputFile::Stdout + } +} + + +pub struct Ci(pub CiService); + +impl FromStr for Ci { + /// This can never fail, so the error type is uninhabited. + type Err = Void; + + #[inline] + fn from_str(x: &str) -> Result { + match x { + "circle-ci" => Ok(Ci(CiService::Circle)), + "codeship" => Ok(Ci(CiService::Codeship)), + "jenkins" => Ok(Ci(CiService::Jenkins)), + "semaphore" => Ok(Ci(CiService::Semaphore)), + "travis-ci" => Ok(Ci(CiService::Travis)), + "travis-pro" => Ok(Ci(CiService::TravisPro)), + other => Ok(Ci(CiService::Other(other.to_string()))), + } + } +} + diff --git a/src/lib.rs b/src/lib.rs index 0cf81b2b37..ba2458c688 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -16,15 +16,16 @@ extern crate serde; extern crate serde_json; extern crate quick_xml; extern crate regex; +extern crate void; extern crate walkdir; use std::env; use std::io; use std::ffi::CString; -use std::path::Path; +use std::path::{Path, PathBuf}; use nix::unistd::*; -use cargo::util::Config as CargoConfig; -use cargo::core::{Workspace, Package}; +use cargo::util::{homedir, Config as CargoConfig}; +use cargo::core::{Workspace, Package, compiler::CompileMode, Shell}; use cargo::ops; @@ -49,8 +50,8 @@ use traces::*; pub fn run(config: &Config) -> Result<(), i32> { - let (result, tp) = launch_tarpaulin(&config)?; - report_coverage(&config, &result); + let (result, tp) = launch_tarpaulin(config)?; + report_coverage(config, &result); if tp { Ok(()) } else { @@ -61,28 +62,43 @@ pub fn run(config: &Config) -> Result<(), i32> { /// Launches tarpaulin with the given configuration. pub fn launch_tarpaulin(config: &Config) -> Result<(TraceMap, bool), i32> { - let mut cargo_config = CargoConfig::default().unwrap(); + let cwd = match config.manifest.parent() { + Some(p) => p.to_path_buf(), + None => PathBuf::new(), + }; + let home = match homedir(&cwd) { + Some(h) => h, + None => { + println!("Warning failed to find home directory."); + PathBuf::new() + }, + }; + let mut cargo_config = CargoConfig::new(Shell::new(), cwd, home); let flag_quiet = if config.verbose { None } else { Some(true) }; // This shouldn't fail so no checking the error. - let _ = cargo_config.configure(0u32, flag_quiet, &None, false, false, &[]); + let _ = cargo_config.configure(0u32, flag_quiet, &None, false, false, &None, &[]); - let workspace = Workspace::new(config.manifest.as_path(), &cargo_config).map_err(|_| 1i32)?; + let workspace = Workspace::new(config.manifest.as_path(), &cargo_config) + .map_err(|_| 1i32)?; setup_environment(); - - let mut copt = ops::CompileOptions::default(&cargo_config, ops::CompileMode::Test); + + let mut copt = ops::CompileOptions::new(&cargo_config, CompileMode::Test) + .map_err(|_| 1i32)?; if let ops::CompileFilter::Default{ref mut required_features_filterable} = copt.filter { *required_features_filterable = true; } - copt.features = config.features.as_slice(); + copt.features = config.features.clone(); copt.all_features = config.all_features; - copt.spec = match ops::Packages::from_flags(workspace.is_virtual(), config.all, &config.exclude, &config.packages) { + copt.spec = match ops::Packages::from_flags(config.all, + config.exclude.clone(), + config.packages.clone()) { Ok(spec) => spec, - Err(e) => { + Err(e) => { println!("Error getting Packages from workspace {}", e); return Err(-1) } @@ -97,9 +113,10 @@ pub fn launch_tarpaulin(config: &Config) -> Result<(TraceMap, bool), i32> { // Clean isn't expected to fail and if it does it likely won't have an effect let clean_opt = ops::CleanOptions { config: &cargo_config, - spec: &[], + spec: vec![], target: None, release: false, + doc: false, }; let _ = ops::clean(&workspace, &clean_opt); } @@ -113,13 +130,13 @@ pub fn launch_tarpaulin(config: &Config) -> Result<(TraceMap, bool), i32> { if config.verbose { println!("Processing {}", name); } - if let Some((res, tp)) = get_test_coverage(&workspace, package, path.as_path(), &config, false) { + if let Some((res, tp)) = get_test_coverage(&workspace, package, path.as_path(), config, false) { result.merge(&res); test_passed &= tp; } if config.run_ignored { if let Some((res, tp)) = get_test_coverage(&workspace, package, path.as_path(), - &config, true) { + config, true) { result.merge(&res); test_passed &= tp; } @@ -209,7 +226,7 @@ pub fn report_coverage(config: &Config, result: &TraceMap) { } let percent = result.coverage_percentage() * 100.0f64; // Put file filtering here - println!("\n{:.2}% coverage, {}/{} lines covered", percent, + println!("\n{:.2}% coverage, {}/{} lines covered", percent, result.total_covered(), result.total_coverable()); if config.is_coveralls() { report::coveralls::export(result, config); @@ -233,14 +250,14 @@ pub fn report_coverage(config: &Config, result: &TraceMap) { } /// Returns the coverage statistics for a test executable in the given workspace -pub fn get_test_coverage(project: &Workspace, +pub fn get_test_coverage(project: &Workspace, package: &Package, - test: &Path, - config: &Config, + test: &Path, + config: &Config, ignored: bool) -> Option<(TraceMap, bool)> { if !test.exists() { return None; - } + } match fork() { Ok(ForkResult::Parent{ child }) => { match collect_coverage(project, test, child, config) { @@ -258,7 +275,7 @@ pub fn get_test_coverage(project: &Workspace, execute_test(test, package, ignored, config); None } - Err(err) => { + Err(err) => { println!("Failed to run {}", test.display()); println!("Error {}", err); None @@ -268,8 +285,8 @@ pub fn get_test_coverage(project: &Workspace, } /// Collects the coverage data from the launched test -fn collect_coverage(project: &Workspace, - test_path: &Path, +fn collect_coverage(project: &Workspace, + test_path: &Path, test: Pid, config: &Config) -> io::Result<(TraceMap, bool)> { let mut test_passed = false; @@ -308,7 +325,7 @@ fn execute_test(test: &Path, package: &Package, ignored: bool, config: &Config) if let Some(parent) = package.manifest_path().parent() { let _ = env::set_current_dir(parent); } - + let mut envars: Vec = vec![CString::new("RUST_TEST_THREADS=1").unwrap()]; for (key, value) in env::vars() { let mut temp = String::new(); diff --git a/src/main.rs b/src/main.rs index 84f59467a6..b015d95a52 100644 --- a/src/main.rs +++ b/src/main.rs @@ -22,7 +22,7 @@ fn is_dir(d: String) -> Result<(), String> { } } -const CI_SERVER_HELP: &'static str = +const CI_SERVER_HELP: &'static str = "Name of service, supported services are: travis-ci, travis-pro, circle-ci, semaphore, jenkins and codeship. If you are interfacing with coveralls.io or another site you can \ @@ -41,7 +41,7 @@ fn main() { "--verbose -v 'Show extra output' --ignore-tests 'ignore lines of test functions when collecting coverage' --ignore-panics 'ignore panic macros in tests' - --no-count 'Disables counting line hits for a faster run (default)' + --count 'Counts the number of hits during coverage' --ignored -i 'Run ignored tests as well' --line -l 'Line coverage' --skip-clean 'Skips the clean stage to reduce build times, may affect coverage results' @@ -57,8 +57,6 @@ fn main() { --exclude-files [FILE]... 'Exclude given files from coverage results has * wildcard' --timeout -t [SECONDS] 'Integer for the maximum time in seconds without response from test before timeout (default is 1 minute).'") .args(&[ - Arg::from_usage("--count 'Counts the number of hits during line coverage'") - .conflicts_with("no-count"), Arg::from_usage("--out -o [FMT] 'Output format of coverage report'") .possible_values(&OutputFile::variants()) .multiple(true), @@ -74,7 +72,7 @@ fn main() { .get_matches(); let args = args.subcommand_matches("tarpaulin").unwrap_or(&args); - let config = Config::from_args(args); + let config = Config::from(args); match run(&config) { Ok(()) => println!("Tarpaulin finished"), Err(e) => { diff --git a/src/ptrace_control.rs b/src/ptrace_control.rs index b21dace90c..9e768fd961 100644 --- a/src/ptrace_control.rs +++ b/src/ptrace_control.rs @@ -10,9 +10,9 @@ const RIP: u8 = 128; pub fn trace_children(pid: Pid) -> Result<()> { //TODO need to check support. - let options: Options = Options::PTRACE_O_TRACESYSGOOD | - Options::PTRACE_O_TRACEEXEC | Options::PTRACE_O_TRACEEXIT | - Options::PTRACE_O_TRACECLONE | Options::PTRACE_O_TRACEFORK | + let options: Options = Options::PTRACE_O_TRACESYSGOOD | + Options::PTRACE_O_TRACEEXEC | Options::PTRACE_O_TRACEEXIT | + Options::PTRACE_O_TRACECLONE | Options::PTRACE_O_TRACEFORK | Options::PTRACE_O_TRACEVFORK; setoptions(pid, options) } @@ -41,7 +41,7 @@ pub fn read_address(pid: Pid, address:u64) -> Result { #[allow(deprecated)] pub fn write_to_address(pid: Pid, - address: u64, + address: u64, data: i64) -> Result { unsafe { ptrace(Request::PTRACE_POKEDATA, pid, address as * mut c_void, data as * mut c_void) diff --git a/src/report/cobertura.rs b/src/report/cobertura.rs index 4e6d36332a..5ef99bd689 100644 --- a/src/report/cobertura.rs +++ b/src/report/cobertura.rs @@ -13,10 +13,10 @@ use config::Config; fn write_header(writer: &mut Writer, config: &Config) -> Result { - + writer.write_event(Event::Start(BytesStart::borrowed(b"sources", b"sources".len())))?; writer.write_event(Event::Start(BytesStart::borrowed(b"source", b"source".len())))?; - + let parent_folder = match config.manifest.parent() { Some(s) => s.to_str().unwrap_or_default(), None => "", @@ -28,20 +28,20 @@ fn write_header(writer: &mut Writer, config: &Config) -> Result(writer: &mut Writer, - manifest_path: &Path, +fn write_class(writer: &mut Writer, + manifest_path: &Path, filename: &Path, coverage: &TraceMap) ->Result { if !coverage.is_empty() { let covered = coverage.covered_in_path(filename); let covered = (covered as f32)/(coverage.coverable_in_path(filename) as f32); - + let tidy_filename = match filename.strip_prefix(manifest_path) { Ok(p) => p, _ => filename, }; let name = filename.file_stem().unwrap_or_default().to_str().unwrap_or_default(); - + let mut class = BytesStart::owned(b"class".to_vec(), b"class".len()); class.push_attribute(("name", name)); class.push_attribute(("filename", tidy_filename.to_str().unwrap_or_default())); @@ -72,7 +72,7 @@ fn write_class(writer: &mut Writer, } /// Input only tracer data from a single source folder -fn write_package(mut writer: &mut Writer, +fn write_package(mut writer: &mut Writer, package: &Path, manifest_path: &Path, package_name: &str, @@ -100,9 +100,9 @@ fn write_package(mut writer: &mut Writer, pub fn export(coverage_data: &TraceMap, config: &Config) { let mut file = File::create("cobertura.xml").unwrap(); - let mut writer = Writer::new(Cursor::new(Vec::new())); + let mut writer = Writer::new(Cursor::new(Vec::new())); writer.write_event(Event::Decl(BytesDecl::new(b"1.0", None, None))).unwrap(); - // Construct cobertura xml + // Construct cobertura xml let line_rate = coverage_data.coverage_percentage(); let mut cov = BytesStart::owned(b"coverage".to_vec(), b"coverage".len()); cov.push_attribute(("line-rate", line_rate.to_string().as_ref())); @@ -119,7 +119,7 @@ pub fn export(coverage_data: &TraceMap, config: &Config) { let _ = write_header(&mut writer, &config); // other data writer.write_event(Event::Start(BytesStart::borrowed(b"packages", b"packages".len()))).unwrap(); - + let mut folder_set: HashSet<&Path> = HashSet::new(); for t in &coverage_data.files() { let parent = match t.parent() { diff --git a/src/report/coveralls.rs b/src/report/coveralls.rs index f3eb59a020..4744427a7d 100644 --- a/src/report/coveralls.rs +++ b/src/report/coveralls.rs @@ -12,18 +12,18 @@ pub fn export(coverage_data: &TraceMap, config: &Config) { }), _ => Identity::RepoToken(key.clone()), }; - let mut report = CoverallsReport::new(id); + let mut report = CoverallsReport::new(id); for file in &coverage_data.files() { let rel_path = config.strip_project_path(file); let mut lines: HashMap = HashMap::new(); let fcov = coverage_data.get_child_traces(file); - + for c in &fcov { match c.stats { CoverageStat::Line(hits) => { lines.insert(c.line as usize, hits as usize); }, - _ => { + _ => { println!("Support for coverage statistic not implemented or supported for coveralls.io"); }, } diff --git a/src/report/mod.rs b/src/report/mod.rs index b58e40130f..f5f107dfbd 100644 --- a/src/report/mod.rs +++ b/src/report/mod.rs @@ -4,10 +4,10 @@ use serde::Serialize; pub mod cobertura; pub mod coveralls; -/// Trait for report formats to implement. +/// Trait for report formats to implement. /// Currently reports must be serializable using serde pub trait Report { /// Export coverage report fn export(coverage_data: &[TracerData], config: &Config); - + } diff --git a/src/source_analysis.rs b/src/source_analysis.rs index f64709ecda..3dd7aee4e0 100644 --- a/src/source_analysis.rs +++ b/src/source_analysis.rs @@ -21,7 +21,7 @@ pub enum Lines { /// in question as this is expected to be maintained by the user. #[derive(Clone, Debug)] pub struct LineAnalysis { - /// This represents lines that should be ignored in coverage + /// This represents lines that should be ignored in coverage /// but may be identifed as coverable in the DWARF tables pub ignore: HashSet, /// This represents lines that should be included in coverage @@ -111,7 +111,7 @@ impl LineAnalysis { true }; if is_code && !SINGLE_LINE.is_match(line) { - useful_lines.insert(i+1); + useful_lines.insert(i+1); } } } @@ -126,7 +126,7 @@ impl LineAnalysis { pub fn should_ignore(&self, line: usize) -> bool { self.ignore.contains(&Lines::Line(line)) || self.ignore.contains(&Lines::All) } - + /// Adds a line to the list of lines to ignore fn add_to_ignore(&mut self, lines: &[usize]) { if !self.ignore.contains(&Lines::All) { @@ -155,7 +155,7 @@ fn is_target_folder(entry: &DirEntry, root: &Path) -> bool { /// Returns a list of files and line numbers to ignore (not indexes!) pub fn get_line_analysis(project: &Workspace, config: &Config) -> HashMap { let mut result: HashMap = HashMap::new(); - + let mut ignored_files: HashSet = HashSet::new(); let walker = WalkDir::new(project.root()).into_iter(); @@ -163,14 +163,14 @@ pub fn get_line_analysis(project: &Workspace, config: &Config) -> HashMap) { l.add_to_ignore(&[1]); result.insert(file, l); } - } + } } } } @@ -215,18 +215,18 @@ struct Context<'a> { /// Analyses a package of the target crate. -fn analyse_package(path: &Path, +fn analyse_package(path: &Path, root: &Path, - config:&Config, + config:&Config, result: &mut HashMap, filtered_files: &mut HashSet) { if let Some(file) = path.to_str() { - let skip_cause_test = config.ignore_tests && + let skip_cause_test = config.ignore_tests && path.starts_with(root.join("tests")); let skip_cause_example = path.starts_with(root.join("examples")); if !(skip_cause_test || skip_cause_example) { - let file = File::open(file); + let file = File::open(file); if let Ok(mut file) = file { let mut content = String::new(); let _ = file.read_to_string(&mut content); @@ -306,7 +306,7 @@ fn process_items(items: &[Item], ctx: &Context, analysis: &mut LineAnalysis) -> } }, _ =>{} - } + } } res } @@ -337,14 +337,14 @@ fn process_statements(stmts: &[Stmt], ctx: &Context, analysis: &mut LineAnalysis fn visit_mod(module: &ItemMod, analysis: &mut LineAnalysis, ctx: &Context) { - analysis.ignore_span(module.mod_token.0); + analysis.ignore_span(module.mod_token.span()); let mut check_insides = true; for attr in &module.attrs { if let Some(x) = attr.interpret_meta() { if check_cfg_attr(&x) { analysis.ignore_span(module.span()); if let Some((ref braces, _)) = module.content { - analysis.ignore_span(braces.0); + analysis.ignore_span(braces.span); } check_insides = false; break; @@ -357,9 +357,9 @@ fn visit_mod(module: &ItemMod, analysis: &mut LineAnalysis, ctx: &Context) { if let NestedMeta::Meta(Meta::Word(ref i)) = *nested { if i == "test" { check_insides = false; - analysis.ignore_span(module.mod_token.0); + analysis.ignore_span(module.mod_token.span()); if let Some((ref braces, _)) = module.content { - analysis.ignore_span(braces.0); + analysis.ignore_span(braces.span); } } } @@ -375,14 +375,14 @@ fn visit_mod(module: &ItemMod, analysis: &mut LineAnalysis, ctx: &Context) { } else { // Get the file or directory name of the module let mut p = if let Some(parent) = ctx.file.parent() { - parent.join(module.ident.to_string()) + parent.join(module.ident.to_string()) } else { PathBuf::from(module.ident.to_string()) }; - if !p.exists() { + if !p.exists() { p.set_extension("rs"); } - ctx.ignore_mods.borrow_mut().insert(p); + ctx.ignore_mods.borrow_mut().insert(p); } } @@ -398,7 +398,7 @@ fn visit_fn(func: &ItemFn, analysis: &mut LineAnalysis, ctx: &Context) { if id == "test" { test_func = true; } else if id == "derive" { - analysis.ignore_span(attr.bracket_token.0); + analysis.ignore_span(attr.bracket_token.span); } else if id == "inline" { is_inline = true; } else if id == "ignore" { @@ -418,7 +418,7 @@ fn visit_fn(func: &ItemFn, analysis: &mut LineAnalysis, ctx: &Context) { } else { if is_inline { // We need to force cover! - analysis.cover_span(func.block.brace_token.0, Some(ctx.file_contents)); + analysis.cover_span(func.block.brace_token.span, Some(ctx.file_contents)); } if let SubResult::Unreachable = process_statements(&func.block.stmts, ctx, analysis) { // if the whole body of the function is unreachable, that means the function itself @@ -429,8 +429,8 @@ fn visit_fn(func: &ItemFn, analysis: &mut LineAnalysis, ctx: &Context) { visit_generics(&func.decl.generics, analysis); let line_number = func.decl.fn_token.span().start().line; analysis.ignore.remove(&Lines::Line(line_number)); - // Ignore multiple lines of fn decl - let decl_start = func.decl.fn_token.0.start().line+1; + // Ignore multiple lines of fn decl + let decl_start = func.decl.fn_token.span().start().line+1; let stmts_start = func.block.span().start().line; let lines = (decl_start..(stmts_start+1)).collect::>(); analysis.add_to_ignore(&lines); @@ -486,7 +486,7 @@ fn check_cfg_attr(attr: &Meta) -> bool { ignore_span = skip_match; } } - ignore_span + ignore_span } @@ -500,9 +500,9 @@ fn visit_trait(trait_item: &ItemTrait, analysis: &mut LineAnalysis, ctx: &Contex analysis.cover_span(item.span(), Some(ctx.file_contents)); visit_generics(&i.sig.decl.generics, analysis); analysis.ignore.remove(&Lines::Line(i.sig.span().start().line)); - - // Ignore multiple lines of fn decl - let decl_start = i.sig.decl.fn_token.0.start().line+1; + + // Ignore multiple lines of fn decl + let decl_start = i.sig.decl.fn_token.span().start().line+1; let stmts_start = block.span().start().line; let lines = (decl_start..(stmts_start+1)).collect::>(); analysis.add_to_ignore(&lines); @@ -535,12 +535,12 @@ fn visit_impl(impl_blk: &ItemImpl, analysis: &mut LineAnalysis, ctx: &Context) { analysis.ignore_span(i.span()); return } - + visit_generics(&i.sig.decl.generics, analysis); analysis.ignore.remove(&Lines::Line(i.span().start().line)); - - // Ignore multiple lines of fn decl - let decl_start = i.sig.decl.fn_token.0.start().line+1; + + // Ignore multiple lines of fn decl + let decl_start = i.sig.decl.fn_token.span().start().line+1; let stmts_start = i.block.span().start().line; let lines = (decl_start..(stmts_start+1)).collect::>(); analysis.add_to_ignore(&lines); @@ -576,9 +576,7 @@ fn process_expr(expr: &Expr, ctx: &Context, analysis: &mut LineAnalysis) -> SubR Expr::Match(ref m) => visit_match(&m, ctx, analysis), Expr::Block(ref b) => visit_block(&b.block, ctx, analysis), Expr::If(ref i) => visit_if(&i, ctx, analysis), - Expr::IfLet(ref i) => visit_if_let(&i, ctx, analysis), Expr::While(ref w) => visit_while(&w, ctx, analysis), - Expr::WhileLet(ref w) => visit_while_let(&w, ctx, analysis), Expr::ForLoop(ref f) => visit_for(&f, ctx, analysis), Expr::Loop(ref l) => visit_loop(&l, ctx, analysis), // don't try to compute unreachability on other things @@ -641,27 +639,6 @@ fn visit_if(if_block: &ExprIf, ctx: &Context, analysis: &mut LineAnalysis) -> Su } -fn visit_if_let(if_let: &ExprIfLet, ctx: &Context, analysis: &mut LineAnalysis) -> SubResult { - // an if let expression is unreachable iff both its branches are unreachable - let mut reachable_arm = false; - if let SubResult::Ok = visit_block(&if_let.then_branch, ctx, analysis) { - reachable_arm = true; - } - if let Some((_ ,ref else_block)) = if_let.else_branch { - if let SubResult::Ok = process_expr(&else_block, ctx, analysis) { - reachable_arm = true; - } - } else { - // an empty else branch is reachable - reachable_arm = true; - } - if !reachable_arm { - analysis.ignore_span(if_let.span()); - SubResult::Unreachable - } else { - SubResult::Ok - } -} fn visit_while(whl: &ExprWhile, ctx: &Context, analysis: &mut LineAnalysis) -> SubResult { @@ -675,17 +652,6 @@ fn visit_while(whl: &ExprWhile, ctx: &Context, analysis: &mut LineAnalysis) -> S } -fn visit_while_let(while_let: &ExprWhileLet, ctx: &Context, analysis: &mut LineAnalysis) -> SubResult { - // a while block is unreachable iff its body is - if let SubResult::Unreachable = visit_block(&while_let.body, ctx, analysis) { - analysis.ignore_span(while_let.span()); - SubResult::Unreachable - } else { - SubResult::Ok - } -} - - fn visit_for(for_loop: &ExprForLoop, ctx: &Context, analysis: &mut LineAnalysis) -> SubResult { // a for block is unreachable iff its body is if let SubResult::Unreachable = visit_block(&for_loop.body, ctx, analysis) { @@ -750,11 +716,11 @@ fn visit_methodcall(meth: &ExprMethodCall, analysis: &mut LineAnalysis) -> SubRe fn visit_unsafe_block(unsafe_expr: &ExprUnsafe, ctx: &Context, analysis: &mut LineAnalysis) -> SubResult { - let u_line = unsafe_expr.unsafe_token.0.start().line; + let u_line = unsafe_expr.unsafe_token.span().start().line; let blk = &unsafe_expr.block; - if u_line != blk.brace_token.0.start().line || blk.stmts.is_empty() { - analysis.ignore_span(unsafe_expr.unsafe_token.0); + if u_line != blk.brace_token.span.start().line || blk.stmts.is_empty() { + analysis.ignore_span(unsafe_expr.unsafe_token.span()); } else if let Some(ref first_stmt) = blk.stmts.get(0) { let s = match **first_stmt { Stmt::Local(ref l) => l.span(), @@ -763,15 +729,15 @@ fn visit_unsafe_block(unsafe_expr: &ExprUnsafe, ctx: &Context, analysis: &mut Li Stmt::Semi(ref e, _) => e.span(), }; if u_line != s.start().line { - analysis.ignore_span(unsafe_expr.unsafe_token.0); + analysis.ignore_span(unsafe_expr.unsafe_token.span()); } if let SubResult::Unreachable = process_statements(&blk.stmts, ctx, analysis) { analysis.ignore_span(unsafe_expr.span()); return SubResult::Unreachable; } } else { - analysis.ignore_span(unsafe_expr.unsafe_token.0); - analysis.ignore_span(blk.brace_token.0); + analysis.ignore_span(unsafe_expr.unsafe_token.span()); + analysis.ignore_span(blk.brace_token.span); } SubResult::Ok } @@ -792,7 +758,7 @@ fn visit_struct_expr(structure: &ExprStruct, analysis: &mut LineAnalysis) -> Sub }; match first.expr { Expr::Lit(_) | Expr::Path(_) => {}, - _=>{ + _=>{ cover.insert(span.start().line); }, } @@ -812,7 +778,7 @@ fn visit_macro_call(mac: &Macro, ctx: &Context, analysis: &mut LineAnalysis) -> if let Some(End(ref name)) = mac.path.segments.last() { let unreachable = name.ident == "unreachable"; let standard_ignores = name.ident == "unimplemented" || name.ident == "include"; - let ignore_panic = ctx.config.ignore_panics && name.ident == "panic"; + let ignore_panic = ctx.config.ignore_panics && name.ident == "panic"; if standard_ignores || ignore_panic || unreachable { analysis.ignore_span(mac.span()); skip = true; @@ -820,7 +786,7 @@ fn visit_macro_call(mac: &Macro, ctx: &Context, analysis: &mut LineAnalysis) -> if unreachable { return SubResult::Unreachable } - + } if !skip { let lines = process_mac_args(&mac.tts); @@ -839,7 +805,7 @@ fn process_mac_args(tokens: &TokenStream) -> HashSet { let t = token.span(); match token { TokenTree::Literal(_) | TokenTree::Punct{..} => {}, - _ => { + _ => { for i in t.start().line..(t.end().line+1) { cover.insert(i); } @@ -860,7 +826,7 @@ mod tests { let mut la = LineAnalysis::new(); assert!(!la.should_ignore(0)); assert!(!la.should_ignore(10)); - + la.add_to_ignore(&[3,4, 10]); assert!(la.should_ignore(3)); assert!(la.should_ignore(4)); @@ -868,7 +834,7 @@ mod tests { assert!(!la.should_ignore(1)); } - #[test] + #[test] fn filter_str_literals() { let mut lines = LineAnalysis::new(); let config = Config::default(); @@ -883,7 +849,7 @@ mod tests { assert!(lines.ignore.len() > 1); assert!(lines.ignore.contains(&Lines::Line(3))); assert!(lines.ignore.contains(&Lines::Line(4))); - + let ctx = Context { config: &config, file_contents: "fn test() {\nwrite(\"test\ntest\ntest\");\n}\nfn write(s:&str){}", @@ -896,7 +862,7 @@ mod tests { assert!(lines.ignore.len() > 1); assert!(lines.ignore.contains(&Lines::Line(3))); assert!(lines.ignore.contains(&Lines::Line(4))); - + let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, @@ -921,12 +887,12 @@ mod tests { }; let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); - + assert!(lines.ignore.len()> 3); - assert!(lines.ignore.contains(&Lines::Line(1))); - assert!(lines.ignore.contains(&Lines::Line(3))); - assert!(lines.ignore.contains(&Lines::Line(4))); - + assert!(lines.ignore.contains(&Lines::Line(1))); + assert!(lines.ignore.contains(&Lines::Line(3))); + assert!(lines.ignore.contains(&Lines::Line(4))); + let ctx = Context { config: &config, file_contents: "#[derive(Debug)]\npub struct Struct (\n i32\n);", @@ -935,9 +901,9 @@ mod tests { }; let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); - + assert!(!lines.ignore.is_empty()); - assert!(lines.ignore.contains(&Lines::Line(3))); + assert!(lines.ignore.contains(&Lines::Line(3))); } #[test] @@ -952,13 +918,13 @@ mod tests { }; let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); - + assert!(lines.ignore.len()> 3); - assert!(lines.ignore.contains(&Lines::Line(3))); - assert!(lines.ignore.contains(&Lines::Line(4))); - assert!(lines.ignore.contains(&Lines::Line(5))); - assert!(lines.ignore.contains(&Lines::Line(6))); - assert!(lines.ignore.contains(&Lines::Line(7))); + assert!(lines.ignore.contains(&Lines::Line(3))); + assert!(lines.ignore.contains(&Lines::Line(4))); + assert!(lines.ignore.contains(&Lines::Line(5))); + assert!(lines.ignore.contains(&Lines::Line(6))); + assert!(lines.ignore.contains(&Lines::Line(7))); } #[test] @@ -996,7 +962,7 @@ mod tests { let mut lines = LineAnalysis::new(); process_items(&parser.items, &ctx, &mut lines); assert!(!lines.ignore.contains(&Lines::Line(3))); - + let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, @@ -1007,7 +973,7 @@ mod tests { let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); assert!(lines.ignore.contains(&Lines::Line(1))); - + let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, @@ -1032,7 +998,7 @@ mod tests { }; let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); - + // Braces should be ignored so number could be higher assert!(lines.ignore.len() >= 1); assert!(lines.ignore.contains(&Lines::Line(4))); @@ -1047,10 +1013,10 @@ mod tests { process_items(&parser.items, &ctx, &mut lines); assert!(lines.ignore.len() >= 1); assert!(lines.ignore.contains(&Lines::Line(4))); - + let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "fn unreachable_match(x: u32) -> u32 { match x { 1 => 5, @@ -1064,7 +1030,7 @@ mod tests { let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); assert!(lines.ignore.contains(&Lines::Line(5))); - + let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, @@ -1076,7 +1042,7 @@ mod tests { process_items(&parser.items, &ctx, &mut lines); assert!(!lines.ignore.contains(&Lines::Line(2))); } - + #[test] fn filter_tests() { let config = Config::default(); @@ -1093,7 +1059,7 @@ mod tests { let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); assert!(!lines.ignore.contains(&Lines::Line(4))); - + let ctx = Context { config: &igconfig, file_contents: "#[cfg(test)]\nmod tests {\n fn boo(){\nassert!(true);\n}\n}", @@ -1138,7 +1104,7 @@ mod tests { let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, - file_contents: "trait Thing { + file_contents: "trait Thing { #[cfg(test)] fn boo(){ assert!(true); @@ -1152,13 +1118,13 @@ mod tests { assert!(lines.ignore.contains(&Lines::Line(2))); assert!(lines.ignore.contains(&Lines::Line(3))); assert!(lines.ignore.contains(&Lines::Line(4))); - + let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, - file_contents: "trait Thing { + file_contents: "trait Thing { #[cfg(test)] fn boo(){ assert!(true); @@ -1189,11 +1155,11 @@ mod tests { let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); assert!(!lines.ignore.contains(&Lines::Line(1))); - + let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, - file_contents: "fn boop() -> T + file_contents: "fn boop() -> T where T:Default { T::default() }", @@ -1203,12 +1169,12 @@ mod tests { let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); assert!(lines.ignore.contains(&Lines::Line(2))); - + let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, file_contents: "trait foof { - fn boop() -> T + fn boop() -> T where T:Default { T::default() } @@ -1254,7 +1220,7 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "fn unsafe_fn() {\n let x=1;\nunsafe {\nprintln!(\"{}\", x);\n}\n}", file: Path::new(""), ignore_mods: RefCell::new(HashSet::new()), @@ -1263,10 +1229,10 @@ mod tests { process_items(&parser.items, &ctx, &mut lines); assert!(lines.ignore.contains(&Lines::Line(3))); assert!(!lines.ignore.contains(&Lines::Line(4))); - + let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "fn unsafe_fn() {\n let x=1;\nunsafe {println!(\"{}\", x);}\n}", file: Path::new(""), ignore_mods: RefCell::new(HashSet::new()), @@ -1281,7 +1247,7 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "struct GenericStruct(T); impl GenericStruct { fn hw(&self) { @@ -1298,11 +1264,11 @@ mod tests { let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "struct GenericStruct{v:Vec} impl Default for GenericStruct { fn default() -> Self { - T { + T { v: vec![], } } @@ -1320,7 +1286,7 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "trait Thing { fn hw(&self) { println!(\"hello world\"); @@ -1341,26 +1307,26 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, - file_contents: "struct Thing; - impl Thing{ - fn hw(&self, name: &str) { - println!(\"hello {}\", name); + config: &config, + file_contents: "struct Thing; + impl Thing{ + fn hw(&self, name: &str) { + println!(\"hello {}\", name); } //5 - } - - fn get_name() -> String { - return \"Daniel\".to_string() + } + + fn get_name() -> String { + return \"Daniel\".to_string() } //10 - - fn main() { - let s=Thing{}; - s.hw( + + fn main() { + let s=Thing{}; + s.hw( \"Paul\" //15 - ); - - s.hw( - &get_name() + ); + + s.hw( + &get_name() ); //20 }", file: Path::new(""), @@ -1377,7 +1343,7 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "use std::collections::HashMap; use std::{ffi::CString, os::raw::c_char};", file: Path::new(""), @@ -1394,10 +1360,10 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "#[inline] fn inline_func() { - // I shouldn't be covered + // I shouldn't be covered println!(\"I should\"); /* None of us should @@ -1423,12 +1389,12 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "#[cfg_attr(tarpaulin, skip)] fn skipped() { println!(\"Hello world\"); } - + #[cfg_attr(tarpaulin, not_a_thing)] fn covered() { println!(\"hell world\"); @@ -1443,16 +1409,16 @@ mod tests { assert!(lines.ignore.contains(&Lines::Line(3))); assert!(!lines.ignore.contains(&Lines::Line(7))); assert!(!lines.ignore.contains(&Lines::Line(8))); - + let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "#[cfg_attr(tarpaulin, skip)] mod ignore_all { fn skipped() { println!(\"Hello world\"); } - + #[cfg_attr(tarpaulin, not_a_thing)] fn covered() { println!(\"hell world\"); @@ -1476,14 +1442,14 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "#[cfg_attr(tarpaulin, skip)] trait Foo { fn bar() { println!(\"Hello world\"); } - - + + fn not_covered() { println!(\"hell world\"); } @@ -1498,16 +1464,16 @@ mod tests { assert!(lines.ignore.contains(&Lines::Line(4))); assert!(lines.ignore.contains(&Lines::Line(8))); assert!(lines.ignore.contains(&Lines::Line(9))); - + let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "trait Foo { fn bar() { println!(\"Hello world\"); } - - #[cfg_attr(tarpaulin, skip)] + + #[cfg_attr(tarpaulin, skip)] fn not_covered() { println!(\"hell world\"); } @@ -1523,22 +1489,22 @@ mod tests { assert!(lines.ignore.contains(&Lines::Line(7))); assert!(lines.ignore.contains(&Lines::Line(8))); } - - + + #[test] fn tarpaulin_skip_impl_attrs() { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "struct Foo; #[cfg_attr(tarpaulin, skip)] impl Foo { fn bar() { println!(\"Hello world\"); } - - + + fn not_covered() { println!(\"hell world\"); } @@ -1553,17 +1519,17 @@ mod tests { assert!(lines.ignore.contains(&Lines::Line(5))); assert!(lines.ignore.contains(&Lines::Line(9))); assert!(lines.ignore.contains(&Lines::Line(10))); - + let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "struct Foo; impl Foo { fn bar() { println!(\"Hello world\"); } - - + + #[cfg_attr(tarpaulin, skip)] fn not_covered() { println!(\"hell world\"); @@ -1580,19 +1546,19 @@ mod tests { assert!(lines.ignore.contains(&Lines::Line(9))); assert!(lines.ignore.contains(&Lines::Line(10))); } - - + + #[test] fn filter_block_contents() { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "fn unreachable_match(x: u32) -> u32 { match x { 1 => 5, 2 => 7, - _ => { + _ => { unreachable!(); }, } @@ -1610,7 +1576,7 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "fn unreachable_match(x: u32) -> u32 { match x { 1 => 5, @@ -1624,12 +1590,12 @@ mod tests { let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); assert!(!lines.ignore.contains(&Lines::Line(5))); - + let mut config = Config::default(); config.ignore_panics = true; let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "fn unreachable_match(x: u32) -> u32 { match x { 1 => 5, @@ -1640,7 +1606,7 @@ mod tests { file: Path::new(""), ignore_mods: RefCell::new(HashSet::new()), }; - + let parser = parse_file(ctx.file_contents).unwrap(); process_items(&parser.items, &ctx, &mut lines); assert!(lines.ignore.contains(&Lines::Line(5))); @@ -1651,14 +1617,14 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "fn block() { { loop { for i in 1..2 { if false { while let Some(x) = Some(6) { - while false { + while false { if let Ok(y) = Ok(4) { unreachable!(); } @@ -1682,7 +1648,7 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "fn print_it(x:u32, y:u32, z:u32) { @@ -1695,10 +1661,10 @@ mod tests { process_items(&parser.items, &ctx, &mut lines); assert!(lines.ignore.contains(&Lines::Line(2))); assert!(lines.ignore.contains(&Lines::Line(3))); - + let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "struct Boo; impl Boo { fn print_it(x:u32, @@ -1714,7 +1680,7 @@ mod tests { process_items(&parser.items, &ctx, &mut lines); assert!(lines.ignore.contains(&Lines::Line(4))); assert!(lines.ignore.contains(&Lines::Line(5))); - + let mut lines = LineAnalysis::new(); let ctx = Context { config: &config, @@ -1739,7 +1705,7 @@ mod tests { let config = Config::default(); let mut lines = LineAnalysis::new(); let ctx = Context { - config: &config, + config: &config, file_contents: "enum Void {} fn empty_match(x: Void) -> u32 { match x { diff --git a/src/statemachine.rs b/src/statemachine.rs index 263aa93043..563fe66054 100644 --- a/src/statemachine.rs +++ b/src/statemachine.rs @@ -16,14 +16,14 @@ use config::Config; #[derive(Debug, Copy, Clone, Eq, PartialEq)] pub enum TestState { /// Start state. Wait for test to appear and track time to enable timeout - Start { - start_time: Instant, + Start { + start_time: Instant, }, - /// Initialise: once test process appears instrument + /// Initialise: once test process appears instrument Initialise , /// Waiting for breakpoint to be hit or test to end - Waiting { - start_time: Instant, + Waiting { + start_time: Instant, }, /// Test process stopped, check coverage Stopped, @@ -34,13 +34,13 @@ pub enum TestState { /// Test exited normally. Includes the exit code of the test executable. End(i32), /// An error occurred that indicates no future runs will succeed such as - /// PIE issues in OS. + /// PIE issues in OS. Abort, } -/// Tracing a process on an OS will have platform specific code. +/// Tracing a process on an OS will have platform specific code. /// Structs containing the platform specific datastructures should -/// provide this trait with an implementation of the handling of +/// provide this trait with an implementation of the handling of /// the given states. pub trait StateData { /// Starts the tracing. Returns None while waiting for @@ -48,7 +48,7 @@ pub trait StateData { fn start(&mut self) -> Option; /// Initialises test for tracing returns next state fn init(&mut self) -> TestState; - /// Waits for notification from test executable that there's + /// Waits for notification from test executable that there's /// something to do. Selects the next appropriate state if there's /// something to do otherwise None fn wait(&mut self) -> Option; @@ -78,7 +78,7 @@ impl TestState { fn wait_state() -> TestState { TestState::Waiting{start_time: Instant::now()} } - + /// Updates the state machine state pub fn step(self, data: &mut T, config: &Config) -> TestState { match self { @@ -94,7 +94,7 @@ impl TestState { }, TestState::Initialise => { data.init() - }, + }, TestState::Waiting{start_time} => { if let Some(s) =data.wait() { s @@ -119,7 +119,7 @@ impl TestState { TestState::End(-1) }, _ => { - // Unhandled + // Unhandled if config.verbose { println!("Tarpaulin error: unhandled test state"); } @@ -130,8 +130,8 @@ impl TestState { } -pub fn create_state_machine<'a>(test: Pid, - traces: &'a mut TraceMap, +pub fn create_state_machine<'a>(test: Pid, + traces: &'a mut TraceMap, config: &'a Config) -> (TestState, LinuxData<'a>) { let mut data = LinuxData::new(traces, config); data.parent = test; @@ -163,7 +163,7 @@ pub struct LinuxData<'a> { impl <'a> StateData for LinuxData<'a> { - + fn start(&mut self) -> Option { match waitpid(self.current, Some(WaitPidFlag::WNOHANG)) { Ok(WaitStatus::StillAlive) => None, @@ -299,12 +299,12 @@ impl <'a> StateData for LinuxData<'a> { }, WaitStatus::Exited(child, ec) => { for ref mut value in self.breakpoints.values_mut() { - value.thread_killed(child); + value.thread_killed(child); } if child == self.parent { TestState::End(ec) } else { - // Process may have already been destroyed. This is just incase + // Process may have already been destroyed. This is just incase let _ = continue_exec(self.parent, None); TestState::wait_state() } @@ -334,13 +334,13 @@ impl <'a>LinuxData<'a> { config, error_message:None, thread_count: 0, - force_disable_hit_count: !config.no_count + force_disable_hit_count: config.count } } fn handle_ptrace_event(&mut self, child: Pid, sig: Signal, event: i32) -> Result { use nix::libc::*; - + if sig == Signal::SIGTRAP { match event { PTRACE_EVENT_CLONE => { @@ -379,10 +379,10 @@ impl <'a>LinuxData<'a> { let rip = (rip - 1) as u64; if self.breakpoints.contains_key(&rip) { let bp = &mut self.breakpoints.get_mut(&rip).unwrap(); - let enable = (!self.config.no_count) && (self.thread_count < 2); + let enable = self.config.count && self.thread_count < 2; if !enable && self.force_disable_hit_count { println!("Code is mulithreaded, disabling hit count"); - println!("Results may be improved by using the '--no-count' option when running tarpaulin"); + println!("Results may be improved by not using the '--count' option when running tarpaulin"); self.force_disable_hit_count = false; } // Don't reenable if multithreaded as can't yet sort out segfault issue @@ -400,7 +400,7 @@ impl <'a>LinuxData<'a> { *x += 1; } } - } + } } else { continue_exec(self.current, None)?; } @@ -414,7 +414,7 @@ impl <'a>LinuxData<'a> { fn handle_signaled(&mut self) -> Result { match self.wait { WaitStatus::Signaled(child, Signal::SIGTRAP, true) => { - continue_exec(child, None)?; + continue_exec(child, None)?; Ok(TestState::wait_state()) }, _ => { @@ -424,3 +424,4 @@ impl <'a>LinuxData<'a> { } } } + diff --git a/src/test_loader.rs b/src/test_loader.rs index 645388e034..e2ab7f8f8d 100644 --- a/src/test_loader.rs +++ b/src/test_loader.rs @@ -93,7 +93,7 @@ fn generate_func_desc(die: &DebuggingInformationEntry, } else { FunctionType::Standard }; - } + } Ok((low, high, func_type)) } @@ -113,7 +113,7 @@ fn get_entry_points(debug_info: &CompilationUnitHeader, while let Ok(Some((_, node))) = cursor.next_dfs() { // Function DIE if node.tag() == DW_TAG_subprogram { - + if let Ok(fd) = generate_func_desc(node, debug_str) { result.push(fd); } @@ -132,7 +132,7 @@ fn get_addresses_from_program(prog: IncompleteLineNumberProgram, let ( cprog, seq) = prog.sequences()?; for s in seq { let mut temp_map: HashMap = HashMap::new(); - let mut sm = cprog.resume_from(&s); + let mut sm = cprog.resume_from(&s); while let Ok(Some((header, &ln_row))) = sm.next_row() { // If this row isn't useful move on if !ln_row.is_stmt() || ln_row.line().is_none() { @@ -140,7 +140,7 @@ fn get_addresses_from_program(prog: IncompleteLineNumberProgram, } if let Some(file) = ln_row.file(header) { let mut path = PathBuf::new(); - + if let Some(dir) = file.directory(header) { if let Ok(temp) = dir.to_string() { path.push(temp.as_ref()); @@ -162,7 +162,6 @@ fn get_addresses_from_program(prog: IncompleteLineNumberProgram, if let Some(file) = ln_row.file(header) { let line = ln_row.line().unwrap(); let file = file.path_name(); - if let Ok(file) = file.to_string() { path.push(file.as_ref()); if !path.is_file() { @@ -229,14 +228,14 @@ fn get_line_addresses(endian: RunTimeEndian, }; let entries = get_entry_points(&cu, &abbr, &debug_strings) .iter() - .map(|&(a, b, c)| { + .map(|&(a, b, c)| { match c { FunctionType::Test => (a, LineType::TestEntry(b)), FunctionType::Standard => (a, LineType::FunctionEntry(b)), FunctionType::Generated => (a, LineType::TestMain), } }).collect::>(); - + if let Ok(Some((_, root))) = cu.entries(&abbr).next_dfs() { let offset = match root.attr_value(DW_AT_stmt_list) { Ok(Some(AttributeValue::DebugLineRef(o))) => o, @@ -250,7 +249,7 @@ fn get_line_addresses(endian: RunTimeEndian, } } else { - // Deduplicate addresses + // Deduplicate addresses for v in temp_map.values_mut() { v.dedup_by_key(|x| x.address); } @@ -297,11 +296,11 @@ fn get_line_addresses(endian: RunTimeEndian, pub fn generate_tracemap(project: &Workspace, test: &Path, config: &Config) -> io::Result { let manifest = project.root(); let file = File::open(test)?; - let file = unsafe { + let file = unsafe { MmapOptions::new().map(&file)? }; if let Ok(obj) = OFile::parse(&*file) { - let analysis = get_line_analysis(project, config); + let analysis = get_line_analysis(project, config); let endian = if obj.is_little_endian() { RunTimeEndian::Little } else { diff --git a/src/traces.rs b/src/traces.rs index d6a49422f7..1b86b21283 100644 --- a/src/traces.rs +++ b/src/traces.rs @@ -31,7 +31,7 @@ impl<'a> Add for &'a LogicState { pub enum CoverageStat { /// Line coverage data (whether line has been hit) Line(u64), - /// Branch coverage data (whether branch has been true and false + /// Branch coverage data (whether branch has been true and false Branch(LogicState), /// Condition coverage data (each boolean subcondition true and false) Condition(Vec), @@ -69,7 +69,7 @@ impl Display for CoverageStat { pub struct Trace { /// Line the trace is on in the file pub line: u64, - /// Optional address showing location in the test artefact + /// Optional address showing location in the test artefact pub address: Option, /// Length of the instruction (useful to get entire condition/branch) pub length: usize, @@ -149,12 +149,12 @@ pub struct TraceMap { } impl TraceMap { - /// Create a new TraceMap + /// Create a new TraceMap pub fn new() -> TraceMap { TraceMap { traces: BTreeMap::new(), } - } + } /// Returns true if there are no traces pub fn is_empty(&self) -> bool { @@ -166,7 +166,7 @@ impl TraceMap { self.traces.iter() } - /// Merges the results of one tracemap into the current one. + /// Merges the results of one tracemap into the current one. /// This adds records which are missing and adds the statistics gathered to /// existing records pub fn merge(&mut self, other: &TraceMap) { @@ -213,10 +213,10 @@ impl TraceMap { let mut first = true; values.retain(|x| { let res = x.line != *d; - if !res { + if !res { if first { first = false; - true + true }else { false } @@ -253,7 +253,7 @@ impl TraceMap { .find(|x| x.address == Some(address)) .map(|x| *x) } - + /// Gets a mutable reference to a trace at a given address /// Returns None if there is no trace at that address pub fn get_trace_mut(&mut self, address: u64) -> Option<&mut Trace> { @@ -264,7 +264,7 @@ impl TraceMap { } None } - + /// Returns true if the location described by file and line number is present /// in the tracemap pub fn contains_location(&self, file: &Path, line: u64) -> bool { @@ -275,7 +275,7 @@ impl TraceMap { } /// Gets all traces below a certain path - pub fn get_child_traces(&self, root: &Path) -> Vec<&Trace> { + pub fn get_child_traces(&self, root: &Path) -> Vec<&Trace> { self.traces.iter() .filter(|&(ref k, _)| k.starts_with(root)) .flat_map(|(_, ref v)| v.iter()) @@ -320,12 +320,12 @@ impl TraceMap { /// Give the total amount of coverable points in the code. This will vary /// based on the statistics available for line coverage it will be total - /// line whereas for condition or decision it will count the number of + /// line whereas for condition or decision it will count the number of /// conditions available pub fn total_coverable(&self) -> usize { amount_coverable(self.all_traces().as_slice()) } - + /// From all the coverable data return the amount covered pub fn total_covered(&self) -> usize { amount_covered(self.all_traces().as_slice()) @@ -377,16 +377,16 @@ mod tests { let mut t2 = TraceMap::new(); let a_trace = Trace { - line: 1, - address: Some(5), - length: 0, + line: 1, + address: Some(5), + length: 0, stats: CoverageStat::Line(1) }; t1.add_trace(Path::new("file.rs"), a_trace.clone()); t2.add_trace(Path::new("file.rs"), Trace { - line: 1, - address: None, - length: 0, + line: 1, + address: None, + length: 0, stats: CoverageStat::Line(2) }); @@ -405,16 +405,16 @@ mod tests { let mut t2 = TraceMap::new(); let a_trace = Trace { - line: 1, - address: Some(5), - length: 0, + line: 1, + address: Some(5), + length: 0, stats: CoverageStat::Line(1) }; t1.add_trace(Path::new("file.rs"), a_trace.clone()); t2.add_trace(Path::new("file.rs"), Trace { - line: 2, - address: None, - length: 0, + line: 2, + address: None, + length: 0, stats: CoverageStat::Line(2) }); @@ -432,15 +432,15 @@ mod tests { let mut t2 = TraceMap::new(); t1.add_trace(Path::new("file.rs"), Trace { - line: 2, - address: Some(1), - length: 0, + line: 2, + address: Some(1), + length: 0, stats: CoverageStat::Line(5) }); t2.add_trace(Path::new("file.rs"), Trace { - line: 2, - address: Some(1), - length: 0, + line: 2, + address: Some(1), + length: 0, stats: CoverageStat::Line(2) }); t1.merge(&t2); diff --git a/tests/data/doctest/Cargo.toml b/tests/data/doctest/Cargo.toml index 051c693b86..5315709db9 100644 --- a/tests/data/doctest/Cargo.toml +++ b/tests/data/doctest/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" authors = ["xd009642 "] [dependencies] +[workspace] diff --git a/tests/data/generic_tester/Cargo.toml b/tests/data/generic_tester/Cargo.toml index dcfa095fe3..3a9c997fe9 100644 --- a/tests/data/generic_tester/Cargo.toml +++ b/tests/data/generic_tester/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" authors = ["xd009642 "] [dependencies] +[workspace] diff --git a/tests/data/multi_function_ta/Cargo.toml b/tests/data/multi_function_ta/Cargo.toml index 80d6747cda..6fbc05bad4 100644 --- a/tests/data/multi_function_ta/Cargo.toml +++ b/tests/data/multi_function_ta/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" authors = ["xd009642 "] [dependencies] +[workspace] diff --git a/tests/data/multi_test_arts/Cargo.toml b/tests/data/multi_test_arts/Cargo.toml index 15fd3eb2f8..136f4d8a7c 100644 --- a/tests/data/multi_test_arts/Cargo.toml +++ b/tests/data/multi_test_arts/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" authors = ["Daniel McKenna "] [dependencies] +[workspace] diff --git a/tests/data/proc_macro/Cargo.toml b/tests/data/proc_macro/Cargo.toml index 4e87b99482..09266bf1ce 100644 --- a/tests/data/proc_macro/Cargo.toml +++ b/tests/data/proc_macro/Cargo.toml @@ -5,3 +5,4 @@ authors = ["Daniel McKenna "] [dependencies] serde_derive = "^1.0" +[workspace] diff --git a/tests/data/simple_project/Cargo.toml b/tests/data/simple_project/Cargo.toml index 390a444d2a..e3040eb6bf 100644 --- a/tests/data/simple_project/Cargo.toml +++ b/tests/data/simple_project/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" authors = ["Daniel McKenna "] [dependencies] +[workspace] diff --git a/tests/data/test_links/Cargo.toml b/tests/data/test_links/Cargo.toml index 6523dec23e..620d9f2422 100644 --- a/tests/data/test_links/Cargo.toml +++ b/tests/data/test_links/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" authors = ["Daniel McKenna "] [dependencies] +[workspace] diff --git a/tests/data/untested_bin/Cargo.toml b/tests/data/untested_bin/Cargo.toml index d473eb337e..df8355d3cd 100644 --- a/tests/data/untested_bin/Cargo.toml +++ b/tests/data/untested_bin/Cargo.toml @@ -4,3 +4,4 @@ version = "0.1.0" authors = ["Daniel McKenna "] [dependencies] +[workspace] diff --git a/tests/line_coverage.rs b/tests/line_coverage.rs index 032c566499..e7c78a3e71 100644 --- a/tests/line_coverage.rs +++ b/tests/line_coverage.rs @@ -17,12 +17,16 @@ fn incorrect_manifest_path() { #[test] fn simple_project_coverage() { let mut config = Config::default(); + config.verbose = true; config.test_timeout = Duration::from_secs(60); let mut test_dir = env::current_dir().unwrap(); test_dir.push("tests"); test_dir.push("data"); test_dir.push("simple_project"); - config.manifest = test_dir.join("Cargo.toml"); + env::set_current_dir(test_dir.clone()).unwrap(); + config.manifest = test_dir.clone(); + config.manifest.push("Cargo.toml"); + let (res, tp) = launch_tarpaulin(&config).unwrap(); assert!(tp); let unused_file = test_dir.join("src/unused.rs"); diff --git a/travis-install.sh b/travis-install.sh index b10f53a21c..e480399f9e 100755 --- a/travis-install.sh +++ b/travis-install.sh @@ -1,3 +1,3 @@ #!/bin/bash -curl -sL https://github.com/xd009642/tarpaulin/releases/download/0.6.6/cargo-tarpaulin-0.6.6-travis.tar.gz | tar xvz -C $HOME/.cargo/bin +curl -sL https://github.com/xd009642/tarpaulin/releases/download/0.6.7/cargo-tarpaulin-0.6.7-travis.tar.gz | tar xvz -C $HOME/.cargo/bin echo "WARNING This method is no longer recommended. Use docker or crates.io to install tarpaulin"