Commit graph

482 commits

Author SHA1 Message Date
Marcel Hellwig
cc314b066a Remove bitrig support from rust 2019-05-13 11:09:06 +02:00
Mateusz Mikuła
f74debbe7d Make tests compatible with musl host 2019-05-10 16:12:47 +02:00
Andy Russell
b2f71fb540
remove unneeded extern crates from build tools 2019-05-09 12:03:13 -04:00
bors
b92d360c6c Auto merge of #60378 - froydnj:apple-target-modifications, r=michaelwoerister
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-08 08:26:48 +00:00
Nathan Froyd
1516087ca9 add negative tests for OS X LLVM target changes 2019-05-07 11:09:39 -04:00
Eduard-Mihai Burtescu
c89a13179e compiletest: uniformly normalize paths, so they all work on all platforms. 2019-05-07 05:09:19 +03:00
Eduard-Mihai Burtescu
1618c079ab rustc: rename -Z emit-directives to -Z emit-artifact-notifications and simplify the output. 2019-05-07 04:49:54 +03:00
Eduard-Mihai Burtescu
f0e43fc986 compiletest: only use make_exe_name for tests that end up being executed. 2019-05-07 04:49:54 +03:00
bors
7c71bc3208 Auto merge of #60262 - michaelwoerister:pgo-preinlining-pass, r=alexcrichton
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-30 19:52:13 +00:00
bors
03122e1bac Auto merge of #60006 - nnethercote:json-for-pipelining, r=alexcrichton
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-29 23:35:01 +00:00
Nicholas Nethercote
7bcb0cffb6 In JSON output, emit a directive after metadata is generated.
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-30 08:51:57 +10:00
Michael Woerister
29cf3f54ab compiletest: Make LLVM's bin directory available to run-make-fulldeps tests. 2019-04-29 14:38:25 +02:00
Michael Woerister
68b6924363 compiletest: Make the LLVM FileCheck tool available to run-make tests. 2019-04-26 16:52:04 +02:00
varkor
aa388f1d11 ignore-tidy-filelength on all files with greater than 3000 lines 2019-04-25 21:39:09 +01:00
Mazdak Farrokhzad
bb892be98e
Rollup merge of #60038 - michaelwoerister:pgo-updates-2, r=alexcrichton
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-25 03:05:22 +02:00
Matthew Jasper
8eef102270 update tests for migrate mode by default 2019-04-22 08:40:08 +01:00
Michael Woerister
227be657cd compiletest: Allow for tests requiring profiler-rt or sanitizer-rt support. 2019-04-18 15:32:49 +02:00
Mazdak Farrokhzad
c89bc54d4f
Rollup merge of #59128 - oli-obk:colorful_json, r=mark-i-m,eddyb
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-17 10:31:30 +02:00
Mazdak Farrokhzad
f2371e3b7d bump bootstrap; remove redundant 'use libc;' on macOS. 2019-04-17 05:45:37 +02:00
Mazdak Farrokhzad
26e9a81c48 bump bootstrap; fix compiletest wrt. exclude_should_panic 2019-04-17 05:15:00 +02:00
bors
3b27b4f592 Auto merge of #59769 - RalfJung:compiletest-normalization, r=alexcrichton
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-16 10:18:17 +00:00
bors
7cb933a616 Auto merge of #59990 - bjorn3:nicer_compiletest_errors, r=alexcrichton
Use resume_unwind instead of panic!() for nicer compiletest errors

cc https://github.com/rust-lang/rust/pull/58783#issuecomment-477287606
2019-04-16 02:34:16 +00:00
bjorn3
dc08f5519f Use resume_unwind instead of panic!() for nicer compiletest errors 2019-04-15 18:03:30 +02:00
Aaron Hill
5cd51b1d84
Fix typo in comment 2019-04-14 15:45:19 -04:00
Aaron Hill
7ba8a9e685
Fix Windows dll name format 2019-04-14 15:45:19 -04:00
Aaron Hill
3c7c2c6ca7
Handle --extern-private properly on musl
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-14 15:45:18 -04:00
Aaron Hill
482b77a147
Refactor structure of ExternEntry 2019-04-14 15:45:18 -04:00
Ralf Jung
8c5292eb8f compiletest normalization: preserve non-JSON lines such as ICEs 2019-04-14 10:01:32 +02:00
Aaron Hill
21491dc701
Properly parse '--extern-private' with name and path 2019-04-14 00:37:25 -04:00
Mazdak Farrokhzad
2f71ecbb5e
Rollup merge of #59806 - phansch:compiletest_docs2, r=oli-obk
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-12 12:17:51 +02:00
Philipp Hansch
edebed9fc9
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-08 21:35:44 +02:00
Philipp Hansch
da99f46711
rustfix coverage: Skip UI tests with non-json error-format
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-03 21:37:45 +02:00
Oliver Scherer
7d4f8683b8 Don't dump diagnostics json if not absolutely necessary 2019-04-02 16:14:58 +02:00
Oliver Scherer
c26f6dbead Remove workaround code for a closed issue 2019-04-02 16:14:58 +02:00
Mazdak Farrokhzad
06a9196055
Rollup merge of #59408 - euclio:compiletest-normalization, r=oli-obk
compiletest: make path normalization smarter

Fixes #59109.
2019-03-28 13:35:43 +01:00
Mazdak Farrokhzad
b75b165589
Rollup merge of #59398 - phansch:rustfix_coverage, r=oli-obk
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-28 13:35:41 +01:00
Philipp Hansch
8a9c620340
Improve some compiletest documentation
This adds some missing documentation for rustfix related things and adds
a test for the `is_test` function.
2019-03-26 07:55:00 +01:00
Philipp Hansch
d808bd4651
Save coverage file in build_base path, not /tmp 2019-03-25 22:48:35 +01:00
Philipp Hansch
98d7c5463b
s/lints/diagnostics
Not all suggestions come from lints
2019-03-25 06:58:30 +01:00
Andy Russell
695dfe7dff
compiletest: make path normalization smarter 2019-03-25 01:06:45 -04:00
Philipp Hansch
02b8533ac8
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-24 17:04:40 +01:00
bors
82e2f3ec25 Auto merge of #58791 - denzp:asm-compile-tests, r=alexcrichton
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-20 17:54:27 +00:00
bors
817d074e54 Auto merge of #59250 - bovinebuddha:filter_ui_revision_tests, r=petrochenkov
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-17 23:51:18 +00:00
Mathias Blikstad
9eb2de4b75 compiletest: Filter test annotations from UI test output for revision tests 2019-03-17 10:53:31 +01:00
Denys Zariaiev
60f1644fd2 Merge remote-tracking branch 'upstream/master' into asm-compile-tests 2019-03-16 23:40:43 +01:00
kennytm
9859b818c8
Rollup merge of #58941 - wzssyqa:master, r=alexcrichton
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
2019-03-16 14:56:21 +08:00
Denys Zariaiev
eeb5f171da Merge remote-tracking branch 'upstream/master' into asm-compile-tests 2019-03-13 21:00:45 +01:00
bors
d06a020e2b Auto merge of #58330 - GuillaumeGomez:rustdoc-js-non-std, r=QuietMisdreavus,Mark-Simulacrum
Add rustdoc JS non-std tests

@QuietMisdreavus: You asked it, here it is!

r? @QuietMisdreavus
2019-03-12 15:33:59 +00:00
Vadim Petrochenkov
2060d49c39 compiletest: Filter away test annotations from UI test output 2019-03-11 21:37:21 +03:00
Guillaume Gomez
d6add90c64 Improve code 2019-03-06 15:01:30 +01:00