|
|
|
@ -278,64 +278,69 @@ fn hashed_dirname(url: &str, name: &str) -> String { |
|
|
|
|
format!("{}-{}", name, hex) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
fn it_returns_same_hash_for_same_name_and_url() { |
|
|
|
|
let name = "wasm-pack"; |
|
|
|
|
let url = "http://localhost:7878/wasm-pack-v0.6.0.tar.gz"; |
|
|
|
|
#[cfg(test)] |
|
|
|
|
mod tests { |
|
|
|
|
use super::*; |
|
|
|
|
|
|
|
|
|
let first = hashed_dirname(url, name); |
|
|
|
|
let second = hashed_dirname(url, name); |
|
|
|
|
#[test] |
|
|
|
|
fn it_returns_same_hash_for_same_name_and_url() { |
|
|
|
|
let name = "wasm-pack"; |
|
|
|
|
let url = "http://localhost:7878/wasm-pack-v0.6.0.tar.gz"; |
|
|
|
|
|
|
|
|
|
assert!(!first.is_empty()); |
|
|
|
|
assert!(!second.is_empty()); |
|
|
|
|
assert_eq!(first, second); |
|
|
|
|
} |
|
|
|
|
let first = hashed_dirname(url, name); |
|
|
|
|
let second = hashed_dirname(url, name); |
|
|
|
|
|
|
|
|
|
assert!(!first.is_empty()); |
|
|
|
|
assert!(!second.is_empty()); |
|
|
|
|
assert_eq!(first, second); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
fn it_returns_different_hashes_for_different_urls() { |
|
|
|
|
let name = "wasm-pack"; |
|
|
|
|
let url = "http://localhost:7878/wasm-pack-v0.5.1.tar.gz"; |
|
|
|
|
let second_url = "http://localhost:7878/wasm-pack-v0.6.0.tar.gz"; |
|
|
|
|
#[test] |
|
|
|
|
fn it_returns_different_hashes_for_different_urls() { |
|
|
|
|
let name = "wasm-pack"; |
|
|
|
|
let url = "http://localhost:7878/wasm-pack-v0.5.1.tar.gz"; |
|
|
|
|
let second_url = "http://localhost:7878/wasm-pack-v0.6.0.tar.gz"; |
|
|
|
|
|
|
|
|
|
let first = hashed_dirname(url, name); |
|
|
|
|
let second = hashed_dirname(second_url, name); |
|
|
|
|
let first = hashed_dirname(url, name); |
|
|
|
|
let second = hashed_dirname(second_url, name); |
|
|
|
|
|
|
|
|
|
assert_ne!(first, second); |
|
|
|
|
} |
|
|
|
|
assert_ne!(first, second); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
fn it_returns_cache_dir() { |
|
|
|
|
let name = "wasm-pack"; |
|
|
|
|
let cache = Cache::new(name); |
|
|
|
|
#[test] |
|
|
|
|
fn it_returns_cache_dir() { |
|
|
|
|
let name = "wasm-pack"; |
|
|
|
|
let cache = Cache::new(name); |
|
|
|
|
|
|
|
|
|
let expected = dirs::cache_dir() |
|
|
|
|
.unwrap() |
|
|
|
|
.join(PathBuf::from(".".to_owned() + name)); |
|
|
|
|
let expected = dirs::cache_dir() |
|
|
|
|
.unwrap() |
|
|
|
|
.join(PathBuf::from(".".to_owned() + name)); |
|
|
|
|
|
|
|
|
|
assert!(cache.is_ok()); |
|
|
|
|
assert_eq!(cache.unwrap().destination, expected); |
|
|
|
|
} |
|
|
|
|
assert!(cache.is_ok()); |
|
|
|
|
assert_eq!(cache.unwrap().destination, expected); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#[test] |
|
|
|
|
fn it_returns_destination_if_binary_already_exists() { |
|
|
|
|
use std::fs; |
|
|
|
|
#[test] |
|
|
|
|
fn it_returns_destination_if_binary_already_exists() { |
|
|
|
|
use std::fs; |
|
|
|
|
|
|
|
|
|
let binary_name = "wasm-pack"; |
|
|
|
|
let binaries = vec![binary_name]; |
|
|
|
|
let binary_name = "wasm-pack"; |
|
|
|
|
let binaries = vec![binary_name]; |
|
|
|
|
|
|
|
|
|
let dir = tempfile::TempDir::new().unwrap(); |
|
|
|
|
let cache = Cache::at(dir.path()); |
|
|
|
|
let url = &format!("{}/{}.tar.gz", "http://localhost:7878", binary_name); |
|
|
|
|
let dir = tempfile::TempDir::new().unwrap(); |
|
|
|
|
let cache = Cache::at(dir.path()); |
|
|
|
|
let url = &format!("{}/{}.tar.gz", "http://localhost:7878", binary_name); |
|
|
|
|
|
|
|
|
|
let dirname = hashed_dirname(&url, &binary_name); |
|
|
|
|
let full_path = dir.path().join(dirname); |
|
|
|
|
let dirname = hashed_dirname(&url, &binary_name); |
|
|
|
|
let full_path = dir.path().join(dirname); |
|
|
|
|
|
|
|
|
|
// Create temporary directory and binary to simulate that
|
|
|
|
|
// a cached binary already exists.
|
|
|
|
|
fs::create_dir_all(full_path).unwrap(); |
|
|
|
|
// Create temporary directory and binary to simulate that
|
|
|
|
|
// a cached binary already exists.
|
|
|
|
|
fs::create_dir_all(full_path).unwrap(); |
|
|
|
|
|
|
|
|
|
let dl = cache.download(true, binary_name, &binaries, url); |
|
|
|
|
let dl = cache.download(true, binary_name, &binaries, url); |
|
|
|
|
|
|
|
|
|
assert!(dl.is_ok()); |
|
|
|
|
assert!(dl.unwrap().is_some()) |
|
|
|
|
assert!(dl.is_ok()); |
|
|
|
|
assert!(dl.unwrap().is_some()) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|