Skip to content

Commit e5b6815

Browse files
committed
Added notes on compile tests
1 parent 6529b07 commit e5b6815

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

tests/compile-fail/README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
This directory contains snippets of code that should yield a
2+
warning/note/help/error at compilation. Syntax of annotations is described in
3+
[rust documentation](https://github.com/rust-lang/rust/blob/master/src/test/COMPILER_TESTS.md).
4+
For more information check out [`compiletest` crate](https://github.com/laumann/compiletest-rs).
5+
6+
To run compile tests issue `cargo +nightly --test --features compiletest`.
7+
8+
## Notes on working with `compiletest` crate
9+
10+
* Currently code that is inside macro should not be annotated, as `compiletest`
11+
crate cannot deal with the fact that macro invocations effectively changes
12+
line numbering. To prevent this add a `// error-pattern:<your error message here>`
13+
on the top of the file and make sure that you set `deny` lint level
14+
if you want to test compiler message different than error.
15+
* `compiletest` crate by default sets `allow(dead_code)` lint level so make sure
16+
that you change it to something suiting your needs even if the warning is
17+
issued prior to any macro invocation.
18+
* If you get a message `error: 0 unexpected errors found, 1 expected errors not found`
19+
despite the fact that some error was bound to occur don't worry - it's a known
20+
issue in the `compiletest` crate and your error was probably not registered -
21+
make sure that your annotations are correct and that you are setting correct
22+
lint levels.

0 commit comments

Comments
 (0)