Skip to content

Commit 8e07a9f

Browse files
committed
Add a more thorough test of incorrect/unusal #[coverage(..)] syntax
This test reflects the current implementation behaviour, which is not necessarily the desired behaviour.
1 parent 605b615 commit 8e07a9f

File tree

2 files changed

+126
-0
lines changed

2 files changed

+126
-0
lines changed

tests/ui/coverage-attr/bad-syntax.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#![feature(coverage_attribute)]
2+
3+
// Tests the error messages produced (or not produced) by various unusual
4+
// uses of the `#[coverage(..)]` attribute.
5+
6+
#[coverage(off)]
7+
#[coverage(off)]
8+
fn multiple_consistent() {}
9+
10+
#[coverage(off)]
11+
#[coverage(on)]
12+
fn multiple_inconsistent() {}
13+
14+
#[coverage] //~ ERROR expected `coverage(off)` or `coverage(on)`
15+
fn bare_word() {}
16+
17+
#[coverage = true]
18+
//~^ ERROR expected `coverage(off)` or `coverage(on)`
19+
//~| ERROR malformed `coverage` attribute input
20+
fn key_value() {}
21+
22+
#[coverage()] //~ ERROR expected `coverage(off)` or `coverage(on)`
23+
fn list_empty() {}
24+
25+
#[coverage(off, off)] //~ ERROR expected `coverage(off)` or `coverage(on)`
26+
fn list_consistent() {}
27+
28+
#[coverage(off, on)] //~ ERROR expected `coverage(off)` or `coverage(on)`
29+
fn list_inconsistent() {}
30+
31+
#[coverage(bogus)] //~ ERROR expected `coverage(off)` or `coverage(on)`
32+
fn bogus_word() {}
33+
34+
#[coverage(bogus, off)] //~ ERROR expected `coverage(off)` or `coverage(on)`
35+
fn bogus_word_before() {}
36+
37+
#[coverage(off, bogus)] //~ ERROR expected `coverage(off)` or `coverage(on)`
38+
fn bogus_word_after() {}
39+
40+
#[coverage(off,)]
41+
fn comma_after() {}
42+
43+
#[coverage(,off)]
44+
//~^ ERROR expected identifier, found `,`
45+
//~| ERROR expected `coverage(off)` or `coverage(on)`
46+
fn comma_before() {}
47+
48+
fn main() {}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
error: malformed `coverage` attribute input
2+
--> $DIR/bad-syntax.rs:17:1
3+
|
4+
LL | #[coverage = true]
5+
| ^^^^^^^^^^^^^^^^^^
6+
|
7+
help: the following are the possible correct uses
8+
|
9+
LL | #[coverage(on|off)]
10+
|
11+
LL | #[coverage]
12+
|
13+
14+
error: expected identifier, found `,`
15+
--> $DIR/bad-syntax.rs:43:12
16+
|
17+
LL | #[coverage(,off)]
18+
| ^
19+
| |
20+
| expected identifier
21+
| help: remove this comma
22+
23+
error: expected `coverage(off)` or `coverage(on)`
24+
--> $DIR/bad-syntax.rs:14:1
25+
|
26+
LL | #[coverage]
27+
| ^^^^^^^^^^^
28+
29+
error: expected `coverage(off)` or `coverage(on)`
30+
--> $DIR/bad-syntax.rs:17:1
31+
|
32+
LL | #[coverage = true]
33+
| ^^^^^^^^^^^^^^^^^^
34+
35+
error: expected `coverage(off)` or `coverage(on)`
36+
--> $DIR/bad-syntax.rs:22:1
37+
|
38+
LL | #[coverage()]
39+
| ^^^^^^^^^^^^^
40+
41+
error: expected `coverage(off)` or `coverage(on)`
42+
--> $DIR/bad-syntax.rs:25:1
43+
|
44+
LL | #[coverage(off, off)]
45+
| ^^^^^^^^^^^^^^^^^^^^^
46+
47+
error: expected `coverage(off)` or `coverage(on)`
48+
--> $DIR/bad-syntax.rs:28:1
49+
|
50+
LL | #[coverage(off, on)]
51+
| ^^^^^^^^^^^^^^^^^^^^
52+
53+
error: expected `coverage(off)` or `coverage(on)`
54+
--> $DIR/bad-syntax.rs:31:1
55+
|
56+
LL | #[coverage(bogus)]
57+
| ^^^^^^^^^^^^^^^^^^
58+
59+
error: expected `coverage(off)` or `coverage(on)`
60+
--> $DIR/bad-syntax.rs:34:1
61+
|
62+
LL | #[coverage(bogus, off)]
63+
| ^^^^^^^^^^^^^^^^^^^^^^^
64+
65+
error: expected `coverage(off)` or `coverage(on)`
66+
--> $DIR/bad-syntax.rs:37:1
67+
|
68+
LL | #[coverage(off, bogus)]
69+
| ^^^^^^^^^^^^^^^^^^^^^^^
70+
71+
error: expected `coverage(off)` or `coverage(on)`
72+
--> $DIR/bad-syntax.rs:43:1
73+
|
74+
LL | #[coverage(,off)]
75+
| ^^^^^^^^^^^^^^^^^
76+
77+
error: aborting due to 11 previous errors
78+

0 commit comments

Comments
 (0)