mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
servo: Merge #3566 - Fix up and run unit tests (from metajack:fixup-unit-tests); r=mbrubeck
This adds the subpackages to `./mach test-unit`. Source-Repo: https://github.com/servo/servo Source-Revision: d4e977a2be1f1fea81c32d1f7024b228cb161966
This commit is contained in:
parent
b8ea8e33d2
commit
47258b49e5
@ -999,6 +999,7 @@ mod tests {
|
|||||||
use sync::Arc;
|
use sync::Arc;
|
||||||
use super::{DeclarationBlock, Rule, SelectorMap};
|
use super::{DeclarationBlock, Rule, SelectorMap};
|
||||||
use selectors::LocalName;
|
use selectors::LocalName;
|
||||||
|
use string_cache::Atom;
|
||||||
|
|
||||||
/// Helper method to get some Rules from selector strings.
|
/// Helper method to get some Rules from selector strings.
|
||||||
/// Each sublist of the result contains the Rules for one StyleRule.
|
/// Each sublist of the result contains the Rules for one StyleRule.
|
||||||
@ -1043,7 +1044,7 @@ mod tests {
|
|||||||
fn test_get_class_name(){
|
fn test_get_class_name(){
|
||||||
let rules_list = get_mock_rules([".intro.foo", "#top"]);
|
let rules_list = get_mock_rules([".intro.foo", "#top"]);
|
||||||
assert_eq!(SelectorMap::get_class_name(&rules_list[0][0]), Some(Atom::from_slice("intro")));
|
assert_eq!(SelectorMap::get_class_name(&rules_list[0][0]), Some(Atom::from_slice("intro")));
|
||||||
assert_eq!(SelectorMap::get_class_name(rules_list.get(1).get(0)), None);
|
assert_eq!(SelectorMap::get_class_name(&rules_list[1][0]), None);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -574,6 +574,7 @@ mod tests {
|
|||||||
use sync::Arc;
|
use sync::Arc;
|
||||||
use cssparser;
|
use cssparser;
|
||||||
use namespaces::NamespaceMap;
|
use namespaces::NamespaceMap;
|
||||||
|
use string_cache::Atom;
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
fn parse(input: &str) -> Result<Vec<Selector>, ()> {
|
fn parse(input: &str) -> Result<Vec<Selector>, ()> {
|
||||||
@ -649,8 +650,8 @@ mod tests {
|
|||||||
assert!(parse_ns("[Foo]", &namespaces) == Ok(vec!(Selector {
|
assert!(parse_ns("[Foo]", &namespaces) == Ok(vec!(Selector {
|
||||||
compound_selectors: Arc::new(CompoundSelector {
|
compound_selectors: Arc::new(CompoundSelector {
|
||||||
simple_selectors: vec!(AttrExists(AttrSelector {
|
simple_selectors: vec!(AttrExists(AttrSelector {
|
||||||
name: Atom::from_slice("Foo"),
|
name: String::from_str("Foo"),
|
||||||
lower_name: Atom::from_slice("foo"),
|
lower_name: String::from_str("foo"),
|
||||||
namespace: SpecificNamespace(ns!("")),
|
namespace: SpecificNamespace(ns!("")),
|
||||||
})),
|
})),
|
||||||
next: None,
|
next: None,
|
||||||
@ -664,8 +665,8 @@ mod tests {
|
|||||||
assert!(parse_ns("[Foo]", &namespaces) == Ok(vec!(Selector {
|
assert!(parse_ns("[Foo]", &namespaces) == Ok(vec!(Selector {
|
||||||
compound_selectors: Arc::new(CompoundSelector {
|
compound_selectors: Arc::new(CompoundSelector {
|
||||||
simple_selectors: vec!(AttrExists(AttrSelector {
|
simple_selectors: vec!(AttrExists(AttrSelector {
|
||||||
name: Atom::from_slice("Foo"),
|
name: String::from_str("Foo"),
|
||||||
lower_name: Atom::from_slice("foo"),
|
lower_name: String::from_str("foo"),
|
||||||
namespace: SpecificNamespace(ns!("")),
|
namespace: SpecificNamespace(ns!("")),
|
||||||
})),
|
})),
|
||||||
next: None,
|
next: None,
|
||||||
|
@ -498,7 +498,7 @@ pub mod tests {
|
|||||||
let mut v = SmallVec16::new();
|
let mut v = SmallVec16::new();
|
||||||
v.push("hello".to_string());
|
v.push("hello".to_string());
|
||||||
v.push("there".to_string());
|
v.push("there".to_string());
|
||||||
assert_eq!(v.as_slice(), &["hello".to_string(), "there".to_string()]);
|
assert_eq!(v.as_slice(), vec!["hello".to_string(), "there".to_string()].as_slice());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -508,7 +508,7 @@ pub mod tests {
|
|||||||
v.push("there".to_string());
|
v.push("there".to_string());
|
||||||
v.push("burma".to_string());
|
v.push("burma".to_string());
|
||||||
v.push("shave".to_string());
|
v.push("shave".to_string());
|
||||||
assert_eq!(v.as_slice(), &["hello".to_string(), "there".to_string(), "burma".to_string(), "shave".to_string()]);
|
assert_eq!(v.as_slice(), vec!["hello".to_string(), "there".to_string(), "burma".to_string(), "shave".to_string()].as_slice());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
@ -522,9 +522,9 @@ pub mod tests {
|
|||||||
v.push("there".to_string());
|
v.push("there".to_string());
|
||||||
v.push("burma".to_string());
|
v.push("burma".to_string());
|
||||||
v.push("shave".to_string());
|
v.push("shave".to_string());
|
||||||
assert_eq!(v.as_slice(), &[
|
assert_eq!(v.as_slice(), vec![
|
||||||
"hello".to_string(), "there".to_string(), "burma".to_string(), "shave".to_string(), "hello".to_string(), "there".to_string(), "burma".to_string(), "shave".to_string(),
|
"hello".to_string(), "there".to_string(), "burma".to_string(), "shave".to_string(), "hello".to_string(), "there".to_string(), "burma".to_string(), "shave".to_string(),
|
||||||
]);
|
].as_slice());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,9 +91,9 @@ pub mod test {
|
|||||||
let len: uint = rng.gen();
|
let len: uint = rng.gen();
|
||||||
let mut v: Vec<int> = rng.gen_iter::<int>().take((len % 32) + 1).collect();
|
let mut v: Vec<int> = rng.gen_iter::<int>().take((len % 32) + 1).collect();
|
||||||
fn compare_ints(a: &int, b: &int) -> Ordering { a.cmp(b) }
|
fn compare_ints(a: &int, b: &int) -> Ordering { a.cmp(b) }
|
||||||
sort::quicksort_by(v.as_slice_mut(), compare_ints);
|
sort::quicksort_by(v.as_mut_slice(), compare_ints);
|
||||||
for i in range(0, v.len() - 1) {
|
for i in range(0, v.len() - 1) {
|
||||||
assert!(v.get(i) <= v.get(i + 1))
|
assert!(v[i] <= v[i + 1])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ pub trait Comparator<K,T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub trait BinarySearchMethods<'a, T: Ord + PartialOrd + PartialEq> {
|
pub trait BinarySearchMethods<'a, T: Ord + PartialOrd + PartialEq> {
|
||||||
fn binary_search(&self, key: &T) -> Option<&'a T>;
|
fn binary_search_(&self, key: &T) -> Option<&'a T>;
|
||||||
fn binary_search_index(&self, key: &T) -> Option<uint>;
|
fn binary_search_index(&self, key: &T) -> Option<uint>;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ pub trait FullBinarySearchMethods<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, T: Ord + PartialOrd + PartialEq> BinarySearchMethods<'a, T> for &'a [T] {
|
impl<'a, T: Ord + PartialOrd + PartialEq> BinarySearchMethods<'a, T> for &'a [T] {
|
||||||
fn binary_search(&self, key: &T) -> Option<&'a T> {
|
fn binary_search_(&self, key: &T) -> Option<&'a T> {
|
||||||
self.binary_search_index(key).map(|i| &self[i])
|
self.binary_search_index(key).map(|i| &self[i])
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ impl<T:PartialEq + PartialOrd + Ord> Comparator<T,T> for DefaultComparator {
|
|||||||
fn test_find_all_elems<T: PartialEq + PartialOrd + Eq + Ord>(arr: &[T]) {
|
fn test_find_all_elems<T: PartialEq + PartialOrd + Eq + Ord>(arr: &[T]) {
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
while i < arr.len() {
|
while i < arr.len() {
|
||||||
assert!(test_match(&arr[i], arr.binary_search(&arr[i])));
|
assert!(test_match(&arr[i], arr.binary_search_(&arr[i])));
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -74,9 +74,9 @@ fn test_find_all_elems<T: PartialEq + PartialOrd + Eq + Ord>(arr: &[T]) {
|
|||||||
fn test_miss_all_elems<T: PartialEq + PartialOrd + Eq + Ord>(arr: &[T], misses: &[T]) {
|
fn test_miss_all_elems<T: PartialEq + PartialOrd + Eq + Ord>(arr: &[T], misses: &[T]) {
|
||||||
let mut i = 0;
|
let mut i = 0;
|
||||||
while i < misses.len() {
|
while i < misses.len() {
|
||||||
let res = arr.binary_search(&misses[i]);
|
let res = arr.binary_search_(&misses[i]);
|
||||||
debug!("{:?} == {:?} ?", misses[i], res);
|
debug!("{:?} == {:?} ?", misses[i], res);
|
||||||
assert!(!test_match(&misses[i], arr.binary_search(&misses[i])));
|
assert!(!test_match(&misses[i], arr.binary_search_(&misses[i])));
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,22 +54,27 @@ class MachCommands(CommandBase):
|
|||||||
print("Tests completed in %0.2fs" % elapsed)
|
print("Tests completed in %0.2fs" % elapsed)
|
||||||
|
|
||||||
@Command('test-unit',
|
@Command('test-unit',
|
||||||
description='Run libservo unit tests',
|
description='Run unit tests',
|
||||||
category='testing',
|
category='testing',
|
||||||
allow_all_args=True)
|
allow_all_args=True)
|
||||||
@CommandArgument('test_name', default=None, nargs="...",
|
@CommandArgument('test_name', default=None, nargs="...",
|
||||||
help="Only run tests that match this pattern")
|
help="Only run tests that match this pattern")
|
||||||
@CommandArgument(
|
def test_unit(self, test_name=None):
|
||||||
'params', default=None, nargs="...",
|
if test_name is None:
|
||||||
help="Command-line arguments to be passed to the test harness")
|
test_name = []
|
||||||
def test_unit(self, test_name=None, params=None):
|
|
||||||
if params is None:
|
|
||||||
params = []
|
|
||||||
if test_name is not None:
|
|
||||||
params.append(test_name)
|
|
||||||
self.ensure_bootstrapped()
|
self.ensure_bootstrapped()
|
||||||
self.ensure_built_tests()
|
self.ensure_built_tests()
|
||||||
return self.run_test("servo", params)
|
|
||||||
|
ret = self.run_test("servo", test_name) != 0
|
||||||
|
|
||||||
|
def cargo_test(component):
|
||||||
|
return 0 != subprocess.call(
|
||||||
|
["cargo", "test", "-p", component], env=self.build_env())
|
||||||
|
|
||||||
|
for component in os.listdir("components"):
|
||||||
|
ret = ret or cargo_test(component)
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
@Command('test-ref',
|
@Command('test-ref',
|
||||||
description='Run the reference tests',
|
description='Run the reference tests',
|
||||||
|
Loading…
Reference in New Issue
Block a user