From 003d54fd9c5861afc81d32c3e01ced979a6392f5 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Tue, 29 Aug 2017 14:06:40 -0700 Subject: [PATCH] Make tests run again --- Cargo.toml | 5 +- src/bench.rs | 128 ------------------------------------------------ src/hash_map.rs | 57 +-------------------- src/hash_set.rs | 2 +- src/lib.rs | 1 - 5 files changed, 7 insertions(+), 186 deletions(-) delete mode 100644 src/bench.rs diff --git a/Cargo.toml b/Cargo.toml index f0715992f12..ce9513cdcf7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,4 +10,7 @@ repository = "https://github.com/Manishearth/hashglobe" readme = "README.md" [dependencies] -libc = "0.2" \ No newline at end of file +libc = "0.2" + +[dev-dependencies] +rand = "0.3" \ No newline at end of file diff --git a/src/bench.rs b/src/bench.rs deleted file mode 100644 index ff6cb7985a4..00000000000 --- a/src/bench.rs +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2014 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -#![cfg(test)] - -extern crate test; - -use self::test::Bencher; - -#[bench] -fn new_drop(b: &mut Bencher) { - use super::map::HashMap; - - b.iter(|| { - let m: HashMap = HashMap::new(); - assert_eq!(m.len(), 0); - }) -} - -#[bench] -fn new_insert_drop(b: &mut Bencher) { - use super::map::HashMap; - - b.iter(|| { - let mut m = HashMap::new(); - m.insert(0, 0); - assert_eq!(m.len(), 1); - }) -} - -#[bench] -fn grow_by_insertion(b: &mut Bencher) { - use super::map::HashMap; - - let mut m = HashMap::new(); - - for i in 1..1001 { - m.insert(i, i); - } - - let mut k = 1001; - - b.iter(|| { - m.insert(k, k); - k += 1; - }); -} - -#[bench] -fn find_existing(b: &mut Bencher) { - use super::map::HashMap; - - let mut m = HashMap::new(); - - for i in 1..1001 { - m.insert(i, i); - } - - b.iter(|| { - for i in 1..1001 { - m.contains_key(&i); - } - }); -} - -#[bench] -fn find_nonexisting(b: &mut Bencher) { - use super::map::HashMap; - - let mut m = HashMap::new(); - - for i in 1..1001 { - m.insert(i, i); - } - - b.iter(|| { - for i in 1001..2001 { - m.contains_key(&i); - } - }); -} - -#[bench] -fn hashmap_as_queue(b: &mut Bencher) { - use super::map::HashMap; - - let mut m = HashMap::new(); - - for i in 1..1001 { - m.insert(i, i); - } - - let mut k = 1; - - b.iter(|| { - m.remove(&k); - m.insert(k + 1000, k + 1000); - k += 1; - }); -} - -#[bench] -fn get_remove_insert(b: &mut Bencher) { - use super::map::HashMap; - - let mut m = HashMap::new(); - - for i in 1..1001 { - m.insert(i, i); - } - - let mut k = 1; - - b.iter(|| { - m.get(&(k + 400)); - m.get(&(k + 2000)); - m.remove(&k); - m.insert(k + 1000, k + 1000); - k += 1; - }) -} diff --git a/src/hash_map.rs b/src/hash_map.rs index 1cc2e90e002..2ac1c325438 100644 --- a/src/hash_map.rs +++ b/src/hash_map.rs @@ -2213,12 +2213,12 @@ fn assert_covariance() { #[cfg(test)] mod test_map { + extern crate rand; use super::HashMap; use super::Entry::{Occupied, Vacant}; use super::RandomState; use cell::RefCell; - use rand::{thread_rng, Rng}; - use panic; + use self::rand::{thread_rng, Rng}; #[test] fn test_zero_capacities() { @@ -3092,57 +3092,4 @@ mod test_map { } panic!("Adaptive early resize failed"); } - - #[test] - fn test_placement_in() { - let mut map = HashMap::new(); - map.extend((0..10).map(|i| (i, i))); - - map.entry(100) <- 100; - assert_eq!(map[&100], 100); - - map.entry(0) <- 10; - assert_eq!(map[&0], 10); - - assert_eq!(map.len(), 11); - } - - #[test] - fn test_placement_panic() { - let mut map = HashMap::new(); - map.extend((0..10).map(|i| (i, i))); - - fn mkpanic() -> usize { panic!() } - - // modify existing key - // when panic happens, previous key is removed. - let _ = panic::catch_unwind(panic::AssertUnwindSafe(|| { map.entry(0) <- mkpanic(); })); - assert_eq!(map.len(), 9); - assert!(!map.contains_key(&0)); - - // add new key - let _ = panic::catch_unwind(panic::AssertUnwindSafe(|| { map.entry(100) <- mkpanic(); })); - assert_eq!(map.len(), 9); - assert!(!map.contains_key(&100)); - } - - #[test] - fn test_placement_drop() { - // correctly drop - struct TestV<'a>(&'a mut bool); - impl<'a> Drop for TestV<'a> { - fn drop(&mut self) { - if !*self.0 { panic!("value double drop!"); } // no double drop - *self.0 = false; - } - } - - fn makepanic<'a>() -> TestV<'a> { panic!() } - - let mut can_drop = true; - let mut hm = HashMap::new(); - hm.insert(0, TestV(&mut can_drop)); - let _ = panic::catch_unwind(panic::AssertUnwindSafe(|| { hm.entry(0) <- makepanic(); })); - assert_eq!(hm.len(), 0); - } } diff --git a/src/hash_set.rs b/src/hash_set.rs index a1a45812024..a7fe6531f2c 100644 --- a/src/hash_set.rs +++ b/src/hash_set.rs @@ -1242,7 +1242,7 @@ fn assert_covariance() { #[cfg(test)] mod test_set { use super::HashSet; - use super::super::map::RandomState; + use super::hash_map::RandomState; #[test] fn test_zero_capacities() { diff --git a/src/lib.rs b/src/lib.rs index e6b9a18cd87..db12c725f5d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,5 @@ pub use std::*; -mod bench; mod table; mod shim; mod alloc;