diff --git a/.travis.yml b/.travis.yml index be9d034e8407b3a1d2c9020b1d0e34f67e032059..9d190d41ca6326a8c9026469af60b6c61788bad7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,8 +30,8 @@ matrix: # Run tests on some extra platforms - env: TARGET=i686-unknown-linux-gnu - env: TARGET=armv7-unknown-linux-gnueabihf - - env: TARGET=powerpc-unknown-linux-gnu - - env: TARGET=powerpc64-unknown-linux-gnu + - env: RUST_TEST_THREADS=1 TARGET=powerpc-unknown-linux-gnu + - env: RUST_TEST_THREADS=1 TARGET=powerpc64-unknown-linux-gnu before_install: set -e diff --git a/tests/test_bytes.rs b/tests/test_bytes.rs index cfb50707d9b8dfaf0f164ffc5bb516e0f0ef3659..2e163dfe8ae4112232a220f121e3e32a4065d0af 100644 --- a/tests/test_bytes.rs +++ b/tests/test_bytes.rs @@ -298,6 +298,9 @@ fn extend() { } #[test] +// Only run these tests on little endian systems. CI uses qemu for testing +// little endian... and qemu doesn't really support threading all that well. +#[cfg(target_endian = "little")] fn stress() { // Tests promoting a buffer from a vec -> shared in a concurrent situation use std::sync::{Arc, Barrier}; @@ -308,7 +311,7 @@ fn stress() { for i in 0..ITERS { let data = [i as u8; 256]; - let buf = Arc::new(BytesMut::from(&data[..])); + let buf = Arc::new(Bytes::from(&data[..])); let barrier = Arc::new(Barrier::new(THREADS)); let mut joins = Vec::with_capacity(THREADS); @@ -319,7 +322,8 @@ fn stress() { joins.push(thread::spawn(move || { c.wait(); - let _buf = buf.clone(); + let buf: Bytes = (*buf).clone(); + drop(buf); })); }