about summary refs log tree commit diff
path: root/src/bootstrap/test.rs
AgeCommit message (Collapse)AuthorLines
2020-05-03Remove clippy from some leftover lists of "possibly failing" toolsOliver Scherer-1/+1
2020-05-02Gate on clippy on CIOliver Scherer-3/+1
2020-04-22Build libstd with `-Cbitcode-in-rlib=yes`.Nicholas Nethercote-1/+1
So that the rlibs will work with both LTO and non-LTO builds.
2020-04-14Improve rustdoc js testers codeGuillaume Gomez-2/+3
2020-04-11End cleanup on rustdoc-js toolsGuillaume Gomez-1/+6
2020-04-04Auto merge of #69898 - spastorino:rename-rustc-guide2, r=Xanewokbors-3/+3
Move rustc-guide submodule to rustc-dev-guide r? @pietroalbini
2020-03-30Ensure LLVM is in the link path for "fulldeps" testsJosh Stone-1/+10
This is a follow-up to #70123, which added `llvm-config --libdir` to the `LIBRARY_PATH` for rustc tools. We need the same for "run-make-fulldeps" and "ui-fulldeps" tests which depend on compiler libraries, implicitly needing to link to `-lLLVM` as well.
2020-03-24Move rustc-guide submodule to rustc-dev-guideSantiago Pastorino-3/+3
2020-03-24Auto merge of #70190 - pietroalbini:gha, r=Mark-Simulacrumbors-0/+29
Add GitHub Actions configuration This PR adds the GitHub Actions configuration to the rust-lang/rust repository. The configuration will be run in parallel with Azure Pipelines until the evaluation finishes: the infrastructure team will then decide whether to switch. Since GitHub Actions doesn't currently have any way to include pieces of configuration, this also adds the `src/tools/expand-yaml-anchors` tool, which serves as a sort of templating system. Otherwise the configuration is a mostly straight port from the Azure Pipelines configuration (thanks to all the PRs opened in the past). There are still a few small things I need to fix before we can land this, but it's mostly complete and ready for an initial review. r? @Mark-Simulacrum
2020-03-24ci: add github actions configurationPietro Albini-0/+29
2020-03-19Remove trailing newline from llvm-config outputNikita Popov-0/+2
2020-03-19Rollup merge of #69443 - ehuss:tidy-license, r=skade,Mark-SimulacrumMazdak Farrokhzad-3/+0
tidy: Better license checks. This implements some improvements to the license checks in tidy: * Use `cargo_metadata` instead of parsing vendored crates. This allows license checks to run without vendoring enabled, and allows the checks to run on PR builds. * Check for stale entries. * Check that the licenses for exceptions are what we think they are. * Verify exceptions do not leak into the runtime. Closes #62618 Closes #62619 Closes #63238 (I think) There are some substantive changes here. The follow licenses have changed from the original comments: * openssl BSD+advertising clause to Apache-2.0 * pest MPL2 to MIT/Apache-2.0 * smallvec MPL2 to MIT/Apache-2.0 * clippy lints MPL2 to MIT OR Apache-2.0
2020-03-13Allow `rustdoc-js` and `rustdoc-js-std` to use none default build dir locationOliver Middleton-3/+5
2020-03-12tidy: Use cargo_metadata for license checks.Eric Huss-3/+0
2020-03-04point cargo-miri to the right xargo binaryRalf Jung-1/+1
2020-02-21fix miri and bootstrap interactionRalf Jung-1/+3
2020-02-19Auto merge of #69293 - Dylan-DPC:rollup-imcbvgo, r=Dylan-DPCbors-2/+2
Rollup of 5 pull requests Successful merges: - #68863 (ci: switch macOS builders to 10.15) - #69142 (Add shared script for linkchecking books.) - #69248 (Don't eliminate frame pointers on thumb targets) - #69280 (Remove special case for `simd_shuffle` arg promotion) - #69284 (Reword OpenOptions::{create, create_new} doc.) Failed merges: r? @ghost
2020-02-19Auto merge of #69198 - ollie27:rustbuild_rustdoc-js, r=Mark-Simulacrumbors-5/+5
Fix running rustdoc-js test suite individually Without `Compiletest.path` set running `x.py test src/test/rustdoc-js` would run the `rustdoc-js` test suite with everything filtered out. As this was the only place setting `Compiletest.path` to `None` this removes the `Option` wrapper as well.
2020-02-17ci: switch macOS builders to 10.15Pietro Albini-2/+2
2020-02-15Fix running rustdoc-js test suite individuallyOliver Middleton-5/+5
Without `Compiletest.path` set running `x.py test src/test/rustdoc-js` would run the `rustdoc-js` test suite with everything filtered out. As this was the only place setting `Compiletest.path` to `None` this removes the `Option` wrapper as well.
2020-02-13Update books.Eric Huss-24/+58
2020-02-09Auto merge of #68623 - Zoxc:lld, r=Mark-Simulacrumbors-2/+3
Add an option to use LLD to link the compiler on Windows platforms Based on https://github.com/rust-lang/rust/pull/68609. Using LLD is good way to improve compile times on Windows since `link.exe` is quite slow. The time for `x.py build --stage 1 src/libtest` goes from 0:12:00 to 0:08:29. Compile time for `rustc_driver` goes from 226.34s to 18.5s. `rustc_macros` goes from 28.69s to 7.7s. The size of `rustc_driver` is also reduced from 83.3 MB to 78.7 MB. r? @Mark-Simulacrum
2020-02-09Add some commentsJohn Kåre Alsaker-0/+1
2020-02-03bootstrap: fix clippy warningsMatthias Krüger-6/+3
2020-01-29Add an option to use LLD to link the compiler on Windows platformsJohn Kåre Alsaker-2/+2
2020-01-27compiletest: Remove unused llvm-cxxflags optionTomasz Miąsko-6/+1
2020-01-20compiletest: Simplify multi-debugger supportTomasz Miąsko-8/+0
Previous implementation used a single mode type to store various pieces of otherwise loosely related information: * Whether debuginfo mode is in use or not. * Which debuggers should run in general. * Which debuggers are enabled for particular test case. The new implementation introduces a separation between those aspects. There is a single debuginfo mode parametrized by a debugger type. The debugger detection is performed first and a separate configuration is created for each detected debugger. The test cases are gathered independently for each debugger which makes it trivial to implement support for `ignore` / `only` conditions. Functional changes: * A single `debuginfo` entry point (rather than `debuginfo-cdb`, `debuginfo-gdb+lldb`, etc.). * Debugger name is included in the test name. * Test outputs are placed in per-debugger directory. * Fixed spurious hash mismatch. Previously, the config mode would change from `DebugInfoGdbLldb` (when collecting tests) to `DebugInfoGdb` or `DebugInfoLldb` (when running them) which would affect hash computation. * PYTHONPATH is additionally included in gdb hash. * lldb-python and lldb-python-dir are additionally included in lldb hash.
2020-01-09Add bootstrap step for building sanitizer runtimesTomasz Miąsko-1/+1
2019-12-29tidy: Enforce formatting rather than just check it if `--bless` is specifiedVadim Petrochenkov-1/+1
2019-12-24bootstrap miri: remove no longer used env varRalf Jung-3/+0
2019-12-22Format the worldMark Rousskov-311/+177
2019-12-21Include formatting check in the test step for tidy.Adam Perry-0/+8
2019-12-17Revert "Auto merge of #67362 - Mark-Simulacrum:par-4-default, r=alexcrichton"Mark Rousskov-13/+13
This reverts commit 3ed3b8bb7b100afecf7d5f52eafbb70fec27f537, reversing changes made to 99b89533d4cdf7682ea4054ad0ee36c351d05df1. We will reland a similar patch at a future date but for now we should get a nightly released in a few hours with the parallel patch, so this should be reverted to make sure that the next nightly is not parallel-enabled.
2019-12-17Disable cargo tests for nowMark Rousskov-13/+13
These depend on rustc being bug-free and it looks like that's not currently entirely the case (e.g., we know of at least one bug that introduces nondeterminism).
2019-12-11rustc: Link LLVM directly into rustc againAlex Crichton-1/+1
This commit builds on #65501 continue to simplify the build system and compiler now that we no longer have multiple LLVM backends to ship by default. Here this switches the compiler back to what it once was long long ago, which is linking LLVM directly to the compiler rather than dynamically loading it at runtime. The `codegen-backends` directory of the sysroot no longer exists and all relevant support in the build system is removed. Note that `rustc` still supports a dynamically loaded codegen backend as it did previously, it just no longer supports dynamically loaded codegen backends in its own sysroot. Additionally as part of this the `librustc_codegen_llvm` crate now once again explicitly depends on all of its crates instead of implicitly loading them through the sysroot. This involved filling out its `Cargo.toml` and deleting all the now-unnecessary `extern crate` annotations in the header of the crate. (this in turn required adding a number of imports for names of macros too). The end results of this change are: * Rustbuild's build process for the compiler as all the "oh don't forget the codegen backend" checks can be easily removed. * Building `rustc_codegen_llvm` is much simpler since it's simply another compiler crate. * Managing the dependencies of `rustc_codegen_llvm` is much simpler since it's "just another `Cargo.toml` to edit" * The build process should be a smidge faster because there's more parallelism in the main rustc build step rather than splitting `librustc_codegen_llvm` out to its own step. * The compiler is expected to be slightly faster by default because the codegen backend does not need to be dynamically loaded. * Disabling LLVM as part of rustbuild is still supported, supporting multiple codegen backends is still supported, and dynamic loading of a codegen backend is still supported.
2019-11-11Update clippyManish Goregaokar-0/+5
2019-10-26use plain cargo to install xargoRalf Jung-11/+1
2019-10-26bootstrap now takes care of installing xargoRalf Jung-4/+21
2019-10-21Remove `src/llvm-emscripten` submoduleAlex Crichton-2/+1
With #65251 landed there's no need to build two LLVM backends and ship them with rustc, every target we have now uses the same LLVM backend! This removes the `src/llvm-emscripten` submodule and additionally removes all support from rustbuild for building the emscripten LLVM backend. Multiple codegen backend support is left in place for now, and this is intended to be an easy 10-15 minute win on CI times by avoiding having to build LLVM twice.
2019-10-19adjust miri sysroot determinationRalf Jung-6/+4
2019-10-16Upgrade Emscripten targets to use upstream LLVM backendThomas Lively-2/+3
- Compatible with Emscripten 1.38.46-upstream or later upstream. - Refactors the Emscripten target spec to share code with other wasm targets. - Replaces the old incorrect wasm32 C call ABI with the correct one, preserving the old one as wasm32_bindgen_compat for wasm-bindgen compatibility. - Updates the varargs ABI used by Emscripten and deletes the old one. - Removes the obsolete wasm32-experimental-emscripten target. - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649.
2019-10-05Revert "Auto merge of #63649 - tlively:emscripten-upstream-upgrade, ↵Tyler Mandry-3/+2
r=alexcrichton" This reverts commit 7870050796e5904a0fc85ecbe6fa6dde1cfe0c91, reversing changes made to 2e7244807a7878f6eca3eb7d97ae9b413aa49014.
2019-10-04Fix ABI, run and fix more tests, re-enable CI for PRsThomas Lively-2/+5
2019-10-04Upgrade Emscripten targets to use upstream LLVM backendThomas Lively-4/+2
- Refactors the Emscripten target spec to share code with other wasm targets. - Replaces the incorrect wasm32 C call ABI with the old asmjs version, which is correct for both wasm32 and JS. - Updates the varargs ABI used by Emscripten and deletes the old one. - Removes the obsolete wasm32-experimental-emscripten target. - Temporarily makes Emscripten targets use panic=abort by default because supporting unwinding will require an LLVM patch.
2019-09-23Move handling of `-Cprefer-dynamic` into `builder.rs`Alex Crichton-4/+0
This logic is *super* old and can be tweaked and moved into `builder.rs`
2019-09-23Allow adding `RUSTFLAGS` after `Builder::cargo`Alex Crichton-19/+19
This commit changes the return type of `Builder::cargo` to return a builder that allows dynamically adding more `RUSTFLAGS` values after-the-fact. While not used yet, this will later be used to delete more of `rustc.rs`
2019-09-23bootstrap: Remove usage of `RUSTC_TARGET_LINKER`Alex Crichton-11/+1
Cargo has a native enviroment variable for this.
2019-09-05Explicitly create test tempdirMark Rousskov-1/+4
2019-08-28std: Remove the `wasm_syscall` featureAlex Crichton-10/+0
This commit removes the `wasm_syscall` feature from the wasm32-unknown-unknown build of the standard library. This feature was originally intended to allow an opt-in way to interact with the operating system in a posix-like way but it was never stabilized. Nowadays with the advent of the `wasm32-wasi` target that should entirely replace the intentions of the `wasm_syscall` feature.
2019-08-23bootstrap: Merge the libtest build step with libstdAlex Crichton-28/+8
Since its inception rustbuild has always worked in three stages: one for libstd, one for libtest, and one for rustc. These three stages were architected around crates.io dependencies, where rustc wants to depend on crates.io crates but said crates don't explicitly depend on libstd, requiring a sysroot assembly step in the middle. This same logic was applied for libtest where libtest wants to depend on crates.io crates (`getopts`) but `getopts` didn't say that it depended on std, so it needed `std` built ahead of time. Lots of time has passed since the inception of rustbuild, however, and we've since gotten to the point where even `std` itself is depending on crates.io crates (albeit with some wonky configuration). This commit applies the same logic to the two dependencies that the `test` crate pulls in from crates.io, `getopts` and `unicode-width`. Over the many years since rustbuild's inception `unicode-width` was the only dependency picked up by the `test` crate, so the extra configuration necessary to get crates building in this crate graph is unlikely to be too much of a burden on developers. After this patch it means that there are now only two build phasese of rustbuild, one for libstd and one for rustc. The libtest/libproc_macro build phase is all lumped into one now with `std`. This was originally motivated by rust-lang/cargo#7216 where Cargo was having to deal with synthesizing dependency edges but this commit makes them explicit in this repository.