about summary refs log tree commit diff
path: root/src/compiletest/runtest.rs
AgeCommit message (Collapse)AuthorLines
2016-04-18rustbuild: Add support for compiletest test suitesAlex Crichton-2131/+0
This commit adds support in rustbuild for running all of the compiletest test suites as part of `make check`. The `compiletest` program was moved to `src/tools` (like `rustbook` and others) and is now just compiled like any other old tool. Each test suite has a pretty standard set of dependencies and just tweaks various parameters to the final compiletest executable. Note that full support is lacking in terms of: * Once a test suite has passed, that's not remembered. When a test suite is requested to be run, it's always run. * The arguments to compiletest probably don't work for every possible combination of platforms and testing environments just yet. There will likely need to be future updates to tweak various pieces here and there. * Cross compiled test suites probably don't work just yet, support for that will come in a follow-up patch.
2016-04-15Add initial version of codegen unit partitioning for incremental compilation.Michael Woerister-17/+130
2016-04-12Auto merge of #32803 - eddyb:mir-debuginfo, r=nikomatsakisbors-17/+1
Initial implementation of debuginfo in MIR trans. Progress is made towards #31005, but several issues remain, such as #32790.
2016-04-11tests: update for MIR debuginfo.Eduard Burtescu-17/+1
2016-04-11std: Stabilize APIs for the 1.9 releaseAlex Crichton-3/+3
This commit applies all stabilizations, renamings, and deprecations that the library team has decided on for the upcoming 1.9 release. All tracking issues have gone through a cycle-long "final comment period" and the specific APIs stabilized/deprecated are: Stable * `std::panic` * `std::panic::catch_unwind` (renamed from `recover`) * `std::panic::resume_unwind` (renamed from `propagate`) * `std::panic::AssertUnwindSafe` (renamed from `AssertRecoverSafe`) * `std::panic::UnwindSafe` (renamed from `RecoverSafe`) * `str::is_char_boundary` * `<*const T>::as_ref` * `<*mut T>::as_ref` * `<*mut T>::as_mut` * `AsciiExt::make_ascii_uppercase` * `AsciiExt::make_ascii_lowercase` * `char::decode_utf16` * `char::DecodeUtf16` * `char::DecodeUtf16Error` * `char::DecodeUtf16Error::unpaired_surrogate` * `BTreeSet::take` * `BTreeSet::replace` * `BTreeSet::get` * `HashSet::take` * `HashSet::replace` * `HashSet::get` * `OsString::with_capacity` * `OsString::clear` * `OsString::capacity` * `OsString::reserve` * `OsString::reserve_exact` * `OsStr::is_empty` * `OsStr::len` * `std::os::unix::thread` * `RawPthread` * `JoinHandleExt` * `JoinHandleExt::as_pthread_t` * `JoinHandleExt::into_pthread_t` * `HashSet::hasher` * `HashMap::hasher` * `CommandExt::exec` * `File::try_clone` * `SocketAddr::set_ip` * `SocketAddr::set_port` * `SocketAddrV4::set_ip` * `SocketAddrV4::set_port` * `SocketAddrV6::set_ip` * `SocketAddrV6::set_port` * `SocketAddrV6::set_flowinfo` * `SocketAddrV6::set_scope_id` * `<[T]>::copy_from_slice` * `ptr::read_volatile` * `ptr::write_volatile` * The `#[deprecated]` attribute * `OpenOptions::create_new` Deprecated * `std::raw::Slice` - use raw parts of `slice` module instead * `std::raw::Repr` - use raw parts of `slice` module instead * `str::char_range_at` - use slicing plus `chars()` plus `len_utf8` * `str::char_range_at_reverse` - use slicing plus `chars().rev()` plus `len_utf8` * `str::char_at` - use slicing plus `chars()` * `str::char_at_reverse` - use slicing plus `chars().rev()` * `str::slice_shift_char` - use `chars()` plus `Chars::as_str` * `CommandExt::session_leader` - use `before_exec` instead. Closes #27719 cc #27751 (deprecating the `Slice` bits) Closes #27754 Closes #27780 Closes #27809 Closes #27811 Closes #27830 Closes #28050 Closes #29453 Closes #29791 Closes #29935 Closes #30014 Closes #30752 Closes #31262 cc #31398 (still need to deal with `before_exec`) Closes #31405 Closes #31572 Closes #31755 Closes #31756
2016-04-06Address nits.Niko Matsakis-3/+4
2016-04-06add incremental test runner and some testsNiko Matsakis-0/+65
2016-03-26Set source file name when setting breakpoints in lldbTed Horst-1/+4
2016-03-25Make library paths passed by compiletest tool absolute.Michael Woerister-5/+5
Otherwise, changing the current working directory can mess up runtime linking.
2016-03-22Auto merge of #32341 - frewsxcv:compiletest-enum, r=nikomatsakisbors-8/+11
Use enum for message kind in compiletest harness. None
2016-03-19Rollup merge of #32271 - frewsxcv:compiletest-ignored-help-note, r=nikomatsakisEduard-Mihai Burtescu-0/+4
Add comment about opt-in nature of compiletest note/help messages. The opt-in functionality was proposed and discussed in https://github.com/rust-lang/rust/issues/21195
2016-03-18Use enum for message kind in compiletest harness.Corey Farwell-8/+11
2016-03-18Auto merge of #32080 - eddyb:transcendent, r=nikomatsakisbors-5/+21
Refactor call & function handling in trans, enable MIR bootstrap. Non-Rust and Rust ABIs were combined into a common codepath, which means: * The ugly `__rust_abi` "clown shoes" shim for C->Rust FFI is gone, fixes #10116. * Methods, *including virtual ones* support non-Rust ABIs, closes #30235. * Non-Rust ABIs also pass fat pointers in two arguments; the result should be identical. * Zero-sized types are never passed as arguments; again, behavior shouldn't change. Additionally, MIR support for calling intrinsics (through old trans) was implemented. Alongside assorted fixes, it enabled MIR to launch :rocket: and do a *complete* bootstrap. To try it yourself, `./configure --enable-orbit` *or* `make RUSTFLAGS="-Z orbit"`.
2016-03-17Add #[rustc_no_mir] to make tests pass with -Z orbit.Eduard Burtescu-4/+20
2016-03-17compiletest: Add rustc-env for run-pass/super-fast-paren-parsing.Eduard Burtescu-1/+1
2016-03-16Stop ignoring expected note/help messages in compiletest suite.Corey Farwell-2/+2
Original issue: https://github.com/rust-lang/rust/issues/21195 Relevant PR: https://github.com/rust-lang/rust/pull/30778 Prior to this commit, if a compiletest testcase included the text "HELP:" or "NOTE:" (note the colons), then it would indicate to the compiletest suite that we should verify "help" and "note" expected messages. This commit updates this check to also check "HELP" and "NOTE" (not the absense of colons) so that we always verify "help" and "note" expected messages.
2016-03-15Add comment about opt-in nature of compiletest note/help messages.Corey Farwell-0/+4
The opt-in functionality was proposed and discussed in https://github.com/rust-lang/rust/issues/21195
2016-03-09Differentiate "line" and "line number" variable names.Corey Farwell-2/+2
2016-03-03make pretty printer tests understand revisions, and make them ignore theNiko Matsakis-15/+18
should-fail annotation
2016-03-03Do not assert revisions list is empty for pretty printing testsNiko Matsakis-1/+5
2016-03-02thread revision identifier around in test outputNiko Matsakis-91/+134
2016-03-02refactor and generalize revisionsNiko Matsakis-2/+49
2016-03-01introduce the notion of revisions, currently unusedNiko Matsakis-2/+2
a test file may specify `// revisions: foo bar baz` headers and expected errors may be made specific to a revision by writing `//[foo] header` or `//[foo]~ ERROR`
2016-03-01change compile_flags to eagerly split into a vector on whitespaceNiko Matsakis-4/+4
2016-02-25add comment and stop creating directories in runtestNiko Matsakis-1/+2
2016-02-25translate backslashes to forward slashes in the expected stringsNiko Matsakis-1/+3
2016-02-24Recurse to find test files in any subdirectory of the base path. If aNiko Matsakis-3/+20
subdirectory contains `compiletest-ignore-dir`, then ignore it.
2016-02-24Generalize from passing around a single path to the test file to passingNiko Matsakis-155/+166
around a set of paths called `TestPaths` This commit is not quite standalone; it basically contains all the borrowing plumbing bits, the interesting stuff comes in the next commit.
2016-02-10Fix half of emscripten's failing testsPierre Krieger-5/+7
2016-02-06Add emscripten support to compiletestBrian Anderson-1/+12
2016-01-30Expect all help/note messages are specified in a cfail test if it contains ↵Florian Hahn-6/+15
help/note annotations, closes #21195
2016-01-26Implement the translation item collector.Michael Woerister-1/+44
The purpose of the translation item collector is to find all monomorphic instances of functions, methods and statics that need to be translated into LLVM IR in order to compile the current crate. So far these instances have been discovered lazily during the trans path. For incremental compilation we want to know the set of these instances in advance, and that is what the trans::collect module provides. In the future, incremental and regular translation will be driven by the collector implemented here.
2015-12-17Remove unused importsJeffrey Seyfried-2/+0
2015-12-05std: Stabilize APIs for the 1.6 releaseAlex Crichton-10/+7
This commit is the standard API stabilization commit for the 1.6 release cycle. The list of issues and APIs below have all been through their cycle-long FCP and the libs team decisions are listed below Stabilized APIs * `Read::read_exact` * `ErrorKind::UnexpectedEof` (renamed from `UnexpectedEOF`) * libcore -- this was a bit of a nuanced stabilization, the crate itself is now marked as `#[stable]` and the methods appearing via traits for primitives like `char` and `str` are now also marked as stable. Note that the extension traits themeselves are marked as unstable as they're imported via the prelude. The `try!` macro was also moved from the standard library into libcore to have the same interface. Otherwise the functions all have copied stability from the standard library now. * The `#![no_std]` attribute * `fs::DirBuilder` * `fs::DirBuilder::new` * `fs::DirBuilder::recursive` * `fs::DirBuilder::create` * `os::unix::fs::DirBuilderExt` * `os::unix::fs::DirBuilderExt::mode` * `vec::Drain` * `vec::Vec::drain` * `string::Drain` * `string::String::drain` * `vec_deque::Drain` * `vec_deque::VecDeque::drain` * `collections::hash_map::Drain` * `collections::hash_map::HashMap::drain` * `collections::hash_set::Drain` * `collections::hash_set::HashSet::drain` * `collections::binary_heap::Drain` * `collections::binary_heap::BinaryHeap::drain` * `Vec::extend_from_slice` (renamed from `push_all`) * `Mutex::get_mut` * `Mutex::into_inner` * `RwLock::get_mut` * `RwLock::into_inner` * `Iterator::min_by_key` (renamed from `min_by`) * `Iterator::max_by_key` (renamed from `max_by`) Deprecated APIs * `ErrorKind::UnexpectedEOF` (renamed to `UnexpectedEof`) * `OsString::from_bytes` * `OsStr::to_cstring` * `OsStr::to_bytes` * `fs::walk_dir` and `fs::WalkDir` * `path::Components::peek` * `slice::bytes::MutableByteVector` * `slice::bytes::copy_memory` * `Vec::push_all` (renamed to `extend_from_slice`) * `Duration::span` * `IpAddr` * `SocketAddr::ip` * `Read::tee` * `io::Tee` * `Write::broadcast` * `io::Broadcast` * `Iterator::min_by` (renamed to `min_by_key`) * `Iterator::max_by` (renamed to `max_by_key`) * `net::lookup_addr` New APIs (still unstable) * `<[T]>::sort_by_key` (added to mirror `min_by_key`) Closes #27585 Closes #27704 Closes #27707 Closes #27710 Closes #27711 Closes #27727 Closes #27740 Closes #27744 Closes #27799 Closes #27801 cc #27801 (doesn't close as `Chars` is still unstable) Closes #28968
2015-12-03Add a `build-aux-docs` directive to compiletestmitaa-6/+19
This flag causes the documentation for all `aux-build` files to be built, which happens prior to running/building the parent test.
2015-11-04Deprecate `_ms` functions that predate the `Duration` APIBen Striegel-1/+1
2015-09-21Avoid loading the whole gdb debug scripts section.Richard Diamond-2/+1
This is so LLVM isn't forced to load every byte of it. Also sets the alignment of the load. Adds a test for the debug script section.
2015-09-03Add an intital HIR and lowering stepNick Cameron-1/+1
2015-09-01refactored compiletest following clippy's suggestionsllogiq-103/+103
2015-08-24Fix compile-fail tests on windowsDiggory Blake-2/+14
2015-08-11Fix #27567: remove --crate-type=lib from pretty testTim Neumann-1/+0
2015-07-10Change some instances of .connect() to .join()Wesley Wiser-4/+4
2015-07-08this fixes the test failures on freebsdDave Huseby-1/+4
2015-06-18compiletest: Minor cleanup from removal of jit test supportGeoffrey Thomas-11/+4
We're no longer passing extra args to the compiler, so remove the variable.
2015-06-13compiletest: remove JITTamir Duberstein-28/+12
2015-06-10Removed many pointless calls to *iter() and iter_mut()Joshua Landau-12/+12
2015-06-08Replace usage of String::from_str with String:fromSimon Sapin-1/+1
2015-06-03Improve diagnostic messages for range patterns.Michael Sproul-10/+5
2015-05-27Revamp codegen tests to check IR quality instead of quantityBjörn Steinbrink-118/+13
The current codegen tests only compare IR line counts between similar rust and C programs, the latter getting compiled with clang. That looked like a good idea back then, but actually things like lifetime intrinsics mean that less IR isn't always better, so the metric isn't really helpful. Instead, we can start doing tests that check specific aspects of the generated IR, like attributes or metadata. To do that, we can use LLVM's FileCheck tool which has a number of useful features for such tests. To start off, I created some tests for a few things that were recently added and/or broken.
2015-04-27compiletest: Don't force dylibs on muslAlex Crichton-1/+14
MUSL support is currently only with static builds, so building a dylib will always fail.