]> git.lizzy.rs Git - rust.git/blobdiff - CONTRIBUTING.md
Explain `tests::init` function
[rust.git] / CONTRIBUTING.md
index ad8bd2a17a6c7b548942c32f02739d19ea4f061c..bde1921eb8ce467fbb85e5b86443ea7ebf2ce0ee 100644 (file)
@@ -71,6 +71,16 @@ and you can (cross-)run the entire test suite using:
 MIRI_TEST_TARGET=i686-unknown-linux-gnu ./miri test
 ```
 
+If your target doesn't support libstd, you can run miri with
+
+```
+MIRI_NO_STD=1 MIRI_TEST_TARGET=thumbv7em-none-eabihf ./miri test tests/fail/alloc/no_global_allocator.rs
+MIRI_NO_STD=1 ./miri run tests/pass/no_std.rs --target thumbv7em-none-eabihf
+```
+
+to avoid attempting (and failing) to build libstd. Note that almost no tests will pass
+this way, but you can run individual tests.
+
 `./miri test FILTER` only runs those tests that contain `FILTER` in their
 filename (including the base directory, e.g. `./miri test fail` will run all
 compile-fail tests).
@@ -137,6 +147,12 @@ does not automatically trigger a re-build of the standard library; you have to
 clear the Miri build cache manually (on Linux, `rm -rf ~/.cache/miri`;
 and on Windows, `rmdir /S "%LOCALAPPDATA%\rust-lang\miri\cache"`).
 
+### Benchmarking
+
+Miri comes with a few benchmarks; you can run `./miri bench` to run them with the locally built
+Miri. Note: this will run `./miri install` as a side-effect. Also requires `hyperfine` to be
+installed (`cargo install hyperfine`).
+
 ## Configuring `rust-analyzer`
 
 To configure `rust-analyzer` and VS Code for working on Miri, save the following
@@ -144,19 +160,24 @@ to `.vscode/settings.json` in your local Miri clone:
 
 ```json
 {
+    "rust-analyzer.rustc.source": "discover",
+    "rust-analyzer.linkedProjects": [
+        "./Cargo.toml",
+        "./cargo-miri/Cargo.toml"
+    ],
     "rust-analyzer.checkOnSave.overrideCommand": [
         "./miri",
         "check",
         "--message-format=json"
     ],
+    "rust-analyzer.buildScripts.overrideCommand": [
+        "./miri",
+        "check",
+        "--message-format=json",
+    ],
     "rust-analyzer.rustfmt.extraArgs": [
         "+nightly"
     ],
-    "rust-analyzer.rustcSource": "discover",
-    "rust-analyzer.linkedProjects": [
-        "./Cargo.toml",
-        "./cargo-miri/Cargo.toml"
-    ]
 }
 ```