Commit Graph

831 Commits

Author SHA1 Message Date
bors df96fb166f Auto merge of #92309 - ehuss:remove-check_lines, r=Mark-Simulacrum
compiletest: Remove some vestigial code

The `check_lines` header is no longer parsed as a header, but instead inside the debuginfo tests. I believe this was changed in #13726.
2021-12-29 16:07:22 +00:00
Eric Huss 4d6bb4d881 compiletest: Remove some vestigial code 2021-12-26 20:33:10 -08:00
pierwill 155a4a87af Upgrade tracing-subscriber 2021-12-22 10:47:36 -06:00
pierwill 535278aa51 Add run-make-fulldeps test
Implement RUSTC_FORCE_INCR_COMP_ARTIFACT_HEADER

Also makes minor docs edits.
2021-12-13 10:24:06 -06:00
pierwill 7d7dfba350 Include rustc version in rustc_span::StableCrateId
Normalize symbol hashes in compiletest.

Remove DefId sorting
2021-12-13 10:24:05 -06:00
Matthias Krüger 068b30420a Rollup merge of #91535 - Aaron1011:stabilize-future-incompat, r=nagisa
Stabilize `-Z emit-future-incompat` as `--json future-incompat`

The FCP was completed in https://github.com/rust-lang/rust/issues/71249
2021-12-05 15:04:22 +01:00
Aaron Hill 63523e4d1c Stabilize -Z emit-future-incompat as --json future-incompat 2021-12-04 14:34:20 -05:00
Matthias Krüger 420ddd0b7e Rollup merge of #91209 - camelid:snapshot, r=jyn514
Implement `@snapshot` check for htmldocck

This form of check allows performing snapshot tests (à la `src/test/ui`)
on rustdoc HTML output, making it easier to create and update tests.

See [this Zulip thread][1] for more information about the motivation for
this change.

[1]: https://zulip-archive.rust-lang.org/stream/266220-rustdoc/topic/HTML.20snapshot.20tests.html#262651142

r? `@GuillaumeGomez`
2021-12-04 02:26:22 +01:00
Noah Lev e2846a779d Implement @snapshot check for htmldocck
This form of check allows performing snapshot tests (à la `src/test/ui`)
on rustdoc HTML output, making it easier to create and update tests.

See this Zulip thread [1] for more information about the motivation for
this change.

[1]: https://zulip-archive.rust-lang.org/stream/266220-rustdoc/topic/HTML.20snapshot.20tests.html#262651142
2021-12-01 15:12:10 -08:00
Noah Lev 5fcae0a05d Deny warnings in rustdoc non-UI tests
These warnings were silently ignored since they did not appear in a
`.stderr` file and did not fail the test. With this change, warnings in
tests are denied, causing the tests to fail if they have warnings.

I will fix all the warnings that are now test failures next.
2021-11-26 15:12:12 -08:00
bors 90a273b785 Auto merge of #90348 - Amanieu:asm_feature_gates, r=joshtriplett
Add features gates for experimental asm features

This PR splits off parts of `asm!` into separate features because they are not ready for stabilization.

Specifically this adds:
- `asm_const` for `const` operands.
- `asm_sym` for `sym` operands.
- `asm_experimental_arch` for architectures other than x86, x86_64, arm, aarch64 and riscv.

r? `@nagisa`
2021-11-07 04:59:42 +00:00
Amanieu d'Antras 87d0d64b78 Restrict tests that use needs-asm-support to non-experimental
architectures
2021-11-07 03:44:42 +00:00
Matthias Krüger cd24ffb266 Rollup merge of #90569 - wesleywiser:fix_only_i686_tests, r=Mark-Simulacrum
Fix tests using `only-i686` to use the correct `only-x86` directive

We translate `i686` to `x86` which means tests marked as `only-i686`
never ran. Update those tests to use `only-x86`.

We parse the `only-` architecture directive here

