You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Generate and publish dashboard into documentation (rust-lang#505)
* Generate and publish dashboard into documentation
* Add Litani deps & restrict workflow to 20.04
* Add setuptools
* Final edits
* Conform with rebase
* Install script for litani deps
* Add more docs for dashboard
* Enable dash run in CI (to be removed)
* Include dashboard deps script
* Dashboard deps permissions
* Uncomment workflow condition
* Update README quickstart section
* minor fix
The [RMC Dashboard](./dashboard/index.html) is a testing tool based on [Compiletest](https://rustc-dev-guide.rust-lang.org/tests/intro.html) and [Litani](https://github.com/awslabs/aws-build-accumulator).
4
+
5
+
The purpose of the dashboard to show the level of support in RMC for all Rust features.
6
+
To this end, we use Rust code snippet examples from the following general Rust documentation books:
7
+
* The Rust Reference
8
+
* The Rustonomicon
9
+
* The Rust Unstable Book
10
+
* Rust by Example
11
+
12
+
However, not all examples from these books are suited for verification.
13
+
Because of that, we run three different types of jobs when generating the dashboard:
14
+
*`check` jobs (`BUILD`): This check only uses the Rust front-end to detect if the example is valid Rust code.
15
+
*`codegen` jobs (`TEST`): This check uses the Rust front-end and the RMC back-end to determine if we can generate GotoC code.
16
+
*`verification` jobs (`REPORT`): This check uses all of above and CBMC to obtain a verification result.
17
+
18
+
Before running the above mentioned jobs, we pre-process the examples to:
19
+
1. Set the expected output according to flags present in the code snippet.
20
+
2. Add any required compiler/RMC flags (e.g., CBMC unwinding flags).
21
+
3. Include custom assertions for verification (only in the case of `verification` jobs).
22
+
23
+
Finally, we run all jobs, collect their outputs and compare them against the expected outputs.
24
+
25
+
The [RMC Dashboard](./dashboard/index.html) displays a summary of the obtained results.
0 commit comments