diff --git a/Cargo.lock b/Cargo.lock
index 6e572b30617..1285b0254b0 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3,26 +3,27 @@ name = "cargo"
version = "0.1.0"
dependencies = [
"advapi32-sys 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "curl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "docopt 0.6.39 (registry+https://github.com/rust-lang/crates.io-index)",
+ "curl 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "docopt 0.6.45 (registry+https://github.com/rust-lang/crates.io-index)",
"env_logger 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"flate2 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"git2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"git2-curl 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "glob 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "glob 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"hamcrest 0.1.0 (git+https://github.com/carllerche/hamcrest-rust.git)",
"libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
"registry 0.1.0",
- "rustc-serialize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "semver 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "semver 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"tar 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "tempdir 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"term 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
- "threadpool 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "threadpool 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"time 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
"toml 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
- "url 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
+ "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -41,33 +42,34 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "curl"
-version = "0.2.0"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "curl-sys 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
+ "curl-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
- "url 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "curl-sys"
-version = "0.1.14"
+version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libz-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "docopt"
-version = "0.6.39"
+version = "0.6.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "regex 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-serialize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -76,7 +78,7 @@ version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "regex 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
+ "regex 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -88,11 +90,6 @@ dependencies = [
"miniz-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
-[[package]]
-name = "gcc"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
[[package]]
name = "gcc"
version = "0.3.1"
@@ -105,8 +102,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libgit2-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "url 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libgit2-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
@@ -114,15 +111,15 @@ name = "git2-curl"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "curl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "curl 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
"git2 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
- "url 0.2.22 (registry+https://github.com/rust-lang/crates.io-index)",
+ "url 0.2.23 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "glob"
-version = "0.2.0"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -145,13 +142,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "libgit2-sys"
-version = "0.2.1"
+version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "libssh2-sys 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libssh2-sys 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
"libz-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -165,12 +162,12 @@ dependencies = [
[[package]]
name = "libssh2-sys"
-version = "0.1.10"
+version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libz-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
- "openssl-sys 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
+ "openssl-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
@@ -203,19 +200,15 @@ dependencies = [
[[package]]
name = "openssl-sys"
-version = "0.4.3"
+version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "gcc 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "gcc 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
+ "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"libressl-pnacl-sys 2.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
- "pkg-config 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "pkg-config 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
-[[package]]
-name = "pkg-config"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-
[[package]]
name = "pkg-config"
version = "0.3.0"
@@ -226,27 +219,36 @@ name = "pnacl-build-helper"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
+[[package]]
+name = "rand"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "libc 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "log 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
[[package]]
name = "regex"
-version = "0.1.15"
+version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "registry"
version = "0.1.0"
dependencies = [
- "curl 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-serialize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "curl 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "rustc-serialize"
-version = "0.3.0"
+version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "semver"
-version = "0.1.15"
+version = "0.1.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -254,6 +256,14 @@ name = "tar"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
+[[package]]
+name = "tempdir"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+dependencies = [
+ "rand 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
+]
+
[[package]]
name = "term"
version = "0.1.13"
@@ -266,7 +276,7 @@ dependencies = [
[[package]]
name = "threadpool"
-version = "0.1.0"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
@@ -283,16 +293,16 @@ name = "toml"
version = "0.1.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
- "rustc-serialize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "url"
-version = "0.2.22"
+version = "0.2.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"matches 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
- "rustc-serialize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+ "rustc-serialize 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
diff --git a/Cargo.toml b/Cargo.toml
index 7117fc94890..8e9ae24f8a1 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -10,38 +10,34 @@ name = "cargo"
path = "src/cargo/lib.rs"
[dependencies]
-toml = "0.1"
-semver = "0.1"
-curl = "0.2"
-tar = "0.2"
-flate2 = "0.2"
-git2 = "0.2"
-git2-curl = "0.2"
-glob = "0.2"
-time = "0.1"
-log = "0.2"
-env_logger = "0.2"
-docopt = "0.6"
-url = "0.2"
-rustc-serialize = "0.3"
-term = "0.1"
-regex = "0.1"
-threadpool = "0.1"
-libc = "0.1"
-
-[target.i686-pc-windows-gnu.dependencies]
-winapi = "0.1"
-advapi32-sys = "*"
-
-[target.x86_64-pc-windows-gnu.dependencies]
-winapi = "0.1"
-advapi32-sys = "*"
-
-[dev-dependencies.hamcrest]
-git = "https://github.com/carllerche/hamcrest-rust.git"
-
-[dependencies.registry]
-path = "src/registry"
+toml = "0.1.18"
+semver = "0.1.16"
+curl = "0.2.2"
+tar = "0.2.3"
+flate2 = "0.2.0"
+git2 = "0.2.1"
+git2-curl = "0.2.1"
+glob = "0.2.2"
+time = "0.1.19"
+log = "0.2.5"
+env_logger = "0.2.2"
+docopt = "0.6.45"
+url = "0.2.23"
+rustc-serialize = "0.3.1"
+term = "0.1.13"
+regex = "0.1.18"
+threadpool = "0.1.1"
+libc = "0.1.2"
+registry = { path = "src/registry" }
+
+[target.i686-pc-windows-gnu]
+dependencies = { winapi = "0.1", advapi32-sys = "*" }
+[target.x86_64-pc-windows-gnu]
+dependencies = { winapi = "0.1", advapi32-sys = "*" }
+
+[dev-dependencies]
+tempdir = "0.3"
+hamcrest = { git = "https://github.com/carllerche/hamcrest-rust.git" }
[[bin]]
name = "cargo"
@@ -50,9 +46,6 @@ doc = false
[[test]]
name = "tests"
-[[bench]]
-name = "tests"
-path = "tests/tests.rs"
[[test]]
name = "resolve"
diff --git a/src/bin/bench.rs b/src/bin/bench.rs
index 00edc0051d0..d910784e6bb 100644
--- a/src/bin/bench.rs
+++ b/src/bin/bench.rs
@@ -51,17 +51,17 @@ pub fn execute(options: Options, config: &Config) -> CliResult