From 6a4ccca3779d6c5f559919d093cbca81a0085de9 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 22 Jan 2013 15:19:12 -0800 Subject: [PATCH] Fix tests --- mk/sub.mk | 2 + src/rust-azure | 2 +- src/rust-css | 2 +- src/rust-glut | 2 +- src/rust-http-client | 2 +- src/rust-layers | 2 +- src/rust-mozjs | 2 +- src/rust-netsurfcss | 2 +- src/servo/dom/cow.rs | 37 ++++++----- src/servo/util/actor.rs | 140 ---------------------------------------- src/servo/util/mod.rs | 1 - src/servo/util/tree.rs | 5 +- 12 files changed, 34 insertions(+), 165 deletions(-) delete mode 100644 src/servo/util/actor.rs diff --git a/mk/sub.mk b/mk/sub.mk index d23a6807b73..a2200bfbfb0 100644 --- a/mk/sub.mk +++ b/mk/sub.mk @@ -1,6 +1,8 @@ # Tests for these submodules will not be run by the default `make check` target. SLOW_TESTS += \ mozjs \ + pixman \ + cairo \ $(NULL) # These submodules will not be cleaned by the `make clean-fast` target. diff --git a/src/rust-azure b/src/rust-azure index f37301008a7..16b5d87d37b 160000 --- a/src/rust-azure +++ b/src/rust-azure @@ -1 +1 @@ -Subproject commit f37301008a770033211c48512d19db954918a4b9 +Subproject commit 16b5d87d37b2ce377b919de20c6a45fdf9e052dc diff --git a/src/rust-css b/src/rust-css index f0da2d3a9c6..aff506ba29b 160000 --- a/src/rust-css +++ b/src/rust-css @@ -1 +1 @@ -Subproject commit f0da2d3a9c67d0a4748779c67576cb763558e047 +Subproject commit aff506ba29bd34e8980ad7c3286a7cdc4e8207ae diff --git a/src/rust-glut b/src/rust-glut index c14e24d5150..b33e9dbc118 160000 --- a/src/rust-glut +++ b/src/rust-glut @@ -1 +1 @@ -Subproject commit c14e24d51502ffaa44ccde9877920ba829be1bd0 +Subproject commit b33e9dbc11895d4e30ac4abde60e2d24a182930e diff --git a/src/rust-http-client b/src/rust-http-client index 09e2852951c..7d1872b8905 160000 --- a/src/rust-http-client +++ b/src/rust-http-client @@ -1 +1 @@ -Subproject commit 09e2852951c635cf9cabc76a862740188869c915 +Subproject commit 7d1872b89050332e957504a66ee38d73773efaf1 diff --git a/src/rust-layers b/src/rust-layers index b69b3b49ad9..61ec64cbb17 160000 --- a/src/rust-layers +++ b/src/rust-layers @@ -1 +1 @@ -Subproject commit b69b3b49ad993c79156298eb6c96bec58db77128 +Subproject commit 61ec64cbb17f0f14a2306ab9ab04565b622ccf77 diff --git a/src/rust-mozjs b/src/rust-mozjs index b5a5d728f0c..96e92609d0f 160000 --- a/src/rust-mozjs +++ b/src/rust-mozjs @@ -1 +1 @@ -Subproject commit b5a5d728f0c092ca1881a26446860bb717d27448 +Subproject commit 96e92609d0f250ae3222b9ba99f2e00acc5ec0fb diff --git a/src/rust-netsurfcss b/src/rust-netsurfcss index a03bfeb74ad..8657c147719 160000 --- a/src/rust-netsurfcss +++ b/src/rust-netsurfcss @@ -1 +1 @@ -Subproject commit a03bfeb74adfa0aae7e459a249f62e6e553c823b +Subproject commit 8657c14771908eb8577dfbe0fff5e85e3f1990da diff --git a/src/servo/dom/cow.rs b/src/servo/dom/cow.rs index e50a9c71ac2..b3d00938a68 100644 --- a/src/servo/dom/cow.rs +++ b/src/servo/dom/cow.rs @@ -255,6 +255,9 @@ impl Scope { #[cfg(test)] #[allow(non_implicitly_copyable_typarams)] mod test { + use pipes::stream; + use super::Scope; + type animal = {name: ~str, species: species}; enum species { chicken(~chicken), @@ -275,16 +278,16 @@ mod test { } fn mutate(a: &animal) { - match a.species { - chicken(c) => c.eggs_per_day += 1u, - bull(c) => c.horns += 1u + match &a.species { + &chicken(ref c) => c.eggs_per_day += 1u, + &bull(ref c) => c.horns += 1u } } fn read_characteristic(a: &animal) -> uint { - match a.species { - chicken(c) => c.eggs_per_day, - bull(c) => c.horns + match &a.species { + &chicken(ref c) => c.eggs_per_day, + &bull(ref c) => c.horns } } @@ -300,19 +303,21 @@ mod test { let iter1 = 3u; let iter2 = 22u; - let read_port = comm::Port(); - let read_chan = comm::Chan(&read_port); + let read_port = oldcomm::Port(); + let read_chan = oldcomm::Chan(&read_port); // fire up a reader task for uint::range(0u, iter1) |i| { s.reader_forked(); - let wait_chan = task::spawn_listener(|wait_port| { + let (wait_port, wait_chan) = stream(); + + do task::spawn { for uint::range(0u, iter2) |_i| { - comm::send(read_chan, henrietta.read(read_characteristic)); - comm::send(read_chan, ferdinand.read(read_characteristic)); - comm::recv(wait_port); + oldcomm::send(read_chan, henrietta.read(read_characteristic)); + oldcomm::send(read_chan, ferdinand.read(read_characteristic)); + wait_port.recv(); } - }); + } let hrc = henrietta.read(read_characteristic); assert hrc == (i * iter2); @@ -321,11 +326,11 @@ mod test { assert frc == i * iter2; for uint::range(0u, iter2) |_i| { - assert hrc == comm::recv(read_port); + assert hrc == oldcomm::recv(read_port); s.write(&henrietta, mutate); - assert frc == comm::recv(read_port); + assert frc == oldcomm::recv(read_port); s.write(&ferdinand, mutate); - comm::send(wait_chan, ()); + wait_chan.send(()); } s.reader_joined(); } diff --git a/src/servo/util/actor.rs b/src/servo/util/actor.rs deleted file mode 100644 index b44f75aeca9..00000000000 --- a/src/servo/util/actor.rs +++ /dev/null @@ -1,140 +0,0 @@ -/*! -An actor type -*/ - -use pipes::{Port, Chan, SharedChan, stream}; -use core::task; - -/** -The client reference to an actor - -Actors are only referred to by opaque handles parameterized -over the actor's message type, which can be considered the -actor's interface. -*/ -struct ActorRef { - chan: Chan, -} - -impl ActorRef { - fn send(&self, msg: M) { - self.chan.send(move msg); - } -} - -/// The local actor interface -trait Actor { - fn handle(&self, msg: M) -> bool; -} - -/// A helper function used by actor constructors -fn spawn, M: Owned>(f: ~fn() -> A) -> ActorRef { - let (port, chan) = stream(); - do task::spawn |move f, move port| { - let actor = f(); - loop { - let msg = port.recv(); - if !actor.handle(move msg) { - break; - } - } - } - - return ActorRef { - chan: move chan - } -} - -struct SharedActorRef { - chan: SharedChan -} - -impl SharedActorRef { - fn send(&self, msg: M) { - self.chan.send(move msg); - } - - fn clone(&self) -> SharedActorRef { - SharedActorRef { - chan: self.chan.clone() - } - } -} - -fn SharedActorRef(actor: ActorRef) -> SharedActorRef { - let chan = match move actor { - ActorRef { - chan: move chan - } => { - move chan - } - }; - - SharedActorRef { - chan: SharedChan(move chan) - } -} - -#[cfg(test)] -mod test { - - enum HelloMsg { - GetName(Chan<~str>), - Exit(Chan<()>) - } - - struct HelloActor { - name: ~str - } - - impl HelloActor: Actor { - fn handle(&self, msg: HelloMsg) -> bool { - match msg { - GetName(chan) => chan.send(copy self.name), - Exit(chan) => { - chan.send(()); - return false; - } - } - - return true; - } - } - - fn HelloActor(name: ~str) -> ActorRef { - do spawn |move name| { - HelloActor { - name: copy name - } - } - } - - - #[test] - fn test_exit() { - let actor = HelloActor(~"bob"); - let (port, chan) = stream(); - actor.send(Exit(move chan)); - port.recv(); - } - - #[test] - fn test_shared() { - let actor = HelloActor(~"bob"); - let actor1 = SharedActorRef(move actor); - let actor2 = actor1.clone(); - - let (port1, chan1) = stream(); - actor1.send(GetName(move chan1)); - let (port2, chan2) = stream(); - actor2.send(GetName(move chan2)); - - assert port1.recv() == ~"bob"; - assert port2.recv() == ~"bob"; - - let (port, chan) = stream(); - actor1.send(Exit(move chan)); - port.recv(); - } - -} diff --git a/src/servo/util/mod.rs b/src/servo/util/mod.rs index a6f201f0953..526bdcdfca2 100644 --- a/src/servo/util/mod.rs +++ b/src/servo/util/mod.rs @@ -1,6 +1,5 @@ pub use gfx::util::cache; pub use gfx::util::time; -pub mod actor; pub mod tree; pub mod task; \ No newline at end of file diff --git a/src/servo/util/tree.rs b/src/servo/util/tree.rs index 1dea262293c..85a72254ef2 100644 --- a/src/servo/util/tree.rs +++ b/src/servo/util/tree.rs @@ -156,6 +156,9 @@ pub fn get_parent>(ops: &O, node: &T) -> Option { #[cfg(test)] mod test { + use super::*; + use core::managed::ptr_eq; + enum dummy = { fields: Tree<@dummy>, value: uint @@ -173,7 +176,7 @@ mod test { fn with_tree_fields(d: &@dummy, f: fn(&Tree<@dummy>) -> R) -> R { f(&d.fields) } - pure fn eq(a: &@dummy, b: &@dummy) -> bool { core::box::ptr_eq(*a, *b) } + pure fn tree_eq(a: &@dummy, b: &@dummy) -> bool { ptr_eq(*a, *b) } } fn new_dummy(v: uint) -> @dummy {