https://github.com/rust-lang/rust/blob/27143a9094b55a00d5f440b05b0cb4233b300d33/src/tools/compiletest/src/util.rs#L160-L168

and we translate `i686` to `x86` here

https://github.com/rust-lang/rust/blob/27143a9094b55a00d5f440b05b0cb4233b300d33/src/tools/compiletest/src/util.rs#L56
2021-11-05 21:12:28 +01:00
Wesley Wiser 8c56ef0878 Fix tests using only-i686 to use the correct only-x86 directive
We translate `i686` to `x86` which means tests marked as `only-i686`
never ran. Update those tests to use `only-x86`.
2021-11-04 10:39:15 -04:00
Eric Huss 754455e4f2 Clean up some -Z unstable-options in tests. 2021-11-03 20:00:00 -07:00
Andre Bogus 65b3c85317 Add edition configuration to compiletest 2021-10-20 21:55:34 +02:00
pierwill b87a0b06c7 Remove dead code from compiletest::json 2021-10-17 17:50:35 -05:00
Nicholas-Baron 2d827ca3b8 Simplified 3 ifs found by clippy. 2021-10-09 12:18:01 -07:00
Nicholas-Baron d2a522f423 Simplified two printlns picked out by clippy 2021-10-09 12:18:01 -07:00
Nicholas-Baron 0e2a782463 Move check_debugger_output to the debugger module 2021-10-09 12:18:01 -07:00
Nicholas-Baron ce185739fc Move DebuggerCommands to its own file 2021-10-09 12:18:00 -07:00
Nicholas-Baron 8a4085d370 Move read2_abbreviated function into read2.rs 2021-10-08 15:12:21 -07:00
Jubilee 37f17bca7c Rollup merge of #89082 - smoelius:master, r=kennytm
Implement #85440 (Random test ordering)

