Files
rust/tests/ui
Guillaume Gomez 27dc222fb4 Rollup merge of #136901 - workingjubilee:stabilize-externabi-hashing-forever, r=compiler-errors
compiler: give `ExternAbi` truly stable `Hash` and `Ord`

Currently, `ExternAbi` has a bunch of code to handle the reality that, as an enum, adding more variants to it will risk it hashing differently. It forces all of those variants to be added in a fixed order, except this means that the order of the variants doesn't correspond to any logical order except "historical accident". This is all to avoid having to rebless two tests. Perhaps there were more, once upon a time? But then we invented normalization in our test suite to handle exactly this sort of issue in a more general way.

There are two options here:
- Get rid of all the logical overhead and shrug, embracing blessing a couple of tests sometimes
- Change `ExternAbi` to have an ordering and hash that doesn't depend on the number of variants

As `ExternAbi` is essentially a strongly-typed string, and thus no two strings can be identical, this implements the second of the two by hand-implementing `Ord` and `Hash` to make the hashing and comparison based on the string! This will diff the current hashes, but they will diff no more after this.
2025-02-12 20:30:55 +01:00
..
2025-02-11 19:24:07 +00:00
2024-12-12 23:36:27 +00:00
2024-12-31 23:46:39 +08:00
2025-02-12 04:41:14 +02:00
2025-02-07 16:02:19 +00:00
2024-12-12 23:36:27 +00:00
2025-01-28 19:35:51 +00:00
2025-01-07 16:04:14 +01:00
2025-01-26 13:55:59 +00:00
2025-01-30 20:37:56 -07:00
2025-01-29 15:45:13 +00:00
2024-12-25 10:36:32 +01:00
2025-01-23 10:55:01 +00:00
2025-02-04 21:42:43 +05:30
2024-10-28 14:20:28 +11:00
2024-10-28 14:20:28 +11:00
2024-12-02 03:43:50 -07:00
2024-10-30 16:47:47 -07:00

UI Tests

This folder contains rustc's UI tests.

Test Directives (Headers)

Typically, a UI test will have some test directives / headers which are special comments that tell compiletest how to build and interpret a test.

As part of an ongoing effort to rewrite compiletest (see https://github.com/rust-lang/compiler-team/issues/536), a major change proposal to change legacy compiletest-style headers // <directive> to ui_test-style headers //@ <directive> was accepted (see https://github.com/rust-lang/compiler-team/issues/512.

An example directive is ignore-test. In legacy compiletest style, the header would be written as

// ignore-test

but in ui_test style, the header would be written as

//@ ignore-test

compiletest is changed to accept only //@ directives for UI tests (currently), and will reject and report an error if it encounters any comments // <content> that may be parsed as a legacy compiletest-style test header. To fix this, you should migrate to the ui_test-style header //@ <content>.