commit
f2e5577050
|
|
@ -1 +1 @@
|
||||||
c02a4f0852e6665cf3df3867982021383f5615df
|
deb947971c8748f5c6203548ce4af9022f21eaf0
|
||||||
|
|
|
||||||
|
|
@ -6,25 +6,37 @@
|
||||||
ui/codegen/assembly test suites. It provides `core` stubs for tests that need to
|
ui/codegen/assembly test suites. It provides `core` stubs for tests that need to
|
||||||
build for cross-compiled targets but do not need/want to run.
|
build for cross-compiled targets but do not need/want to run.
|
||||||
|
|
||||||
A test can use [`minicore`] by specifying the `//@ add-core-stubs` directive.
|
|
||||||
Then, mark the test with `#![feature(no_core)]` + `#![no_std]` + `#![no_core]`.
|
|
||||||
Due to Edition 2015 extern prelude rules, you will probably need to declare
|
|
||||||
`minicore` as an extern crate.
|
|
||||||
|
|
||||||
Due to the `no_std` + `no_core` nature of these tests, `//@ add-core-stubs`
|
|
||||||
implies and requires that the test will be built with `-C panic=abort`.
|
|
||||||
Unwinding panics are not supported.
|
|
||||||
|
|
||||||
If you find a `core` item to be missing from the [`minicore`] stub, consider
|
|
||||||
adding it to the test auxiliary if it's likely to be used or is already needed
|
|
||||||
by more than one test.
|
|
||||||
|
|
||||||
<div class="warning">
|
<div class="warning">
|
||||||
Please note that [`minicore`] is only intended for `core` items, and explicitly
|
Please note that [`minicore`] is only intended for `core` items, and explicitly
|
||||||
**not** `std` or `alloc` items because `core` items are applicable to a wider
|
**not** `std` or `alloc` items because `core` items are applicable to a wider
|
||||||
range of tests.
|
range of tests.
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
A test can use [`minicore`] by specifying the `//@ add-core-stubs` directive.
|
||||||
|
Then, mark the test with `#![feature(no_core)]` + `#![no_std]` + `#![no_core]`.
|
||||||
|
Due to Edition 2015 extern prelude rules, you will probably need to declare
|
||||||
|
`minicore` as an extern crate.
|
||||||
|
|
||||||
|
## Implied compiler flags
|
||||||
|
|
||||||
|
Due to the `no_std` + `no_core` nature of these tests, `//@ add-core-stubs`
|
||||||
|
implies and requires that the test will be built with `-C panic=abort`.
|
||||||
|
**Unwinding panics are not supported.**
|
||||||
|
|
||||||
|
Tests will also be built with `-C force-unwind-tables=yes` to preserve CFI
|
||||||
|
directives in assembly tests.
|
||||||
|
|
||||||
|
TL;DR: `//@ add-core-stubs` implies two compiler flags:
|
||||||
|
|
||||||
|
1. `-C panic=abort`
|
||||||
|
2. `-C force-unwind-tables=yes`
|
||||||
|
|
||||||
|
## Adding more `core` stubs
|
||||||
|
|
||||||
|
If you find a `core` item to be missing from the [`minicore`] stub, consider
|
||||||
|
adding it to the test auxiliary if it's likely to be used or is already needed
|
||||||
|
by more than one test.
|
||||||
|
|
||||||
## Example codegen test that uses `minicore`
|
## Example codegen test that uses `minicore`
|
||||||
|
|
||||||
```rust,no_run
|
```rust,no_run
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue