@@ -1136,6 +1136,7 @@ fn testdir(builder: &Builder<'_>, host: TargetSelection) -> PathBuf {
11361136/// Declares a test step that invokes compiletest on a particular test suite.
11371137macro_rules! test {
11381138 (
1139+ $( #[ $attr: meta] ) * // allow docstrings and attributes
11391140 $name: ident {
11401141 path: $path: expr,
11411142 mode: $mode: expr,
@@ -1146,6 +1147,7 @@ macro_rules! test {
11461147 $( , ) ? // optional trailing comma
11471148 }
11481149 ) => {
1150+ $( #[ $attr] ) *
11491151 #[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
11501152 pub struct $name {
11511153 pub compiler: Compiler ,
@@ -1194,11 +1196,16 @@ macro_rules! test {
11941196/// Declares an alias for running the [`Coverage`] tests in only one mode.
11951197/// Adapted from [`test`].
11961198macro_rules! coverage_test_alias {
1197- ( $name: ident {
1198- alias_and_mode: $alias_and_mode: expr, // &'static str
1199- default : $default: expr, // bool
1200- only_hosts: $only_hosts: expr $( , ) ? // bool
1201- } ) => {
1199+ (
1200+ $( #[ $attr: meta] ) * // allow docstrings and attributes
1201+ $name: ident {
1202+ alias_and_mode: $alias_and_mode: expr, // &'static str
1203+ default : $default: expr, // bool
1204+ only_hosts: $only_hosts: expr // bool
1205+ $( , ) ? // optional trailing comma
1206+ }
1207+ ) => {
1208+ $( #[ $attr] ) *
12021209 #[ derive( Debug , Clone , PartialEq , Eq , Hash ) ]
12031210 pub struct $name {
12041211 pub compiler: Compiler ,
@@ -1549,22 +1556,26 @@ impl Step for Coverage {
15491556 }
15501557}
15511558
1552- // Runs `tests/coverage` in "coverage-map" mode only.
1553- // Used by `x test` and `x test coverage-map`.
1554- coverage_test_alias ! ( CoverageMap {
1555- alias_and_mode: "coverage-map" ,
1556- default : true ,
1557- only_hosts: false ,
1558- } ) ;
1559- // Runs `tests/coverage` in "coverage-run" mode only.
1560- // Used by `x test` and `x test coverage-run`.
1561- coverage_test_alias ! ( CoverageRun {
1562- alias_and_mode: "coverage-run" ,
1563- default : true ,
1564- // Compiletest knows how to automatically skip these tests when cross-compiling,
1565- // but skipping the whole step here makes it clearer that they haven't run at all.
1566- only_hosts: true ,
1567- } ) ;
1559+ coverage_test_alias ! {
1560+ /// Runs the `tests/coverage` test suite in "coverage-map" mode only.
1561+ /// Used by `x test` and `x test coverage-map`.
1562+ CoverageMap {
1563+ alias_and_mode: "coverage-map" ,
1564+ default : true ,
1565+ only_hosts: false ,
1566+ }
1567+ }
1568+ coverage_test_alias ! {
1569+ /// Runs the `tests/coverage` test suite in "coverage-run" mode only.
1570+ /// Used by `x test` and `x test coverage-run`.
1571+ CoverageRun {
1572+ alias_and_mode: "coverage-run" ,
1573+ default : true ,
1574+ // Compiletest knows how to automatically skip these tests when cross-compiling,
1575+ // but skipping the whole step here makes it clearer that they haven't run at all.
1576+ only_hosts: true ,
1577+ }
1578+ }
15681579
15691580test ! ( CoverageRunRustdoc {
15701581 path: "tests/coverage-run-rustdoc" ,
0 commit comments