selectors: Unbust tests, and add a way to override the hash for the bloom filter.

This commit is contained in:
Emilio Cobos Álvarez 2017-03-21 17:43:00 +01:00
parent e0731215c0
commit 65ebbb7c56
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
3 changed files with 7 additions and 6 deletions

View file

@ -21,6 +21,7 @@ matrix:
- bash etc/ci/check_no_panic.sh - bash etc/ci/check_no_panic.sh
- bash etc/ci/lockfile_changed.sh - bash etc/ci/lockfile_changed.sh
- bash etc/ci/manifest_changed.sh - bash etc/ci/manifest_changed.sh
- ./mach cargo test -p selectors
cache: cache:
directories: directories:
- .cargo - .cargo

View file

@ -106,7 +106,7 @@ impl BloomFilter {
} }
#[inline] #[inline]
fn insert_hash(&mut self, hash: u32) { pub fn insert_hash(&mut self, hash: u32) {
{ {
let slot1 = self.first_mut_slot(hash); let slot1 = self.first_mut_slot(hash);
if !full(slot1) { if !full(slot1) {
@ -125,11 +125,10 @@ impl BloomFilter {
#[inline] #[inline]
pub fn insert<T: Hash>(&mut self, elem: &T) { pub fn insert<T: Hash>(&mut self, elem: &T) {
self.insert_hash(hash(elem)) self.insert_hash(hash(elem))
} }
#[inline] #[inline]
fn remove_hash(&mut self, hash: u32) { pub fn remove_hash(&mut self, hash: u32) {
{ {
let slot1 = self.first_mut_slot(hash); let slot1 = self.first_mut_slot(hash);
if !full(slot1) { if !full(slot1) {
@ -151,7 +150,7 @@ impl BloomFilter {
} }
#[inline] #[inline]
fn might_contain_hash(&self, hash: u32) -> bool { pub fn might_contain_hash(&self, hash: u32) -> bool {
*self.first_slot(hash) != 0 && *self.second_slot(hash) != 0 *self.first_slot(hash) != 0 && *self.second_slot(hash) != 0
} }
@ -170,7 +169,6 @@ fn full(slot: &u8) -> bool {
*slot == 0xff *slot == 0xff
} }
#[inline]
fn hash<T: Hash>(elem: &T) -> u32 { fn hash<T: Hash>(elem: &T) -> u32 {
let mut hasher = FnvHasher::default(); let mut hasher = FnvHasher::default();
elem.hash(&mut hasher); elem.hash(&mut hasher);

View file

@ -1201,6 +1201,8 @@ pub mod tests {
type PseudoElement = PseudoElement; type PseudoElement = PseudoElement;
} }
type ShutUpTidy = String;
impl Parser for DummyParser { impl Parser for DummyParser {
type Impl = DummySelectorImpl; type Impl = DummySelectorImpl;
@ -1234,7 +1236,7 @@ pub mod tests {
self.default_ns.clone() self.default_ns.clone()
} }
fn namespace_for_prefix(&self, prefix: &str) -> Option<String> { fn namespace_for_prefix(&self, prefix: &ShutUpTidy) -> Option<String> {
self.ns_prefixes.get(prefix).cloned() self.ns_prefixes.get(prefix).cloned()
} }
} }