mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
Make tests run again
This commit is contained in:
parent
acc70380b3
commit
003d54fd9c
5 changed files with 7 additions and 186 deletions
|
@ -10,4 +10,7 @@ repository = "https://github.com/Manishearth/hashglobe"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
rand = "0.3"
|
128
src/bench.rs
128
src/bench.rs
|
@ -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 <LICENSE-APACHE or
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
||||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, 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<i32, i32> = 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;
|
|
||||||
})
|
|
||||||
}
|
|
|
@ -2213,12 +2213,12 @@ fn assert_covariance() {
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test_map {
|
mod test_map {
|
||||||
|
extern crate rand;
|
||||||
use super::HashMap;
|
use super::HashMap;
|
||||||
use super::Entry::{Occupied, Vacant};
|
use super::Entry::{Occupied, Vacant};
|
||||||
use super::RandomState;
|
use super::RandomState;
|
||||||
use cell::RefCell;
|
use cell::RefCell;
|
||||||
use rand::{thread_rng, Rng};
|
use self::rand::{thread_rng, Rng};
|
||||||
use panic;
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_zero_capacities() {
|
fn test_zero_capacities() {
|
||||||
|
@ -3092,57 +3092,4 @@ mod test_map {
|
||||||
}
|
}
|
||||||
panic!("Adaptive early resize failed");
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1242,7 +1242,7 @@ fn assert_covariance() {
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test_set {
|
mod test_set {
|
||||||
use super::HashSet;
|
use super::HashSet;
|
||||||
use super::super::map::RandomState;
|
use super::hash_map::RandomState;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_zero_capacities() {
|
fn test_zero_capacities() {
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
pub use std::*;
|
pub use std::*;
|
||||||
|
|
||||||
mod bench;
|
|
||||||
mod table;
|
mod table;
|
||||||
mod shim;
|
mod shim;
|
||||||
mod alloc;
|
mod alloc;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue