From df9e1733537bee656f36a3c89fd473f5f1a1dff5 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 25 Feb 2016 09:51:45 -0800 Subject: [PATCH] test: Clean up alloc_jemalloc usage in tests Right now there's just a smattering of `// ignore-foo` platforms which is ever expanding as new ones are added. Instead switch to only running these tests on Linux/OSX and then use a guaranteed-to-work but not-as-well-tested alternative on other platforms. --- .../compile-fail/allocator-dylib-is-system.rs | 17 ++++++++++---- .../allocator-rust-dylib-is-jemalloc.rs | 18 +++++++++++---- src/test/run-pass/allocator-default.rs | 6 ++--- src/test/run-pass/allocator-jemalloc.rs | 23 ------------------- 4 files changed, 28 insertions(+), 36 deletions(-) delete mode 100644 src/test/run-pass/allocator-jemalloc.rs diff --git a/src/test/compile-fail/allocator-dylib-is-system.rs b/src/test/compile-fail/allocator-dylib-is-system.rs index 5f8948ac5f1..db7f304227f 100644 --- a/src/test/compile-fail/allocator-dylib-is-system.rs +++ b/src/test/compile-fail/allocator-dylib-is-system.rs @@ -8,11 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-windows everything is the system allocator on windows -// ignore-musl no dylibs on musl yet -// ignore-bitrig no jemalloc on bitrig -// ignore-openbsd no jemalloc on openbsd +// ignore-musl no dylibs // aux-build:allocator-dylib.rs +// aux-build:allocator1.rs // no-prefer-dynamic // error-pattern: cannot link together two allocators @@ -23,7 +21,18 @@ #![feature(alloc_jemalloc)] extern crate allocator_dylib; + +// The main purpose of this test is to ensure that `alloc_jemalloc` **fails** +// here (specifically the jemalloc allocator), but currently jemalloc is +// disabled on quite a few platforms (bsds, emscripten, msvc, etc). To ensure +// that this just passes on those platforms we link in some other allocator to +// ensure we get the same error. +// +// So long as we CI linux/OSX we should be good. +#[cfg(any(target_os = "linux", target_os = "macos"))] extern crate alloc_jemalloc; +#[cfg(not(any(target_os = "linux", target_os = "macos")))] +extern crate allocator1; fn main() { allocator_dylib::foo(); diff --git a/src/test/compile-fail/allocator-rust-dylib-is-jemalloc.rs b/src/test/compile-fail/allocator-rust-dylib-is-jemalloc.rs index b29797f3295..46ad226d255 100644 --- a/src/test/compile-fail/allocator-rust-dylib-is-jemalloc.rs +++ b/src/test/compile-fail/allocator-rust-dylib-is-jemalloc.rs @@ -8,11 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-windows everything is the system allocator on windows -// ignore-musl no dylibs on musl right now -// ignore-bitrig no jemalloc on bitrig -// ignore-openbsd no jemalloc on openbsd +// ignore-musl no dylibs // aux-build:allocator-dylib2.rs +// aux-build:allocator1.rs // error-pattern: cannot link together two allocators // Ensure that rust dynamic libraries use jemalloc as their allocator, verifying @@ -21,9 +19,19 @@ #![feature(alloc_system)] extern crate allocator_dylib2; + +// The main purpose of this test is to ensure that `alloc_system` **fails** +// here (specifically the system allocator), but currently system is +// disabled on quite a few platforms (bsds, emscripten, msvc, etc). To ensure +// that this just passes on those platforms we link in some other allocator to +// ensure we get the same error. +// +// So long as we CI linux/OSX we should be good. +#[cfg(any(target_os = "linux", target_os = "macos"))] extern crate alloc_system; +#[cfg(not(any(target_os = "linux", target_os = "macos")))] +extern crate allocator1; fn main() { allocator_dylib2::foo(); } - diff --git a/src/test/run-pass/allocator-default.rs b/src/test/run-pass/allocator-default.rs index be69a4eaddf..32ed2b33011 100644 --- a/src/test/run-pass/allocator-default.rs +++ b/src/test/run-pass/allocator-default.rs @@ -8,12 +8,10 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(alloc_jemalloc, alloc_system)] +#![feature(alloc_jemalloc)] -#[cfg(not(any(windows, target_os = "bitrig", target_os = "openbsd", target_os="emscripten")))] +#[cfg(any(target_os = "linux", target_os = "macos"))] extern crate alloc_jemalloc; -#[cfg(any(windows, target_os = "bitrig", target_os = "openbsd", target_os="emscripten"))] -extern crate alloc_system; fn main() { println!("{:?}", Box::new(3)); diff --git a/src/test/run-pass/allocator-jemalloc.rs b/src/test/run-pass/allocator-jemalloc.rs deleted file mode 100644 index ad1438f75fc..00000000000 --- a/src/test/run-pass/allocator-jemalloc.rs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2015 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 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// no-prefer-dynamic -// ignore-windows no jemalloc on windows -// ignore-bitrig no jemalloc on bitrig -// ignore-openbsd no jemalloc on openbsd -// ignore-emscripten no jemalloc on emscripten - -#![feature(alloc_jemalloc)] - -extern crate alloc_jemalloc; - -fn main() { - println!("{:?}", Box::new(3)); -}