Files
rust/tests/ui
Michael Goulet fc1ad2e21c Rollup merge of #131705 - hoodmane:fix-emscripten-tests, r=jieyouxu
Fix most ui tests on emscripten target

To fix the linker errors, we need to set the output extension to `.js` instead of `.wasm`. Setting the output to a `.wasm` file puts Emscripten into standalone mode which is effectively a distinct target. We need to set the runner to be `node` as well.

This fixes most of the ui tests. I fixed 4 additional tests with simple problems:

- `intrinsics/intrinsic-alignment.rs` -- Two `#[cfg]` macros match for Emscripten so we got duplicate definition
- `structs-enums/rec-align-u64.rs` -- same problem
- `issues/issue-12699.rs` -- hangs so I disabled it
- `process/process-sigpipe.rs` -- Not expected to work on Emscripten so I disabled it

Resolves #131666.

There are 7 more failing tests. I'll try to investigate more and see if I can fix them or at least understand why they happen.

- abi/numbers-arithmetic/return-float.rs (problem with [wasm treatment of noncanonical floats](https://webassembly.github.io/spec/core/exec/numerics.html#nan-propagation)?)
- async-await/issue-60709.rs -- linker error related to memcpy. Possible Emscripten bug?
- backtrace/dylib-dep.rs -- Says "Not supported"
- backtrace/line-tables-only.rs -- Says "Not supported"
- no_std/no-std-unwind-binary.rs -- compiler says `error: lang item required, but not found: eh_catch_typeinfo`
- structs-enums/enum-rec/issue-17431-6.rs -- One of the two compiler errors is missing
- test-attrs/test-passed.rs

    r?workingjubilee r?jieyouxu
2024-10-15 12:33:37 -04:00
..
2024-07-18 00:00:04 +00:00
2024-08-10 12:07:17 +02:00
2024-08-11 09:58:11 +01:00
2024-09-20 10:02:14 -07:00
2024-10-04 23:38:41 +00:00
2024-04-21 15:43:43 -03:00
2024-09-30 22:21:45 +08:00
2024-08-10 12:07:17 +02:00
2024-10-11 11:30:08 -04:00
2024-09-20 01:20:10 +03:00
2024-09-05 06:37:38 -04:00
2024-06-01 09:40:46 +08:00
2024-09-15 09:51:32 +02:00
2024-07-12 03:22:32 +00:00
2024-09-06 10:32:48 -04:00
2024-09-20 10:02:14 -07:00
2024-04-29 14:53:38 +02:00
2024-08-18 19:46:53 +02:00
2024-05-28 12:31:12 +02:00
2024-08-02 11:34:54 +00:00
2024-10-04 23:38:41 +00:00
2024-08-03 07:57:31 -04:00
2024-09-09 19:39:43 -07:00
2024-10-12 13:01:36 +02:00
2024-10-11 11:30:08 -04:00
2024-09-26 13:21:15 +02:00
2024-08-31 23:56:45 +02:00
2024-10-04 23:38:41 +00:00
2024-10-01 13:55:46 -04:00
2024-10-01 13:55:46 -04:00
2024-09-18 16:45:48 -04:00
2024-06-25 18:06:22 +02:00
2024-10-07 14:45:49 -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 intepret a test.

As part of an on-going 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 an legacy compiletest-style test header. To fix this, you should migrate to the ui_test-style header //@ <content>.