This PR adds `--shuffle` and `--shuffle-seed` options to `libtest`. The options are similar to the [`-shuffle` option](https://github.com/golang/go/blob/c894b442d1e5e150ad33fa3ce13dbfab1c037b3a/src/testing/testing.go#L1482-L1499) that was recently added to Go.

Here are the relevant parts of the help message:
```
        --shuffle       Run tests in random order
        --shuffle-seed SEED
                        Run tests in random order; seed the random number
                        generator with SEED
...
By default, the tests are run in alphabetical order. Use --shuffle or set
RUST_TEST_SHUFFLE to run the tests in random order. Pass the generated
"shuffle seed" to --shuffle-seed (or set RUST_TEST_SHUFFLE_SEED) to run the
tests in the same order again. Note that --shuffle and --shuffle-seed do not
affect whether the tests are run in parallel.
```
Is an RFC needed for this?
2021-10-07 20:26:12 -07:00
Nicholas-Baron 3760c91252 Make write_rustdoc_diff a more generic function 2021-10-03 17:07:43 -07:00
Nicholas-Baron 2a57a46249 Extract a portion of diff writing code to separate function 2021-10-03 16:53:45 -07:00
Nicholas-Baron cb501a6fe6 Move items related to computing diffs to a separate file 2021-10-02 14:25:53 -07:00
Samuel E. Moelius III fa23d4fe93 Implement #85440 2021-09-29 21:51:46 -04:00
Eric Huss 2da6e66948 Support incremental in compiletest for non-incremental modes. 2021-09-23 12:16:51 -07:00
the8472 26c7838118 Rollup merge of #89170 - rusticstuff:aarch64_macos_disable_leak_sanitizer, r=petrochenkov
Disable the leak sanitizer on Macos aarch64 for now

It is currently broken, see #88132.
2021-09-22 19:03:27 +02:00
Hans Kratz 59e37c829b Disable the leak sanitizer on Macos aarch64 for now.
It is currently broken, see #88132.
2021-09-22 08:05:34 +02:00
Mark Rousskov c746be2219 Migrate to 2021 2021-09-20 22:21:42 -04:00
John Paul Adrian Glaubitz 0e4e0ce884 compiletest: Add m68k to ARCH_TABLE 2021-09-17 15:07:13 +00:00
Eduard-Mihai Burtescu 24526bbe77 compiletest: allow . in remote test paths (can arise from revisions). 2021-08-26 20:20:08 +03:00
Frank Steffahn bf88b113ea Fix typos “a”→“an” 2021-08-22 15:35:11 +02:00
Smitty b7e9b1ad7f Add x.py option to --force-rerun compiletest tests 2021-08-03 19:06:12 -04:00
Jade 3cf820e17d rfc3052: Remove authors field from Cargo manifests
Since RFC 3052 soft deprecated the authors field anyway, hiding it from
crates.io, docs.rs, and making Cargo not add it by default, and it is
not generally up to date/useful information, we should remove it from
crates in this repo.
2021-07-29 14:56:05 -07:00
bors 7d6bf861f8 Auto merge of #83491 - jyn514:remove-pretty, r=pnkfelix
Remove unstable `--pretty` flag

It doesn't do anything `--unpretty` doesn't, and due to a bug, also
didn't show up in `--help`. I don't think there's any reason to keep it
around, I haven't seen anyone using it.

Closes https://github.com/rust-lang/rust/issues/36473.
2021-07-27 03:12:40 +00:00
Eric Huss 636fcacb44 Add -Zfuture-incompat-test to assist with testing future-incompat reports. 2021-07-14 08:37:58 -07:00
EFanZh 0112b908f7 Support pretty printing slices using GDB 2021-07-03 23:42:07 +08:00
Daniel Paoliello aac8a88552 Improve debug symbol names to avoid ambiguity and work better with MSVC's debugger
There are several cases where names of types and functions in the debug info are either ambiguous, or not helpful, such as including ambiguous placeholders (e.g., `{{impl}}`, `{{closure}}` or `dyn _'`) or dropping qualifications (e.g., for dynamic types).

Instead, each debug symbol name should be unique and useful:
* Include disambiguators for anonymous `DefPathDataName` (closures and generators), and unify their formatting when used as a path-qualifier vs item being qualified.
* Qualify the principal trait for dynamic types.
* If there is no principal trait for a dynamic type, emit all other traits instead.
* Respect the `qualified` argument when emitting ref and pointer types.
* For implementations, emit the disambiguator.
* Print const generics when emitting generic parameters or arguments.

Additionally, when targeting MSVC, its debugger treats many command arguments as C++ expressions, even when the argument is defined to be a symbol name. As such names in the debug info need to be more C++-like to be parsed correctly:
* Avoid characters with special meaning (`#`, `[`, `"`, `+`).
* Never start a name with `<` or `{` as this is treated as an operator.
* `>>` is always treated as a right-shift, even when parsing generic arguments (so add a space to avoid this).
* Emit function declarations using C/C++ style syntax (e.g., leading return type).
* Emit arrays as a synthetic `array$<type, size>` type.
* Include a `$` in all synthetic types as this is a legal character for C++, but not Rust (thus we avoid collisions with user types).
2021-06-30 11:10:29 -07:00
Mark Rousskov 06661ba759 Update to new bootstrap compiler 2021-06-28 11:30:49 -04:00
Simonas Kazlauskas cfcb2b664d compiletest: ignore tests on a per-revision basis
Otherwise something that ought to seemingly work like `//[x86]
needs-llvm-components: x86` or `//[nll_beyond]should-fail` do not get
evaluated properly.
2021-06-24 23:13:08 +03:00
Eric Huss f2ef8bf776 compiletest: display the error if rustfix fails 2021-06-20 16:35:14 -07:00
Eric Huss 2817be94cc Update rustfix for compiletest. 2021-06-20 16:35:14 -07:00
bors 72868e017b Auto merge of #85961 - 1000teslas:issue-71519-fix, r=petrochenkov
MVP for using rust-lld as part of cc

Will fix #71519. I need to figure out how to write a test showing that lld is used instead of whatever linker cc normally uses. When I manually run rustc using `echo 'fn main() {}' | RUSTC_LOG=rustc_codegen_ssa::back::link=debug ./rustc -Clinker-flavor=gcc-lld --crate-type bin -Clink-arg=-Wl,-v` (thanks to bjorn3 on Zulip), I can see that lld is used, but I'm not sure how to inspect that output in a test.
2021-06-11 02:21:52 +00:00
bors c622840b90 Auto merge of #86098 - pietroalbini:test-stable, r=Mark-Simulacrum
Add the x86_64-gnu-stable builder

During the 1.52 release process we had to deal with some commits that passed the test suite on the nightly branch but failed on the beta or stable branch. In that case it was due to some UI tests including the channel name in the output, but other changes might also be dependent on the channel.

This commit adds a new CI job that runs the Linux x86_64 test suite with the stable branch, ensuring nightly changes also work as stable. To ensure the new job works the following other changes are present:

* The `ui-fulldeps/session-derive-errors.rs` test has been disabled on beta and stable, which required adding support for `// ignore-{channel}` and `// only-{channel}`.
* The `rustdoc/intra-doc/field.rs` has been fixed.

r? `@Mark-Simulacrum`
fixes https://github.com/rust-lang/release-team/issues/11
2021-06-10 17:51:48 +00:00
bors 40c1623b16 Auto merge of #82639 - jyn514:stable-options, r=Mark-Simulacrum
Don't pass -Z unstable-options by default for UI tests

Unconditionally passing -Z unstable-options makes it impossible to test whether an option requires unstable-options or not.

This uncovered quite a lot of bugs, I'll open issues for each. These don't strictly need to be fixed before this is merged, it just makes the diff much larger because of the changes to diagnostics.

- https://github.com/rust-lang/rust/issues/82636
- https://github.com/rust-lang/rust/issues/82637
- https://github.com/rust-lang/rust/issues/82638
2021-06-10 12:47:54 +00:00
1000teslas 2a76762695 gcc-lld mvp
ignore test if rust-lld not found

create ld -> rust-lld symlink at build time instead of run time

for testing in ci

copy instead of symlinking

remove linux check

test for linker, suggestions from bjorn3

fix overly restrictive lld matcher

use -Zgcc-ld flag instead of -Clinker-flavor

refactor code adding lld to gcc path

revert ci changes

suggestions from petrochenkov

rename gcc_ld to gcc-ld in dirs
2021-06-10 17:10:40 +10:00
Yuki Okushi 232e7a5e7a Rollup merge of #85997 - jyn514:rustdoc-diff, r=Mark-Simulacrum
rustdoc: Print a warning if the diff when comparing to old nightlies is empty

This avoids confusing situations where it's unclear whether there's a
bug in the diff tool or not:

```
26: `@has` check failed
        `XPATH PATTERN` did not match
        // `@has` - '//code/a[`@href="{{channel}}/std/primitive.i32.html"]'` 'i32'

Encountered 6 errors

------------------------------------------

info: generating a diff against nightly rustdoc

failures:
    [rustdoc] rustdoc/primitive-reexport.rs
```
2021-06-10 11:02:12 +09:00
Pietro Albini a1c884682c ignore ui-fulldeps/session-derive-errors.rs on beta and stable
The session-derive-errors test ensures the internal SessionDiagnostic
derive macro outputs the right error messages when misused.

The macro relies on the proc_macro2 crate though, which changes its span
behavior depending on whether the channel is nightly or not. This caused
test failures when bumping the channel from nightly to beta/stable.

Since SessionDiagnostic is internal-only we don't care about its
diagnostics quality outside of nightly, as the compiler itself is
developed on nightly. Thus the easiest solution is to ignore that test
on the beta and stable channels.

This also implements `// only-{channel}` and `// ignore-{channel}` in
compiletest to properly support the change.
2021-06-07 18:09:12 +02:00