Skip to content

Test embedded targets in rust-lang/rust CI #52

Closed
@japaric

Description

@japaric

Triage

2018-07-02

The extending Rust reach participants mentored by @jamesmunns are working on this. Among their
goals they have:

  • Adding "it compiles" tests. libcore, or some other crate, compiles for $TARGET
  • Adding "it links" tests. A minimal embedded program links with different compiler options
    (opt-level, LTO, incremental, etc.) and the presence of some symbols is checked (e.g. main).
  • Adding "it runs" tests. A embedded program is executed in QEMU and completes successfully.
  • Adding binary size regression tests. The binary size of a program, compiled with opt-level=s, is
    tracked over time (per PR) and the CI fails if the binary size of the program regresses.

In their next meeting they'll discuss which of these goals are must have for edition and which ones
are stretch goals, and a potential timeline.


Last year, compilation of the core crate broke for MSP430 / thumbv6m-none-eabi twice due to some changes to libcore source code. That problem could have been avoided if the core crate was compiled for thumbv6m-none-eabi / msp430 as part of rust-lang/rust test suite. Last year there was also quite some breakage in the embedded ecosystem due to the compiler work on incremental compilation and parallel codegen.

We should try to get rust-lang/rust test suite to include tests for embedded target. At the very least core should be compiled for embedded targets.

TODO

  • @japaric will ask the Rust team what kind of embedded targets tests would be possible to add to the rust-lang/rust test suite. We got an "OK, this is possible" from the infra team during the Rust All Hands meeting.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions