about summary refs log tree commit diff
path: root/src/tools/compiletest
AgeCommit message (Collapse)AuthorLines
2019-05-17Auto merge of #60171 - matthewjasper:full-nll-compare-mode, r=pnkfelixbors-2/+1
Use -Zborrowck=mir for NLL compare mode closes #56993 r? @pnkfelix
2019-05-17Rollup merge of #60805 - euclio:filetime-dep, r=Mark-SimulacrumMazdak Farrokhzad-14/+17
remove compiletest's dependency on `filetime`
2019-05-13remove compiletest's dependency on `filetime`Andy Russell-14/+17
2019-05-13Remove bitrig support from rustMarcel Hellwig-6/+2
2019-05-12Change compare mode to use -Zborrowck=mirMatthew Jasper-2/+1
2019-05-10Make tests compatible with musl hostMateusz Mikuła-1/+14
2019-05-09remove unneeded `extern crate`s from build toolsAndy Russell-10/+12
2019-05-08Auto merge of #60378 - froydnj:apple-target-modifications, r=michaelwoeristerbors-0/+11
conditionally modify darwin targets to macosx targets with versions We need this behavior so that Rust LLVM IR objects match the target triple for Clang LLVM IR objects. This matching then convinces the linker that yes, you really can do cross-language LTO with objects from different compilers. The newly-added tests seem to pass locally on x86_64-unknown-linux-gnu. I haven't done a full test run or tried the new compiler in an cross-language LTO setup yet.
2019-05-07add negative tests for OS X LLVM target changesNathan Froyd-0/+11
2019-05-07compiletest: uniformly normalize paths, so they all work on all platforms.Eduard-Mihai Burtescu-17/+15
2019-05-07rustc: rename -Z emit-directives to -Z emit-artifact-notifications and ↵Eduard-Mihai Burtescu-5/+5
simplify the output.
2019-05-07compiletest: only use `make_exe_name` for tests that end up being executed.Eduard-Mihai Burtescu-5/+21
2019-04-30Auto merge of #60262 - michaelwoerister:pgo-preinlining-pass, r=alexcrichtonbors-1/+14
PGO: Add a run-make test that makes sure that PGO profiling data is used by the compiler during optimizations. From the tests comment section: ``` # This test makes sure that PGO profiling data leads to cold functions being # marked as `cold` and hot functions with `inlinehint`. # The test program contains an `if` were actual execution only ever takes the # `else` branch. Accordingly, we expect the function that is never called to # be marked as cold. ``` r? @alexcrichton
2019-04-29Auto merge of #60006 - nnethercote:json-for-pipelining, r=alexcrichtonbors-10/+17
In JSON output, emit a directive after metadata is generated. To implement pipelining, Cargo needs to know when metadata generation is finished. This is done via a new JSON "directive". Unfortunately, metadata file writing currently occurs very late during compilation, so pipelining won't produce a speed-up. Moving metadata file writing earlier will be a follow-up. r? @alexcrichton
2019-04-30In JSON output, emit a directive after metadata is generated.Nicholas Nethercote-10/+17
To implement pipelining, Cargo needs to know when metadata generation is finished. This commit adds code to do that. Unfortunately, metadata file writing currently occurs very late during compilation, so pipelining won't produce a speed-up. Moving metadata file writing earlier will be a follow-up. The change involves splitting the existing `Emitter::emit` method in two: `Emitter::emit_diagnostic` and `Emitter::emit_directive`. The JSON directives look like this: ``` {"directive":"metadata file written: liba.rmeta"} ``` The functionality is behind the `-Z emit-directives` option, and also requires `--error-format=json`.
2019-04-29compiletest: Make LLVM's bin directory available to run-make-fulldeps tests.Michael Woerister-1/+10
2019-04-26compiletest: Make the LLVM FileCheck tool available to run-make tests.Michael Woerister-0/+4
2019-04-25ignore-tidy-filelength on all files with greater than 3000 linesvarkor-0/+2
2019-04-25Rollup merge of #60038 - michaelwoerister:pgo-updates-2, r=alexcrichtonMazdak Farrokhzad-0/+21
Add codegen test for PGO instrumentation. This PR adds a codegen test that makes sure that LLVM actually generates instrumentation code when we enable PGO instrumentation in `rustc`. The second commit updates a test case to the new commandline option syntax introduced in #59874. Without the fix the test still works, but it confusingly creates a directory called `test.profraw`, which usually is the name of the _file_ where profiling data is collected.
2019-04-22update tests for migrate mode by defaultMatthew Jasper-2/+3
2019-04-18compiletest: Allow for tests requiring profiler-rt or sanitizer-rt support.Michael Woerister-0/+21
2019-04-17Rollup merge of #59128 - oli-obk:colorful_json, r=mark-i-m,eddybMazdak Farrokhzad-45/+8
Emit ansi color codes in the `rendered` field of json diagnostics cc @ljedrz Implemented for https://github.com/rust-lang/rust/pull/56595#issuecomment-447645115 (x.py clippy)
2019-04-17bump bootstrap; remove redundant 'use libc;' on macOS.Mazdak Farrokhzad-1/+0
2019-04-17bump bootstrap; fix compiletest wrt. exclude_should_panicMazdak Farrokhzad-0/+1
2019-04-16Auto merge of #59769 - RalfJung:compiletest-normalization, r=alexcrichtonbors-1/+2
compiletest normalization: preserve non-JSON lines such as ICEs Currently, every non-JSON line from stderr gets normalized away when compiletest normalizes the output. In particular, ICEs get normalized to the empty output. That does not seem desirable, so this changes normalization to preserve non-JSON lines instead. Also see https://github.com/laumann/compiletest-rs/issues/169: because of that bug, Miri currently *looks* green in the toolstate, but some tests ICE. That same bug is likely no longer present in latest compiletest because the error code gets checked separately, but it still seems like a good idea to also make sure that ICEs are considered stderr output: This change found an accidental user-visible `error!` in CTFE validation (fixed), and a non-deterministic panic when there are two `main` symbols (not fixed, no idea where this comes from). Both got missed before because non-JSON output got ignored.
2019-04-16Auto merge of #59990 - bjorn3:nicer_compiletest_errors, r=alexcrichtonbors-1/+3
Use resume_unwind instead of panic!() for nicer compiletest errors cc https://github.com/rust-lang/rust/pull/58783#issuecomment-477287606
2019-04-15Use resume_unwind instead of panic!() for nicer compiletest errorsbjorn3-1/+3
2019-04-14Fix typo in commentAaron Hill-1/+1
2019-04-14Fix Windows dll name formatAaron Hill-7/+7
2019-04-14Handle --extern-private properly on muslAaron Hill-8/+35
On musl (and some other platforms), compiletest ends up creating a static rlib (instead of a dylib) when building 'aux-build' crates. This commit changes the '--extern-private' path computed by compiletest to properly take this into account
2019-04-14Refactor structure of ExternEntryAaron Hill-0/+1
2019-04-14compiletest normalization: preserve non-JSON lines such as ICEsRalf Jung-1/+2
2019-04-14Properly parse '--extern-private' with name and pathAaron Hill-0/+30
2019-04-12Rollup merge of #59806 - phansch:compiletest_docs2, r=oli-obkMazdak Farrokhzad-1/+5
compiletest: Improve no_prefer_dynamic docs This adds some extra docs for the `no-prefer-dynamic` header. And also a `s/must_compile_successfully/compile_pass`. `must_compile_successfully` has been renamed to `compile_pass` at some point in the past and this comment was still referring to the old name.
2019-04-08compiletest: Improve no_prefer_dynamic docsPhilipp Hansch-1/+5
This adds some extra docs for the `no-prefer-dynamic` header. And also a `s/must_compile_successfully/compile_pass`. `must_compile_successfully` has been renamed to `compile_pass` at some point in the past and this comment was still referring to the old name.
2019-04-03rustfix coverage: Skip UI tests with non-json error-formatPhilipp Hansch-2/+5
When using the `rustfix-coverage` flag, some tests currently fail because they define a different error-format than `json`. The current implementation crashes when encountering those tests. Since we don't care about non-json test output when collecting the coverage data, we handle those tests by returning an empty `Vec` instead.
2019-04-02Don't dump diagnostics json if not absolutely necessaryOliver Scherer-5/+8
2019-04-02Remove workaround code for a closed issueOliver Scherer-40/+0
2019-03-28Rollup merge of #59408 - euclio:compiletest-normalization, r=oli-obkMazdak Farrokhzad-5/+98
compiletest: make path normalization smarter Fixes #59109.
2019-03-28Rollup merge of #59398 - phansch:rustfix_coverage, r=oli-obkMazdak Farrokhzad-1/+51
Add a way to track Rustfix UI test coverage This came out of the first Rustfix WG meeting. One of the goals is to enable Rustfix tests for all UI tests that trigger lints with `MachineApplicable` suggestions. In order to do that we first want to create a tracking issue that lists all files with missing `// run-rustfix` headers. This PR adds a `--rustfix-coverage` flag to `./x.py` and compiletest to list the files with the missing headers in `/tmp/rustfix_missing_coverage.txt`. From that file we can create the tracking issue and at some point also enforce the `// run-rustfix` flag on UI tests with `MachineApplicable` lints.
2019-03-26Improve some compiletest documentationPhilipp Hansch-3/+20
This adds some missing documentation for rustfix related things and adds a test for the `is_test` function.
2019-03-25Save coverage file in build_base path, not /tmpPhilipp Hansch-6/+10
2019-03-25s/lints/diagnosticsPhilipp Hansch-2/+2
Not all suggestions come from lints
2019-03-25compiletest: make path normalization smarterAndy Russell-5/+98
2019-03-24Add a way to track Rustfix UI test coveragePhilipp Hansch-1/+47
This came out of the first Rustfix WG meeting. One of the goals is to enable Rustfix tests for all UI tests that trigger lints with `MachineApplicable` suggestions. In order to do that we first want to create a tracking issue that lists all files with missing `// run-rustfix` headers. This PR adds a `--rustfix-coverage` flag to `./x.py` and compiletest to list the files with the missing headers in `/tmp/rustfix_missing_coverage.txt`. From that file we can create the tracking issue and at some point also enforce the `// run-rustfix` flag on UI tests with `MachineApplicable` lints.
2019-03-20Auto merge of #58791 - denzp:asm-compile-tests, r=alexcrichtonbors-9/+68
Introduce assembly tests suite The change introduces a new test suite - **Assembly** tests. The motivation behind this is an ability to perform end-to-end codegen testing with LLVM backend. Turned out, NVPTX backend sometimes missing common Rust features (`i128` and libcalls in the past, and still full atomics support) due to different reasons. Prior to this change, basic NVPTX assembly tests were implemented within `run-make` suite. Now, it's easier to write additional and maintain existing tests for the target. cc @gnzlbg @peterhj cc @eddyb I adjusted mangling scheme expectation, so there is no need to change the tests for #57967
2019-03-17Auto merge of #59250 - bovinebuddha:filter_ui_revision_tests, r=petrochenkovbors-1/+1
Filter ui revision tests Updates UI test output filtering to also filter away test annotations for revisions: Previously filtered: //~ ERROR [XXXX] Now also filters: //[revision]~ ERROR [XXXX] I reckon, if we have the one, we should have the other for consistency, its lack was probably an oversight (the existence of revision testing is not really well documented...)
2019-03-17compiletest: Filter test annotations from UI test output for revision testsMathias Blikstad-1/+1
2019-03-16Merge remote-tracking branch 'upstream/master' into asm-compile-testsDenys Zariaiev-0/+8
2019-03-16Rollup merge of #58941 - wzssyqa:master, r=alexcrichtonkennytm-0/+8
MIPS: add r6 support MIPS r6 is quite different with the previous version. It use some new target triples: mipsisa32r6-unknown-linux-gnu mipsisa32r6el-unknown-linux-gnu mipsisa64r6-unknown-linux-gnuabi64 mipsisa64r6el-unknown-linux-gnuabi64 This patch has been tested with Debian Port for mips64r6el, and the support of these triples also is included in llvm: https://reviews.llvm.org/rGe58c45a695f39004710b6ce940d489fee800dbd3