about summary refs log tree commit diff
path: root/tests/ui/macros
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/macros')
-rw-r--r--tests/ui/macros/assert-as-macro.rs6
-rw-r--r--tests/ui/macros/assert-eq-macro-msg.rs10
-rw-r--r--tests/ui/macros/assert-eq-macro-panic.rs10
-rw-r--r--tests/ui/macros/assert-eq-macro-success.rs2
-rw-r--r--tests/ui/macros/assert-eq-macro-unsized.rs2
-rw-r--r--tests/ui/macros/assert-format-lazy.rs4
-rw-r--r--tests/ui/macros/assert-long-condition.rs8
-rw-r--r--tests/ui/macros/assert-macro-explicit.rs6
-rw-r--r--tests/ui/macros/assert-macro-fmt.rs8
-rw-r--r--tests/ui/macros/assert-macro-owned.rs8
-rw-r--r--tests/ui/macros/assert-macro-static.rs8
-rw-r--r--tests/ui/macros/assert-matches-macro-msg.rs10
-rw-r--r--tests/ui/macros/assert-ne-macro-msg.rs10
-rw-r--r--tests/ui/macros/assert-ne-macro-panic.rs10
-rw-r--r--tests/ui/macros/assert-ne-macro-success.rs2
-rw-r--r--tests/ui/macros/assert-ne-macro-unsized.rs2
-rw-r--r--tests/ui/macros/assert-trailing-junk.rs4
-rw-r--r--tests/ui/macros/assert.rs4
-rw-r--r--tests/ui/macros/attr-from-macro.rs4
-rw-r--r--tests/ui/macros/auxiliary/foreign-crate-macro-pat.rs2
-rw-r--r--tests/ui/macros/auxiliary/hello_macro.rs4
-rw-r--r--tests/ui/macros/auxiliary/issue-100199.rs4
-rw-r--r--tests/ui/macros/auxiliary/proc_macro_def.rs4
-rw-r--r--tests/ui/macros/auxiliary/proc_macro_sequence.rs4
-rw-r--r--tests/ui/macros/bang-after-name.fixed2
-rw-r--r--tests/ui/macros/bang-after-name.rs2
-rw-r--r--tests/ui/macros/builtin-env-issue-114010.rs4
-rw-r--r--tests/ui/macros/builtin-std-paths.rs2
-rw-r--r--tests/ui/macros/colorful-write-macros.rs2
-rw-r--r--tests/ui/macros/concat-bytes.rs2
-rw-r--r--tests/ui/macros/concat-rpass.rs2
-rw-r--r--tests/ui/macros/conditional-debug-macro-on.rs2
-rw-r--r--tests/ui/macros/cross-crate-pat-span.rs6
-rw-r--r--tests/ui/macros/die-macro-2.rs6
-rw-r--r--tests/ui/macros/die-macro-expr.rs6
-rw-r--r--tests/ui/macros/die-macro-pure.rs6
-rw-r--r--tests/ui/macros/die-macro.rs2
-rw-r--r--tests/ui/macros/doc-comment.rs2
-rw-r--r--tests/ui/macros/dollar-crate-nested-encoding.rs4
-rw-r--r--tests/ui/macros/duplicate-builtin.rs2
-rw-r--r--tests/ui/macros/edition-macro-pats.rs4
-rw-r--r--tests/ui/macros/format-args-temporaries-async.rs4
-rw-r--r--tests/ui/macros/format-args-temporaries-in-write.rs2
-rw-r--r--tests/ui/macros/format-args-temporaries.rs2
-rw-r--r--tests/ui/macros/html-literals.rs2
-rw-r--r--tests/ui/macros/include-single-expr-helper-1.rs2
-rw-r--r--tests/ui/macros/include-single-expr-helper.rs2
-rw-r--r--tests/ui/macros/include-single-expr.rs2
-rw-r--r--tests/ui/macros/issue-100199.rs2
-rw-r--r--tests/ui/macros/issue-112342-2.rs2
-rw-r--r--tests/ui/macros/issue-118786.rs2
-rw-r--r--tests/ui/macros/issue-19163.rs2
-rw-r--r--tests/ui/macros/issue-22463.rs2
-rw-r--r--tests/ui/macros/issue-25274.rs2
-rw-r--r--tests/ui/macros/issue-26322.rs2
-rw-r--r--tests/ui/macros/issue-2804-2.rs2
-rw-r--r--tests/ui/macros/issue-2804.rs2
-rw-r--r--tests/ui/macros/issue-33185.rs2
-rw-r--r--tests/ui/macros/issue-34171.rs2
-rw-r--r--tests/ui/macros/issue-37175.rs2
-rw-r--r--tests/ui/macros/issue-39467.rs2
-rw-r--r--tests/ui/macros/issue-40469.rs2
-rw-r--r--tests/ui/macros/issue-40770.rs2
-rw-r--r--tests/ui/macros/issue-41803.rs2
-rw-r--r--tests/ui/macros/issue-42954.fixed2
-rw-r--r--tests/ui/macros/issue-42954.rs2
-rw-r--r--tests/ui/macros/issue-44127.rs2
-rw-r--r--tests/ui/macros/issue-5060.rs2
-rw-r--r--tests/ui/macros/issue-52169.rs2
-rw-r--r--tests/ui/macros/issue-57597.rs2
-rw-r--r--tests/ui/macros/issue-63102.rs2
-rw-r--r--tests/ui/macros/issue-68058.rs2
-rw-r--r--tests/ui/macros/issue-69838-dir/bar.rs2
-rw-r--r--tests/ui/macros/issue-69838-dir/included.rs2
-rw-r--r--tests/ui/macros/issue-69838-mods-relative-to-included-path.rs2
-rw-r--r--tests/ui/macros/issue-70446.rs2
-rw-r--r--tests/ui/macros/issue-75982-foreign-macro-weird-mod.rs4
-rw-r--r--tests/ui/macros/issue-77475.rs2
-rw-r--r--tests/ui/macros/issue-78333.rs2
-rw-r--r--tests/ui/macros/issue-78892-substitution-in-statement-attr.rs2
-rw-r--r--tests/ui/macros/issue-81006.rs2
-rw-r--r--tests/ui/macros/issue-83340.rs2
-rw-r--r--tests/ui/macros/issue-83344.rs2
-rw-r--r--tests/ui/macros/issue-84429-matches-edition.rs4
-rw-r--r--tests/ui/macros/issue-86082-option-env-invalid-char.rs2
-rw-r--r--tests/ui/macros/issue-8709.rs2
-rw-r--r--tests/ui/macros/issue-87877.rs2
-rw-r--r--tests/ui/macros/issue-88206.rs2
-rw-r--r--tests/ui/macros/issue-88228.rs4
-rw-r--r--tests/ui/macros/issue-8851.rs4
-rw-r--r--tests/ui/macros/issue-92267.rs2
-rw-r--r--tests/ui/macros/issue-95267.rs2
-rw-r--r--tests/ui/macros/issue-95533.rs2
-rw-r--r--tests/ui/macros/issue-98466-allow.rs2
-rw-r--r--tests/ui/macros/issue-98466.fixed4
-rw-r--r--tests/ui/macros/issue-98466.rs4
-rw-r--r--tests/ui/macros/issue-98790.rs2
-rw-r--r--tests/ui/macros/issue-99261.rs2
-rw-r--r--tests/ui/macros/issue-99265.fixed4
-rw-r--r--tests/ui/macros/issue-99265.rs4
-rw-r--r--tests/ui/macros/issue-99907.fixed4
-rw-r--r--tests/ui/macros/issue-99907.rs4
-rw-r--r--tests/ui/macros/lint-trailing-macro-call.rs2
-rw-r--r--tests/ui/macros/log_syntax-trace_macros-macro-locations.rs4
-rw-r--r--tests/ui/macros/macro-2.rs2
-rw-r--r--tests/ui/macros/macro-as-fn-body.rs2
-rw-r--r--tests/ui/macros/macro-at-most-once-rep-2015-rpass.rs4
-rw-r--r--tests/ui/macros/macro-at-most-once-rep-2015.rs2
-rw-r--r--tests/ui/macros/macro-at-most-once-rep-2018-rpass.rs4
-rw-r--r--tests/ui/macros/macro-at-most-once-rep-2018.rs2
-rw-r--r--tests/ui/macros/macro-attribute-expansion.rs2
-rw-r--r--tests/ui/macros/macro-attributes.rs2
-rw-r--r--tests/ui/macros/macro-block-nonterminal.rs2
-rw-r--r--tests/ui/macros/macro-comma-behavior-rpass.rs8
-rw-r--r--tests/ui/macros/macro-comma-behavior.rs4
-rw-r--r--tests/ui/macros/macro-comma-support-rpass.rs6
-rw-r--r--tests/ui/macros/macro-crate-def-only.rs4
-rw-r--r--tests/ui/macros/macro-crate-nonterminal-non-root.rs2
-rw-r--r--tests/ui/macros/macro-crate-nonterminal-renamed.rs4
-rw-r--r--tests/ui/macros/macro-crate-nonterminal.rs4
-rw-r--r--tests/ui/macros/macro-crate-use.rs2
-rw-r--r--tests/ui/macros/macro-deep_expansion.rs2
-rw-r--r--tests/ui/macros/macro-def-site-super.rs4
-rw-r--r--tests/ui/macros/macro-delimiter-significance.rs2
-rw-r--r--tests/ui/macros/macro-deprecation.rs4
-rw-r--r--tests/ui/macros/macro-doc-comments.rs2
-rw-r--r--tests/ui/macros/macro-doc-escapes.rs2
-rw-r--r--tests/ui/macros/macro-doc-raw-str-hashes.rs2
-rw-r--r--tests/ui/macros/macro-expanded-include/foo/mod.rs2
-rw-r--r--tests/ui/macros/macro-expanded-include/test.rs4
-rw-r--r--tests/ui/macros/macro-export-inner-module.rs4
-rw-r--r--tests/ui/macros/macro-first-set.rs2
-rw-r--r--tests/ui/macros/macro-follow-rpass.rs2
-rw-r--r--tests/ui/macros/macro-followed-by-seq.rs2
-rw-r--r--tests/ui/macros/macro-in-expression-context.fixed2
-rw-r--r--tests/ui/macros/macro-in-expression-context.rs2
-rw-r--r--tests/ui/macros/macro-in-fn.rs2
-rw-r--r--tests/ui/macros/macro-include-items.rs2
-rw-r--r--tests/ui/macros/macro-invocation-in-count-expr-fixed-array-type.rs4
-rw-r--r--tests/ui/macros/macro-lifetime-used-with-bound.rs2
-rw-r--r--tests/ui/macros/macro-lifetime-used-with-labels.rs2
-rw-r--r--tests/ui/macros/macro-lifetime-used-with-static.rs2
-rw-r--r--tests/ui/macros/macro-lifetime.rs2
-rw-r--r--tests/ui/macros/macro-literal.rs2
-rw-r--r--tests/ui/macros/macro-meta-items-modern.rs2
-rw-r--r--tests/ui/macros/macro-meta-items.rs4
-rw-r--r--tests/ui/macros/macro-method-issue-4621.rs2
-rw-r--r--tests/ui/macros/macro-missing-fragment-deduplication.rs2
-rw-r--r--tests/ui/macros/macro-multiple-items.rs2
-rw-r--r--tests/ui/macros/macro-named-default.rs2
-rw-r--r--tests/ui/macros/macro-nested_definition_issue-31946.rs2
-rw-r--r--tests/ui/macros/macro-nested_expr.rs2
-rw-r--r--tests/ui/macros/macro-nested_stmt_macros.rs2
-rw-r--r--tests/ui/macros/macro-nt-list.rs4
-rw-r--r--tests/ui/macros/macro-of-higher-order.rs2
-rw-r--r--tests/ui/macros/macro-or-patterns-back-compat.fixed4
-rw-r--r--tests/ui/macros/macro-or-patterns-back-compat.rs4
-rw-r--r--tests/ui/macros/macro-pat-follow-2018.rs4
-rw-r--r--tests/ui/macros/macro-pat-follow.rs2
-rw-r--r--tests/ui/macros/macro-pat-neg-lit.rs2
-rw-r--r--tests/ui/macros/macro-pat-pattern-followed-by-or-in-2021.rs2
-rw-r--r--tests/ui/macros/macro-pat-pattern-followed-by-or.rs2
-rw-r--r--tests/ui/macros/macro-pat.rs2
-rw-r--r--tests/ui/macros/macro-pat2021-pattern-followed-by-or.rs2
-rw-r--r--tests/ui/macros/macro-path-prelude-pass.rs2
-rw-r--r--tests/ui/macros/macro-path-prelude-shadowing.rs2
-rw-r--r--tests/ui/macros/macro-path.rs2
-rw-r--r--tests/ui/macros/macro-pub-matcher.rs2
-rw-r--r--tests/ui/macros/macro-quote-test.rs4
-rw-r--r--tests/ui/macros/macro-reexport-removed.rs2
-rw-r--r--tests/ui/macros/macro-seq-followed-by-seq.rs2
-rw-r--r--tests/ui/macros/macro-shadowing-relaxed.rs4
-rw-r--r--tests/ui/macros/macro-shadowing.rs2
-rw-r--r--tests/ui/macros/macro-stability-rpass.rs4
-rw-r--r--tests/ui/macros/macro-stability.rs2
-rw-r--r--tests/ui/macros/macro-stmt-matchers.rs2
-rw-r--r--tests/ui/macros/macro-stmt.rs2
-rw-r--r--tests/ui/macros/macro-stmt_macro_in_expr_macro.rs2
-rw-r--r--tests/ui/macros/macro-tt-followed-by-seq.rs2
-rw-r--r--tests/ui/macros/macro-tt-matchers.rs2
-rw-r--r--tests/ui/macros/macro-use-all-and-none.rs4
-rw-r--r--tests/ui/macros/macro-use-all.rs4
-rw-r--r--tests/ui/macros/macro-use-both.rs4
-rw-r--r--tests/ui/macros/macro-use-one.rs4
-rw-r--r--tests/ui/macros/macro-use-scope.rs4
-rw-r--r--tests/ui/macros/macro-use-undef.rs2
-rw-r--r--tests/ui/macros/macro-use-wrong-name.rs2
-rw-r--r--tests/ui/macros/macro-with-attrs1.rs4
-rw-r--r--tests/ui/macros/macro-with-attrs2.rs2
-rw-r--r--tests/ui/macros/macro-with-braces-in-expr-position.rs4
-rw-r--r--tests/ui/macros/macro_with_super_2.rs6
-rw-r--r--tests/ui/macros/macros-in-extern.rs4
-rw-r--r--tests/ui/macros/macros-nonfatal-errors.rs2
-rw-r--r--tests/ui/macros/meta-variable-misuse.rs2
-rw-r--r--tests/ui/macros/missing-bang-in-decl.fixed2
-rw-r--r--tests/ui/macros/missing-bang-in-decl.rs2
-rw-r--r--tests/ui/macros/must-use-in-macro-55516.rs4
-rw-r--r--tests/ui/macros/nested-use-as.rs4
-rw-r--r--tests/ui/macros/no-std-macros.rs4
-rw-r--r--tests/ui/macros/none-delim-lookahead.rs2
-rw-r--r--tests/ui/macros/not-utf8.rs2
-rw-r--r--tests/ui/macros/out-of-order-shadowing.rs2
-rw-r--r--tests/ui/macros/panic-temporaries-2018.rs4
-rw-r--r--tests/ui/macros/panic-temporaries.rs4
-rw-r--r--tests/ui/macros/parse-complex-macro-invoc-op.rs4
-rw-r--r--tests/ui/macros/paths-in-macro-invocations.rs4
-rw-r--r--tests/ui/macros/proc_macro.rs6
-rw-r--r--tests/ui/macros/pub-item-inside-macro.rs4
-rw-r--r--tests/ui/macros/pub-method-inside-macro.rs4
-rw-r--r--tests/ui/macros/recovery-forbidden.rs2
-rw-r--r--tests/ui/macros/rfc-2011-nicer-assert-messages/all-expr-kinds.rs8
-rw-r--r--tests/ui/macros/rfc-2011-nicer-assert-messages/all-not-available-cases.rs8
-rw-r--r--tests/ui/macros/rfc-2011-nicer-assert-messages/assert-with-custom-errors-does-not-create-unnecessary-code.rs4
-rw-r--r--tests/ui/macros/rfc-2011-nicer-assert-messages/assert-without-captures-does-not-create-unnecessary-code.rs8
-rw-r--r--tests/ui/macros/rfc-2011-nicer-assert-messages/feature-gate-generic_assert.rs4
-rw-r--r--tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.rs4
-rw-r--r--tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.stdout4
-rw-r--r--tests/ui/macros/rfc-3086-metavar-expr/count-and-length-are-distinct.rs2
-rw-r--r--tests/ui/macros/rfc-3086-metavar-expr/dollar-dollar-has-correct-behavior.rs2
-rw-r--r--tests/ui/macros/rfc-3086-metavar-expr/feature-gate-macro_metavar_expr.rs2
-rw-r--r--tests/ui/macros/rfc-3086-metavar-expr/macro-expansion.rs2
-rw-r--r--tests/ui/macros/same-sequence-span.rs2
-rw-r--r--tests/ui/macros/semi-after-macro-ty.rs2
-rw-r--r--tests/ui/macros/stmt_expr_attr_macro_parse.rs2
-rw-r--r--tests/ui/macros/stringify.rs6
-rw-r--r--tests/ui/macros/syntax-extension-cfg.rs4
-rw-r--r--tests/ui/macros/syntax-extension-source-utils.rs2
-rw-r--r--tests/ui/macros/trace-macro.rs4
-rw-r--r--tests/ui/macros/trace_faulty_macros.rs2
-rw-r--r--tests/ui/macros/try-macro.rs2
-rw-r--r--tests/ui/macros/two-macro-use.rs4
-rw-r--r--tests/ui/macros/type-macros-hlist.rs2
-rw-r--r--tests/ui/macros/type-macros-simple.rs2
-rw-r--r--tests/ui/macros/typeck-macro-interaction-issue-8852.rs2
-rw-r--r--tests/ui/macros/unimplemented-macro-panic.rs6
-rw-r--r--tests/ui/macros/unknown-builtin.rs2
-rw-r--r--tests/ui/macros/unreachable-arg.rs16
-rw-r--r--tests/ui/macros/unreachable-fmt-msg.rs6
-rw-r--r--tests/ui/macros/unreachable-format-arg.rs14
-rw-r--r--tests/ui/macros/unreachable-format-args.rs16
-rw-r--r--tests/ui/macros/unreachable-macro-panic.rs6
-rw-r--r--tests/ui/macros/unreachable-static-msg.rs6
-rw-r--r--tests/ui/macros/unreachable.rs6
-rw-r--r--tests/ui/macros/use-macro-self.rs4
-rw-r--r--tests/ui/macros/user-defined-macro-rules.rs2
245 files changed, 406 insertions, 406 deletions
diff --git a/tests/ui/macros/assert-as-macro.rs b/tests/ui/macros/assert-as-macro.rs
index 23c05480813..391b056292f 100644
--- a/tests/ui/macros/assert-as-macro.rs
+++ b/tests/ui/macros/assert-as-macro.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:assertion failed: 1 == 2
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:assertion failed: 1 == 2
+//@ ignore-emscripten no processes
 
 fn main() {
     assert!(1 == 2);
diff --git a/tests/ui/macros/assert-eq-macro-msg.rs b/tests/ui/macros/assert-eq-macro-msg.rs
index 3d921f40072..39eeefeeef9 100644
--- a/tests/ui/macros/assert-eq-macro-msg.rs
+++ b/tests/ui/macros/assert-eq-macro-msg.rs
@@ -1,8 +1,8 @@
-// run-fail
-// error-pattern:assertion `left == right` failed: 1 + 1 definitely should be 3
-// error-pattern:  left: 2
-// error-pattern: right: 3
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:assertion `left == right` failed: 1 + 1 definitely should be 3
+//@ error-pattern:  left: 2
+//@ error-pattern: right: 3
+//@ ignore-emscripten no processes
 
 fn main() {
     assert_eq!(1 + 1, 3, "1 + 1 definitely should be 3");
diff --git a/tests/ui/macros/assert-eq-macro-panic.rs b/tests/ui/macros/assert-eq-macro-panic.rs
index 6745290cbfc..22c3a8a634f 100644
--- a/tests/ui/macros/assert-eq-macro-panic.rs
+++ b/tests/ui/macros/assert-eq-macro-panic.rs
@@ -1,8 +1,8 @@
-// run-fail
-// error-pattern:assertion `left == right` failed
-// error-pattern:  left: 14
-// error-pattern: right: 15
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:assertion `left == right` failed
+//@ error-pattern:  left: 14
+//@ error-pattern: right: 15
+//@ ignore-emscripten no processes
 
 fn main() {
     assert_eq!(14, 15);
diff --git a/tests/ui/macros/assert-eq-macro-success.rs b/tests/ui/macros/assert-eq-macro-success.rs
index 57858b34837..490cd9315b6 100644
--- a/tests/ui/macros/assert-eq-macro-success.rs
+++ b/tests/ui/macros/assert-eq-macro-success.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #[derive(PartialEq, Debug)]
 struct Point { x : isize }
 
diff --git a/tests/ui/macros/assert-eq-macro-unsized.rs b/tests/ui/macros/assert-eq-macro-unsized.rs
index 00823216bf6..243f04b67d7 100644
--- a/tests/ui/macros/assert-eq-macro-unsized.rs
+++ b/tests/ui/macros/assert-eq-macro-unsized.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 pub fn main() {
     assert_eq!([1, 2, 3][..], vec![1, 2, 3][..]);
 }
diff --git a/tests/ui/macros/assert-format-lazy.rs b/tests/ui/macros/assert-format-lazy.rs
index c7f05d763b7..e0830660dd7 100644
--- a/tests/ui/macros/assert-format-lazy.rs
+++ b/tests/ui/macros/assert-format-lazy.rs
@@ -1,5 +1,5 @@
-// run-pass
-// compile-flags: -C debug_assertions=yes
+//@ run-pass
+//@ compile-flags: -C debug_assertions=yes
 
 #[allow(unreachable_code)]
 fn main() {
diff --git a/tests/ui/macros/assert-long-condition.rs b/tests/ui/macros/assert-long-condition.rs
index 1974ec9d6db..424d566e439 100644
--- a/tests/ui/macros/assert-long-condition.rs
+++ b/tests/ui/macros/assert-long-condition.rs
@@ -1,7 +1,7 @@
-// run-fail
-// check-run-results
-// exec-env:RUST_BACKTRACE=0
-// ignore-emscripten no processes
+//@ run-fail
+//@ check-run-results
+//@ exec-env:RUST_BACKTRACE=0
+//@ ignore-emscripten no processes
 // ignore-tidy-linelength
 
 fn main() {
diff --git a/tests/ui/macros/assert-macro-explicit.rs b/tests/ui/macros/assert-macro-explicit.rs
index 3d1a9a6b1ad..167581d2525 100644
--- a/tests/ui/macros/assert-macro-explicit.rs
+++ b/tests/ui/macros/assert-macro-explicit.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:assertion failed: false
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:assertion failed: false
+//@ ignore-emscripten no processes
 
 fn main() {
     assert!(false);
diff --git a/tests/ui/macros/assert-macro-fmt.rs b/tests/ui/macros/assert-macro-fmt.rs
index ceec53ceb9f..47554430379 100644
--- a/tests/ui/macros/assert-macro-fmt.rs
+++ b/tests/ui/macros/assert-macro-fmt.rs
@@ -1,7 +1,7 @@
-// run-fail
-// error-pattern: panicked
-// error-pattern: test-assert-fmt 42 rust
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern: panicked
+//@ error-pattern: test-assert-fmt 42 rust
+//@ ignore-emscripten no processes
 
 fn main() {
     assert!(false, "test-assert-fmt {} {}", 42, "rust");
diff --git a/tests/ui/macros/assert-macro-owned.rs b/tests/ui/macros/assert-macro-owned.rs
index fb4b389b80b..46a59db1390 100644
--- a/tests/ui/macros/assert-macro-owned.rs
+++ b/tests/ui/macros/assert-macro-owned.rs
@@ -1,7 +1,7 @@
-// run-fail
-// error-pattern:panicked
-// error-pattern:test-assert-owned
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:panicked
+//@ error-pattern:test-assert-owned
+//@ ignore-emscripten no processes
 
 #![allow(non_fmt_panics)]
 
diff --git a/tests/ui/macros/assert-macro-static.rs b/tests/ui/macros/assert-macro-static.rs
index fccc3259281..7d9e345d516 100644
--- a/tests/ui/macros/assert-macro-static.rs
+++ b/tests/ui/macros/assert-macro-static.rs
@@ -1,7 +1,7 @@
-// run-fail
-// error-pattern:panicked
-// error-pattern:test-assert-static
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:panicked
+//@ error-pattern:test-assert-static
+//@ ignore-emscripten no processes
 
 fn main() {
     assert!(false, "test-assert-static");
diff --git a/tests/ui/macros/assert-matches-macro-msg.rs b/tests/ui/macros/assert-matches-macro-msg.rs
index 7af6a077843..efa4121da92 100644
--- a/tests/ui/macros/assert-matches-macro-msg.rs
+++ b/tests/ui/macros/assert-matches-macro-msg.rs
@@ -1,8 +1,8 @@
-// run-fail
-// error-pattern:assertion `left matches right` failed: 1 + 1 definitely should be 3
-// error-pattern:  left: 2
-// error-pattern: right: 3
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:assertion `left matches right` failed: 1 + 1 definitely should be 3
+//@ error-pattern:  left: 2
+//@ error-pattern: right: 3
+//@ ignore-emscripten no processes
 
 #![feature(assert_matches)]
 
diff --git a/tests/ui/macros/assert-ne-macro-msg.rs b/tests/ui/macros/assert-ne-macro-msg.rs
index adda0af88f2..0a578e1baf9 100644
--- a/tests/ui/macros/assert-ne-macro-msg.rs
+++ b/tests/ui/macros/assert-ne-macro-msg.rs
@@ -1,8 +1,8 @@
-// run-fail
-// error-pattern:assertion `left != right` failed: 1 + 1 definitely should not be 2
-// error-pattern:  left: 2
-// error-pattern: right: 2
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:assertion `left != right` failed: 1 + 1 definitely should not be 2
+//@ error-pattern:  left: 2
+//@ error-pattern: right: 2
+//@ ignore-emscripten no processes
 
 fn main() {
     assert_ne!(1 + 1, 2, "1 + 1 definitely should not be 2");
diff --git a/tests/ui/macros/assert-ne-macro-panic.rs b/tests/ui/macros/assert-ne-macro-panic.rs
index d977473a2de..9cf5f05e9f1 100644
--- a/tests/ui/macros/assert-ne-macro-panic.rs
+++ b/tests/ui/macros/assert-ne-macro-panic.rs
@@ -1,8 +1,8 @@
-// run-fail
-// error-pattern:assertion `left != right` failed
-// error-pattern:  left: 14
-// error-pattern: right: 14
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:assertion `left != right` failed
+//@ error-pattern:  left: 14
+//@ error-pattern: right: 14
+//@ ignore-emscripten no processes
 
 fn main() {
     assert_ne!(14, 14);
diff --git a/tests/ui/macros/assert-ne-macro-success.rs b/tests/ui/macros/assert-ne-macro-success.rs
index 89b3a4c9d6a..4078bb07004 100644
--- a/tests/ui/macros/assert-ne-macro-success.rs
+++ b/tests/ui/macros/assert-ne-macro-success.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #[derive(PartialEq, Debug)]
 struct Point { x : isize }
 
diff --git a/tests/ui/macros/assert-ne-macro-unsized.rs b/tests/ui/macros/assert-ne-macro-unsized.rs
index e8a86e3da06..9938ac9d65b 100644
--- a/tests/ui/macros/assert-ne-macro-unsized.rs
+++ b/tests/ui/macros/assert-ne-macro-unsized.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 pub fn main() {
     assert_ne!([6, 6, 6][..], vec![1, 2, 3][..]);
 }
diff --git a/tests/ui/macros/assert-trailing-junk.rs b/tests/ui/macros/assert-trailing-junk.rs
index da725e19e2a..16f68dfcf9b 100644
--- a/tests/ui/macros/assert-trailing-junk.rs
+++ b/tests/ui/macros/assert-trailing-junk.rs
@@ -1,5 +1,5 @@
-// revisions: with-generic-asset without-generic-asset
-// [with-generic-asset] compile-flags: --cfg feature="generic_assert"
+//@ revisions: with-generic-asset without-generic-asset
+//@ [with-generic-asset] compile-flags: --cfg feature="generic_assert"
 
 // Ensure assert macro does not ignore trailing garbage.
 //
diff --git a/tests/ui/macros/assert.rs b/tests/ui/macros/assert.rs
index a314db907b8..4a8ea816747 100644
--- a/tests/ui/macros/assert.rs
+++ b/tests/ui/macros/assert.rs
@@ -1,5 +1,5 @@
-// revisions: with-generic-asset without-generic-asset
-// [with-generic-asset] compile-flags: --cfg feature="generic_assert"
+//@ revisions: with-generic-asset without-generic-asset
+//@ [with-generic-asset] compile-flags: --cfg feature="generic_assert"
 
 fn main() {
     assert!();  //~ ERROR requires a boolean expression
diff --git a/tests/ui/macros/attr-from-macro.rs b/tests/ui/macros/attr-from-macro.rs
index bb3a5c94d41..b745599ffd4 100644
--- a/tests/ui/macros/attr-from-macro.rs
+++ b/tests/ui/macros/attr-from-macro.rs
@@ -1,5 +1,5 @@
-// aux-build:attr-from-macro.rs
-// run-pass
+//@ aux-build:attr-from-macro.rs
+//@ run-pass
 
 extern crate attr_from_macro;
 
diff --git a/tests/ui/macros/auxiliary/foreign-crate-macro-pat.rs b/tests/ui/macros/auxiliary/foreign-crate-macro-pat.rs
index 26d4c96d524..1596f890bbb 100644
--- a/tests/ui/macros/auxiliary/foreign-crate-macro-pat.rs
+++ b/tests/ui/macros/auxiliary/foreign-crate-macro-pat.rs
@@ -1,4 +1,4 @@
-// edition:2018
+//@ edition:2018
 
 #[macro_export]
 macro_rules! custom_matches {
diff --git a/tests/ui/macros/auxiliary/hello_macro.rs b/tests/ui/macros/auxiliary/hello_macro.rs
index a05b8d54dc1..10f474bd1b3 100644
--- a/tests/ui/macros/auxiliary/hello_macro.rs
+++ b/tests/ui/macros/auxiliary/hello_macro.rs
@@ -1,5 +1,5 @@
-// force-host
-// no-prefer-dynamic
+//@ force-host
+//@ no-prefer-dynamic
 
 #![crate_type = "proc-macro"]
 #![feature(proc_macro_quote)]
diff --git a/tests/ui/macros/auxiliary/issue-100199.rs b/tests/ui/macros/auxiliary/issue-100199.rs
index 9e190b542db..9ee9a2f5039 100644
--- a/tests/ui/macros/auxiliary/issue-100199.rs
+++ b/tests/ui/macros/auxiliary/issue-100199.rs
@@ -1,5 +1,5 @@
-// force-host
-// no-prefer-dynamic
+//@ force-host
+//@ no-prefer-dynamic
 
 #![crate_type = "proc-macro"]
 #![feature(proc_macro_quote)]
diff --git a/tests/ui/macros/auxiliary/proc_macro_def.rs b/tests/ui/macros/auxiliary/proc_macro_def.rs
index 0497e4ae07d..6574bf184fb 100644
--- a/tests/ui/macros/auxiliary/proc_macro_def.rs
+++ b/tests/ui/macros/auxiliary/proc_macro_def.rs
@@ -1,5 +1,5 @@
-// force-host
-// no-prefer-dynamic
+//@ force-host
+//@ no-prefer-dynamic
 
 #![crate_type = "proc-macro"]
 #![feature(proc_macro_quote)]
diff --git a/tests/ui/macros/auxiliary/proc_macro_sequence.rs b/tests/ui/macros/auxiliary/proc_macro_sequence.rs
index 2f69cbc9450..de2efdfecf1 100644
--- a/tests/ui/macros/auxiliary/proc_macro_sequence.rs
+++ b/tests/ui/macros/auxiliary/proc_macro_sequence.rs
@@ -1,5 +1,5 @@
-// force-host
-// no-prefer-dynamic
+//@ force-host
+//@ no-prefer-dynamic
 
 #![crate_type = "proc-macro"]
 #![feature(proc_macro_span, proc_macro_quote)]
diff --git a/tests/ui/macros/bang-after-name.fixed b/tests/ui/macros/bang-after-name.fixed
index c107ddd5d03..3cad1f9aa77 100644
--- a/tests/ui/macros/bang-after-name.fixed
+++ b/tests/ui/macros/bang-after-name.fixed
@@ -1,4 +1,4 @@
-// run-rustfix
+//@ run-rustfix
 #[allow(unused_macros)]
 
 macro_rules! foo { //~ ERROR macro names aren't followed by a `!`
diff --git a/tests/ui/macros/bang-after-name.rs b/tests/ui/macros/bang-after-name.rs
index 7654d8c4403..26f88991050 100644
--- a/tests/ui/macros/bang-after-name.rs
+++ b/tests/ui/macros/bang-after-name.rs
@@ -1,4 +1,4 @@
-// run-rustfix
+//@ run-rustfix
 #[allow(unused_macros)]
 
 macro_rules! foo! { //~ ERROR macro names aren't followed by a `!`
diff --git a/tests/ui/macros/builtin-env-issue-114010.rs b/tests/ui/macros/builtin-env-issue-114010.rs
index 819b8b1e8ab..29ccb79a64f 100644
--- a/tests/ui/macros/builtin-env-issue-114010.rs
+++ b/tests/ui/macros/builtin-env-issue-114010.rs
@@ -1,5 +1,5 @@
-// unset-rustc-env:oopsie
-// unset-rustc-env:a""a
+//@ unset-rustc-env:oopsie
+//@ unset-rustc-env:a""a
 
 env![r#"oopsie"#];
 //~^ ERROR environment variable `oopsie` not defined at compile time
diff --git a/tests/ui/macros/builtin-std-paths.rs b/tests/ui/macros/builtin-std-paths.rs
index 2083f9ba3dc..4612ef42487 100644
--- a/tests/ui/macros/builtin-std-paths.rs
+++ b/tests/ui/macros/builtin-std-paths.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 #[derive(
     core::clone::Clone,
diff --git a/tests/ui/macros/colorful-write-macros.rs b/tests/ui/macros/colorful-write-macros.rs
index eb1872cc7f0..f20ca00b804 100644
--- a/tests/ui/macros/colorful-write-macros.rs
+++ b/tests/ui/macros/colorful-write-macros.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
 use std::io::Write;
 use std::fmt;
diff --git a/tests/ui/macros/concat-bytes.rs b/tests/ui/macros/concat-bytes.rs
index fd8f99417ec..36227a712cc 100644
--- a/tests/ui/macros/concat-bytes.rs
+++ b/tests/ui/macros/concat-bytes.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![feature(concat_bytes)]
 
 fn main() {
diff --git a/tests/ui/macros/concat-rpass.rs b/tests/ui/macros/concat-rpass.rs
index 0c30a39d6a2..3fbc80e0e99 100644
--- a/tests/ui/macros/concat-rpass.rs
+++ b/tests/ui/macros/concat-rpass.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 pub fn main() {
     assert_eq!(format!(concat!("foo", "bar", "{}"), "baz"), "foobarbaz".to_string());
diff --git a/tests/ui/macros/conditional-debug-macro-on.rs b/tests/ui/macros/conditional-debug-macro-on.rs
index 8665da89758..2b726378fba 100644
--- a/tests/ui/macros/conditional-debug-macro-on.rs
+++ b/tests/ui/macros/conditional-debug-macro-on.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 pub fn main() {
     // exits early if println! evaluates its arguments, otherwise it
     // will hit the panic.
diff --git a/tests/ui/macros/cross-crate-pat-span.rs b/tests/ui/macros/cross-crate-pat-span.rs
index ed67142ce3d..cd4e791d2f9 100644
--- a/tests/ui/macros/cross-crate-pat-span.rs
+++ b/tests/ui/macros/cross-crate-pat-span.rs
@@ -1,6 +1,6 @@
-// edition:2021
-// check-pass
-// aux-build: foreign-crate-macro-pat.rs
+//@ edition:2021
+//@ check-pass
+//@ aux-build: foreign-crate-macro-pat.rs
 //
 // Tests that the edition of the foreign crate is used
 // when determining the behavior of the `:pat` matcher.
diff --git a/tests/ui/macros/die-macro-2.rs b/tests/ui/macros/die-macro-2.rs
index ebbce528a18..e5456bdfca0 100644
--- a/tests/ui/macros/die-macro-2.rs
+++ b/tests/ui/macros/die-macro-2.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:test
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:test
+//@ ignore-emscripten no processes
 
 fn main() {
     panic!("test");
diff --git a/tests/ui/macros/die-macro-expr.rs b/tests/ui/macros/die-macro-expr.rs
index c4b5f68ddf9..fb92dd66e3d 100644
--- a/tests/ui/macros/die-macro-expr.rs
+++ b/tests/ui/macros/die-macro-expr.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:test
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:test
+//@ ignore-emscripten no processes
 
 fn main() {
     let __isize: isize = panic!("test");
diff --git a/tests/ui/macros/die-macro-pure.rs b/tests/ui/macros/die-macro-pure.rs
index 588fbe61b0e..484eed3d720 100644
--- a/tests/ui/macros/die-macro-pure.rs
+++ b/tests/ui/macros/die-macro-pure.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:test
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:test
+//@ ignore-emscripten no processes
 
 fn f() {
     panic!("test");
diff --git a/tests/ui/macros/die-macro.rs b/tests/ui/macros/die-macro.rs
index 2a726efe822..b717eed3fb4 100644
--- a/tests/ui/macros/die-macro.rs
+++ b/tests/ui/macros/die-macro.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
 // Just testing that panic!() type checks in statement or expr
 
diff --git a/tests/ui/macros/doc-comment.rs b/tests/ui/macros/doc-comment.rs
index 9de39e9b56c..577f1afa0df 100644
--- a/tests/ui/macros/doc-comment.rs
+++ b/tests/ui/macros/doc-comment.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 // Tests that we properly handle a nested macro expansion
 // involving a `#[doc]` attribute
 #![deny(missing_docs)]
diff --git a/tests/ui/macros/dollar-crate-nested-encoding.rs b/tests/ui/macros/dollar-crate-nested-encoding.rs
index 5242f7830bb..b8a59339896 100644
--- a/tests/ui/macros/dollar-crate-nested-encoding.rs
+++ b/tests/ui/macros/dollar-crate-nested-encoding.rs
@@ -1,5 +1,5 @@
-// check-pass
-// aux-build:dollar-crate-nested-encoding.rs
+//@ check-pass
+//@ aux-build:dollar-crate-nested-encoding.rs
 
 extern crate dollar_crate_nested_encoding;
 
diff --git a/tests/ui/macros/duplicate-builtin.rs b/tests/ui/macros/duplicate-builtin.rs
index 35f0f429059..c75782128f4 100644
--- a/tests/ui/macros/duplicate-builtin.rs
+++ b/tests/ui/macros/duplicate-builtin.rs
@@ -1,4 +1,4 @@
-// compile-flags:--crate-type lib
+//@ compile-flags:--crate-type lib
 #![feature(decl_macro)]
 #![feature(rustc_attrs)]
 
diff --git a/tests/ui/macros/edition-macro-pats.rs b/tests/ui/macros/edition-macro-pats.rs
index 040894712a8..f5388e09c74 100644
--- a/tests/ui/macros/edition-macro-pats.rs
+++ b/tests/ui/macros/edition-macro-pats.rs
@@ -1,5 +1,5 @@
-// run-pass
-// edition:2021
+//@ run-pass
+//@ edition:2021
 
 macro_rules! foo {
     (a $x:pat_param) => {};
diff --git a/tests/ui/macros/format-args-temporaries-async.rs b/tests/ui/macros/format-args-temporaries-async.rs
index d959329b9fc..741844409ac 100644
--- a/tests/ui/macros/format-args-temporaries-async.rs
+++ b/tests/ui/macros/format-args-temporaries-async.rs
@@ -1,5 +1,5 @@
-// check-pass
-// edition:2021
+//@ check-pass
+//@ edition:2021
 
 use std::fmt::{self, Display};
 use std::future::Future;
diff --git a/tests/ui/macros/format-args-temporaries-in-write.rs b/tests/ui/macros/format-args-temporaries-in-write.rs
index 339ccbc33ac..b4c1e212221 100644
--- a/tests/ui/macros/format-args-temporaries-in-write.rs
+++ b/tests/ui/macros/format-args-temporaries-in-write.rs
@@ -1,4 +1,4 @@
-// check-fail
+//@ check-fail
 
 use std::fmt::{self, Display};
 
diff --git a/tests/ui/macros/format-args-temporaries.rs b/tests/ui/macros/format-args-temporaries.rs
index 1ff6e3f80d6..ad9792bc796 100644
--- a/tests/ui/macros/format-args-temporaries.rs
+++ b/tests/ui/macros/format-args-temporaries.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 use std::fmt::{self, Display};
 
diff --git a/tests/ui/macros/html-literals.rs b/tests/ui/macros/html-literals.rs
index e5ff425041a..b30de7b7ee6 100644
--- a/tests/ui/macros/html-literals.rs
+++ b/tests/ui/macros/html-literals.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![allow(non_camel_case_types)]
 // A test of the macro system. Can we do HTML literals?
diff --git a/tests/ui/macros/include-single-expr-helper-1.rs b/tests/ui/macros/include-single-expr-helper-1.rs
index aa6380bd24d..ddeeb982f64 100644
--- a/tests/ui/macros/include-single-expr-helper-1.rs
+++ b/tests/ui/macros/include-single-expr-helper-1.rs
@@ -1,4 +1,4 @@
-// ignore-test auxiliary file for include-single-expr.rs
+//@ ignore-test auxiliary file for include-single-expr.rs
 
 0
 
diff --git a/tests/ui/macros/include-single-expr-helper.rs b/tests/ui/macros/include-single-expr-helper.rs
index 84d8b69603b..e8ad9746b02 100644
--- a/tests/ui/macros/include-single-expr-helper.rs
+++ b/tests/ui/macros/include-single-expr-helper.rs
@@ -1,4 +1,4 @@
-// ignore-test auxiliary file for include-single-expr.rs
+//@ ignore-test auxiliary file for include-single-expr.rs
 
 0
 10
diff --git a/tests/ui/macros/include-single-expr.rs b/tests/ui/macros/include-single-expr.rs
index 0f4c29ec014..c501f5d97ca 100644
--- a/tests/ui/macros/include-single-expr.rs
+++ b/tests/ui/macros/include-single-expr.rs
@@ -1,4 +1,4 @@
-// error-pattern include macro expected single expression
+//@ error-pattern include macro expected single expression
 
 fn main() {
     include!("include-single-expr-helper.rs");
diff --git a/tests/ui/macros/issue-100199.rs b/tests/ui/macros/issue-100199.rs
index 6e50afa0759..b1bcc535d74 100644
--- a/tests/ui/macros/issue-100199.rs
+++ b/tests/ui/macros/issue-100199.rs
@@ -5,7 +5,7 @@ struct Foo {}
 // an unexpected dummy span (lo == 0 == hi) while attempting to print a
 // suggestion.
 
-// aux-build: issue-100199.rs
+//@ aux-build: issue-100199.rs
 
 extern crate issue_100199;
 
diff --git a/tests/ui/macros/issue-112342-2.rs b/tests/ui/macros/issue-112342-2.rs
index e797aff94d2..6387fd42435 100644
--- a/tests/ui/macros/issue-112342-2.rs
+++ b/tests/ui/macros/issue-112342-2.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 // same as #95267, ignore doc comment although it's a bug.
 
diff --git a/tests/ui/macros/issue-118786.rs b/tests/ui/macros/issue-118786.rs
index 84af3a65113..cc6c751813b 100644
--- a/tests/ui/macros/issue-118786.rs
+++ b/tests/ui/macros/issue-118786.rs
@@ -1,4 +1,4 @@
-// compile-flags: --crate-type lib -O -C debug-assertions=yes
+//@ compile-flags: --crate-type lib -O -C debug-assertions=yes
 
 // Regression test for issue 118786
 
diff --git a/tests/ui/macros/issue-19163.rs b/tests/ui/macros/issue-19163.rs
index d98c5912af2..e08bd6e393b 100644
--- a/tests/ui/macros/issue-19163.rs
+++ b/tests/ui/macros/issue-19163.rs
@@ -1,4 +1,4 @@
-// aux-build:issue-19163.rs
+//@ aux-build:issue-19163.rs
 
 #[macro_use] extern crate issue_19163;
 
diff --git a/tests/ui/macros/issue-22463.rs b/tests/ui/macros/issue-22463.rs
index 8f7b27cb9a0..efb61e9ed68 100644
--- a/tests/ui/macros/issue-22463.rs
+++ b/tests/ui/macros/issue-22463.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 macro_rules! items {
     () => {
         type A = ();
diff --git a/tests/ui/macros/issue-25274.rs b/tests/ui/macros/issue-25274.rs
index 65b29bba8c8..3ed47b6a894 100644
--- a/tests/ui/macros/issue-25274.rs
+++ b/tests/ui/macros/issue-25274.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! test {
     (
diff --git a/tests/ui/macros/issue-26322.rs b/tests/ui/macros/issue-26322.rs
index c1dc80eb7c5..aaffbb081e2 100644
--- a/tests/ui/macros/issue-26322.rs
+++ b/tests/ui/macros/issue-26322.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(non_camel_case_types)]
 #![allow(non_snake_case)]
 
diff --git a/tests/ui/macros/issue-2804-2.rs b/tests/ui/macros/issue-2804-2.rs
index d02725505ac..6702f4249aa 100644
--- a/tests/ui/macros/issue-2804-2.rs
+++ b/tests/ui/macros/issue-2804-2.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 #![allow(dead_code)]
 // Minimized version of issue-2804.rs. Both check that callee IDs don't
 // clobber the previous node ID in a macro expr
diff --git a/tests/ui/macros/issue-2804.rs b/tests/ui/macros/issue-2804.rs
index 571028c5e40..0b6f9487ece 100644
--- a/tests/ui/macros/issue-2804.rs
+++ b/tests/ui/macros/issue-2804.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![allow(non_camel_case_types)]
 #![allow(dead_code)]
diff --git a/tests/ui/macros/issue-33185.rs b/tests/ui/macros/issue-33185.rs
index 0d6669146a6..8d7e305f1e3 100644
--- a/tests/ui/macros/issue-33185.rs
+++ b/tests/ui/macros/issue-33185.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
 
 #[macro_export]
diff --git a/tests/ui/macros/issue-34171.rs b/tests/ui/macros/issue-34171.rs
index 157c58c459d..fbc2ea50097 100644
--- a/tests/ui/macros/issue-34171.rs
+++ b/tests/ui/macros/issue-34171.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 macro_rules! null { ($i:tt) => {} }
 macro_rules! apply_null {
diff --git a/tests/ui/macros/issue-37175.rs b/tests/ui/macros/issue-37175.rs
index 9ec9d48d18b..e25ddfce6f2 100644
--- a/tests/ui/macros/issue-37175.rs
+++ b/tests/ui/macros/issue-37175.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! m { (<$t:ty>) => { stringify!($t) } }
 fn main() {
     println!("{}", m!(<Vec<i32>>));
diff --git a/tests/ui/macros/issue-39467.rs b/tests/ui/macros/issue-39467.rs
index 397751e4ec3..5405ec3fb3d 100644
--- a/tests/ui/macros/issue-39467.rs
+++ b/tests/ui/macros/issue-39467.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 #![allow(dead_code)]
 macro_rules! expr { () => { () } }
 
diff --git a/tests/ui/macros/issue-40469.rs b/tests/ui/macros/issue-40469.rs
index 9b22aaef289..faa4c6581af 100644
--- a/tests/ui/macros/issue-40469.rs
+++ b/tests/ui/macros/issue-40469.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![allow(dead_code)]
 
diff --git a/tests/ui/macros/issue-40770.rs b/tests/ui/macros/issue-40770.rs
index c9713c15798..d90294acd25 100644
--- a/tests/ui/macros/issue-40770.rs
+++ b/tests/ui/macros/issue-40770.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_macros)]
 macro_rules! m {
     ($e:expr) => {
diff --git a/tests/ui/macros/issue-41803.rs b/tests/ui/macros/issue-41803.rs
index bccfdc61146..69162da12ac 100644
--- a/tests/ui/macros/issue-41803.rs
+++ b/tests/ui/macros/issue-41803.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_macro_rules)]
 
 /// A compile-time map from identifiers to arbitrary (heterogeneous) expressions
diff --git a/tests/ui/macros/issue-42954.fixed b/tests/ui/macros/issue-42954.fixed
index a73054c9257..acfc36e2bff 100644
--- a/tests/ui/macros/issue-42954.fixed
+++ b/tests/ui/macros/issue-42954.fixed
@@ -1,4 +1,4 @@
-// run-rustfix
+//@ run-rustfix
 
 #![allow(unused_must_use, unused_comparisons)]
 
diff --git a/tests/ui/macros/issue-42954.rs b/tests/ui/macros/issue-42954.rs
index 5f9b0e31da5..91362946f84 100644
--- a/tests/ui/macros/issue-42954.rs
+++ b/tests/ui/macros/issue-42954.rs
@@ -1,4 +1,4 @@
-// run-rustfix
+//@ run-rustfix
 
 #![allow(unused_must_use, unused_comparisons)]
 
diff --git a/tests/ui/macros/issue-44127.rs b/tests/ui/macros/issue-44127.rs
index 21b2e68264a..a6e2840c7f8 100644
--- a/tests/ui/macros/issue-44127.rs
+++ b/tests/ui/macros/issue-44127.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![feature(decl_macro)]
 
diff --git a/tests/ui/macros/issue-5060.rs b/tests/ui/macros/issue-5060.rs
index c4760bc029b..bca71e7e5c7 100644
--- a/tests/ui/macros/issue-5060.rs
+++ b/tests/ui/macros/issue-5060.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! print_hd_tl {
     ($field_hd:ident, $($field_tl:ident),+) => ({
         print!("{}", stringify!($field_hd));
diff --git a/tests/ui/macros/issue-52169.rs b/tests/ui/macros/issue-52169.rs
index f178cd30cb4..b1a09e83ee9 100644
--- a/tests/ui/macros/issue-52169.rs
+++ b/tests/ui/macros/issue-52169.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #[allow(unused_macro_rules)]
 macro_rules! a {
diff --git a/tests/ui/macros/issue-57597.rs b/tests/ui/macros/issue-57597.rs
index ebeb3fe07ad..fd45f53cbd4 100644
--- a/tests/ui/macros/issue-57597.rs
+++ b/tests/ui/macros/issue-57597.rs
@@ -2,7 +2,7 @@
 //
 // Make sure that nested matchers work correctly rather than causing an infinite loop or crash.
 
-// edition:2018
+//@ edition:2018
 
 macro_rules! foo1 {
     ($($($i:ident)?)+) => {};
diff --git a/tests/ui/macros/issue-63102.rs b/tests/ui/macros/issue-63102.rs
index 6af5b186806..acc068cde7e 100644
--- a/tests/ui/macros/issue-63102.rs
+++ b/tests/ui/macros/issue-63102.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 #![feature(decl_macro)]
 macro foo {
diff --git a/tests/ui/macros/issue-68058.rs b/tests/ui/macros/issue-68058.rs
index 24da2620c2e..0e6e445fd10 100644
--- a/tests/ui/macros/issue-68058.rs
+++ b/tests/ui/macros/issue-68058.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 macro_rules! foo {
     ($doc: expr) => {
diff --git a/tests/ui/macros/issue-69838-dir/bar.rs b/tests/ui/macros/issue-69838-dir/bar.rs
index ec12f8c5cb4..4433005b85f 100644
--- a/tests/ui/macros/issue-69838-dir/bar.rs
+++ b/tests/ui/macros/issue-69838-dir/bar.rs
@@ -1,3 +1,3 @@
-// ignore-test -- this is an auxiliary file as part of another test.
+//@ ignore-test -- this is an auxiliary file as part of another test.
 
 pub fn i_am_in_bar() {}
diff --git a/tests/ui/macros/issue-69838-dir/included.rs b/tests/ui/macros/issue-69838-dir/included.rs
index 9900b8fd509..11fcd3eff72 100644
--- a/tests/ui/macros/issue-69838-dir/included.rs
+++ b/tests/ui/macros/issue-69838-dir/included.rs
@@ -1,3 +1,3 @@
-// ignore-test -- this is an auxiliary file as part of another test.
+//@ ignore-test -- this is an auxiliary file as part of another test.
 
 pub mod bar;
diff --git a/tests/ui/macros/issue-69838-mods-relative-to-included-path.rs b/tests/ui/macros/issue-69838-mods-relative-to-included-path.rs
index 2a4e97f0ef5..908669d337b 100644
--- a/tests/ui/macros/issue-69838-mods-relative-to-included-path.rs
+++ b/tests/ui/macros/issue-69838-mods-relative-to-included-path.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 include!("issue-69838-dir/included.rs");
 
diff --git a/tests/ui/macros/issue-70446.rs b/tests/ui/macros/issue-70446.rs
index 407094d55ff..35ffe3dfbfd 100644
--- a/tests/ui/macros/issue-70446.rs
+++ b/tests/ui/macros/issue-70446.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 macro_rules! foo {
     ($(: $p:path)? $(: $l:lifetime)? ) => { bar! {$(: $p)? $(: $l)? } };
diff --git a/tests/ui/macros/issue-75982-foreign-macro-weird-mod.rs b/tests/ui/macros/issue-75982-foreign-macro-weird-mod.rs
index e76b09d4bb9..8c3eb523ec5 100644
--- a/tests/ui/macros/issue-75982-foreign-macro-weird-mod.rs
+++ b/tests/ui/macros/issue-75982-foreign-macro-weird-mod.rs
@@ -1,5 +1,5 @@
-// aux-build:issue-75982.rs
-// check-pass
+//@ aux-build:issue-75982.rs
+//@ check-pass
 
 // Regression test for issue #75982
 // Tests that don't ICE when invoking a foreign macro
diff --git a/tests/ui/macros/issue-77475.rs b/tests/ui/macros/issue-77475.rs
index 7b32a33ea4f..b161f1eb39d 100644
--- a/tests/ui/macros/issue-77475.rs
+++ b/tests/ui/macros/issue-77475.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 // Regression test of #77475, this used to be ICE.
 
 #![feature(decl_macro)]
diff --git a/tests/ui/macros/issue-78333.rs b/tests/ui/macros/issue-78333.rs
index c376f206704..faf608bd782 100644
--- a/tests/ui/macros/issue-78333.rs
+++ b/tests/ui/macros/issue-78333.rs
@@ -1,4 +1,4 @@
-// build-pass
+//@ build-pass
 
 #![no_implicit_prelude]
 
diff --git a/tests/ui/macros/issue-78892-substitution-in-statement-attr.rs b/tests/ui/macros/issue-78892-substitution-in-statement-attr.rs
index 9d1fae7a234..bdb9f873410 100644
--- a/tests/ui/macros/issue-78892-substitution-in-statement-attr.rs
+++ b/tests/ui/macros/issue-78892-substitution-in-statement-attr.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 // regression test for #78892
 
diff --git a/tests/ui/macros/issue-81006.rs b/tests/ui/macros/issue-81006.rs
index 602eb597428..0fe0036765f 100644
--- a/tests/ui/macros/issue-81006.rs
+++ b/tests/ui/macros/issue-81006.rs
@@ -1,4 +1,4 @@
-// check-fail
+//@ check-fail
 
 // First format below would cause a panic, second would generate error with incorrect span
 
diff --git a/tests/ui/macros/issue-83340.rs b/tests/ui/macros/issue-83340.rs
index d26200295cd..edf9c5612fb 100644
--- a/tests/ui/macros/issue-83340.rs
+++ b/tests/ui/macros/issue-83340.rs
@@ -1,4 +1,4 @@
-// check-fail
+//@ check-fail
 
 fn main() {
     println!(
diff --git a/tests/ui/macros/issue-83344.rs b/tests/ui/macros/issue-83344.rs
index c5f7f723587..61ae1739095 100644
--- a/tests/ui/macros/issue-83344.rs
+++ b/tests/ui/macros/issue-83344.rs
@@ -1,4 +1,4 @@
-// check-fail
+//@ check-fail
 
 fn main() {
     println!("{}\
diff --git a/tests/ui/macros/issue-84429-matches-edition.rs b/tests/ui/macros/issue-84429-matches-edition.rs
index 53f134c265f..a1b146e23b6 100644
--- a/tests/ui/macros/issue-84429-matches-edition.rs
+++ b/tests/ui/macros/issue-84429-matches-edition.rs
@@ -1,5 +1,5 @@
-// edition:2021
-// check-pass
+//@ edition:2021
+//@ check-pass
 //
 // Regression test for issue #84429
 // Tests that we can properly invoke `matches!` from a 2021-edition crate.
diff --git a/tests/ui/macros/issue-86082-option-env-invalid-char.rs b/tests/ui/macros/issue-86082-option-env-invalid-char.rs
index b556b24d6aa..5d24ad2dcad 100644
--- a/tests/ui/macros/issue-86082-option-env-invalid-char.rs
+++ b/tests/ui/macros/issue-86082-option-env-invalid-char.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 //
 // Regression test for issue #86082
 //
diff --git a/tests/ui/macros/issue-8709.rs b/tests/ui/macros/issue-8709.rs
index ea7525d4477..afde304e821 100644
--- a/tests/ui/macros/issue-8709.rs
+++ b/tests/ui/macros/issue-8709.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! sty {
     ($t:ty) => (stringify!($t))
diff --git a/tests/ui/macros/issue-87877.rs b/tests/ui/macros/issue-87877.rs
index a40e2c5f970..79763435644 100644
--- a/tests/ui/macros/issue-87877.rs
+++ b/tests/ui/macros/issue-87877.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 macro_rules! two_items {
     () => {
diff --git a/tests/ui/macros/issue-88206.rs b/tests/ui/macros/issue-88206.rs
index 14e2f66068b..abf58fdcbc8 100644
--- a/tests/ui/macros/issue-88206.rs
+++ b/tests/ui/macros/issue-88206.rs
@@ -1,4 +1,4 @@
-// compile-flags: -Z deduplicate-diagnostics=yes
+//@ compile-flags: -Z deduplicate-diagnostics=yes
 
 #![warn(unused_imports)]
 
diff --git a/tests/ui/macros/issue-88228.rs b/tests/ui/macros/issue-88228.rs
index ec55a262509..48b405264fe 100644
--- a/tests/ui/macros/issue-88228.rs
+++ b/tests/ui/macros/issue-88228.rs
@@ -1,5 +1,5 @@
-// compile-flags: -Z deduplicate-diagnostics=yes
-// edition:2018
+//@ compile-flags: -Z deduplicate-diagnostics=yes
+//@ edition:2018
 
 mod hey { //~ HELP consider importing this derive macro
     //~^ HELP consider importing this macro
diff --git a/tests/ui/macros/issue-8851.rs b/tests/ui/macros/issue-8851.rs
index faacfe5f895..4a398d15997 100644
--- a/tests/ui/macros/issue-8851.rs
+++ b/tests/ui/macros/issue-8851.rs
@@ -1,11 +1,11 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
 // after fixing #9384 and implementing hygiene for match bindings,
 // this now fails because the insertion of the 'y' into the match
 // doesn't cause capture. Making this macro hygienic (as I've done)
 // could very well make this test case completely pointless....
 
-// pretty-expanded FIXME #23616
+//@ pretty-expanded FIXME #23616
 
 enum T {
     A(isize),
diff --git a/tests/ui/macros/issue-92267.rs b/tests/ui/macros/issue-92267.rs
index f1daaeb743e..ff27717bcfa 100644
--- a/tests/ui/macros/issue-92267.rs
+++ b/tests/ui/macros/issue-92267.rs
@@ -1,3 +1,3 @@
-// check-fail
+//@ check-fail
 
 pub fn main() { println!("🦀%%%", 0) } //~ ERROR argument never used
diff --git a/tests/ui/macros/issue-95267.rs b/tests/ui/macros/issue-95267.rs
index a2fe402bccf..ab003413b58 100644
--- a/tests/ui/macros/issue-95267.rs
+++ b/tests/ui/macros/issue-95267.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 // The doc comment here is ignored. This is a bug, but #95267 showed that
 // existing programs rely on this behaviour, and changing it would require some
diff --git a/tests/ui/macros/issue-95533.rs b/tests/ui/macros/issue-95533.rs
index 905c14dc5fd..f2bdc346496 100644
--- a/tests/ui/macros/issue-95533.rs
+++ b/tests/ui/macros/issue-95533.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 #![no_implicit_prelude]
 // the macro should not rely on the prelude being imported
diff --git a/tests/ui/macros/issue-98466-allow.rs b/tests/ui/macros/issue-98466-allow.rs
index c260148c148..2faf39749c4 100644
--- a/tests/ui/macros/issue-98466-allow.rs
+++ b/tests/ui/macros/issue-98466-allow.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 #![allow(named_arguments_used_positionally)]
 
 fn main() {
diff --git a/tests/ui/macros/issue-98466.fixed b/tests/ui/macros/issue-98466.fixed
index e46e22f001f..37157706212 100644
--- a/tests/ui/macros/issue-98466.fixed
+++ b/tests/ui/macros/issue-98466.fixed
@@ -1,5 +1,5 @@
-// check-pass
-// run-rustfix
+//@ check-pass
+//@ run-rustfix
 
 fn main() {
     let mut _x: usize;
diff --git a/tests/ui/macros/issue-98466.rs b/tests/ui/macros/issue-98466.rs
index 2c3b099afde..4f45605d6af 100644
--- a/tests/ui/macros/issue-98466.rs
+++ b/tests/ui/macros/issue-98466.rs
@@ -1,5 +1,5 @@
-// check-pass
-// run-rustfix
+//@ check-pass
+//@ run-rustfix
 
 fn main() {
     let mut _x: usize;
diff --git a/tests/ui/macros/issue-98790.rs b/tests/ui/macros/issue-98790.rs
index 8fe6fc41d10..b489efe9ce9 100644
--- a/tests/ui/macros/issue-98790.rs
+++ b/tests/ui/macros/issue-98790.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! stringify_item {
     ($item:item) => {
diff --git a/tests/ui/macros/issue-99261.rs b/tests/ui/macros/issue-99261.rs
index 40d26d08cba..7ea9974564a 100644
--- a/tests/ui/macros/issue-99261.rs
+++ b/tests/ui/macros/issue-99261.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 #![deny(named_arguments_used_positionally)]
 
diff --git a/tests/ui/macros/issue-99265.fixed b/tests/ui/macros/issue-99265.fixed
index f3be9c6285d..06cd07362c9 100644
--- a/tests/ui/macros/issue-99265.fixed
+++ b/tests/ui/macros/issue-99265.fixed
@@ -1,5 +1,5 @@
-// check-pass
-// run-rustfix
+//@ check-pass
+//@ run-rustfix
 
 fn main() {
     println!("{b} {a}", a=1, b=2);
diff --git a/tests/ui/macros/issue-99265.rs b/tests/ui/macros/issue-99265.rs
index e7cf608765b..619d265420f 100644
--- a/tests/ui/macros/issue-99265.rs
+++ b/tests/ui/macros/issue-99265.rs
@@ -1,5 +1,5 @@
-// check-pass
-// run-rustfix
+//@ check-pass
+//@ run-rustfix
 
 fn main() {
     println!("{b} {}", a=1, b=2);
diff --git a/tests/ui/macros/issue-99907.fixed b/tests/ui/macros/issue-99907.fixed
index 9e0e1b80ee5..7da49b2a606 100644
--- a/tests/ui/macros/issue-99907.fixed
+++ b/tests/ui/macros/issue-99907.fixed
@@ -1,5 +1,5 @@
-// check-pass
-// run-rustfix
+//@ check-pass
+//@ run-rustfix
 
 fn main() {
     println!("Hello {f:.1}!", f = 0.02f32);
diff --git a/tests/ui/macros/issue-99907.rs b/tests/ui/macros/issue-99907.rs
index eebcfc2efec..716bb99979c 100644
--- a/tests/ui/macros/issue-99907.rs
+++ b/tests/ui/macros/issue-99907.rs
@@ -1,5 +1,5 @@
-// check-pass
-// run-rustfix
+//@ check-pass
+//@ run-rustfix
 
 fn main() {
     println!("Hello {:.1}!", f = 0.02f32);
diff --git a/tests/ui/macros/lint-trailing-macro-call.rs b/tests/ui/macros/lint-trailing-macro-call.rs
index f8e84756391..66dce057d0f 100644
--- a/tests/ui/macros/lint-trailing-macro-call.rs
+++ b/tests/ui/macros/lint-trailing-macro-call.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 //
 // Ensures that we properly lint
 // a removed 'expression' resulting from a macro
diff --git a/tests/ui/macros/log_syntax-trace_macros-macro-locations.rs b/tests/ui/macros/log_syntax-trace_macros-macro-locations.rs
index 2d78ae6f908..85a65300eaf 100644
--- a/tests/ui/macros/log_syntax-trace_macros-macro-locations.rs
+++ b/tests/ui/macros/log_syntax-trace_macros-macro-locations.rs
@@ -1,5 +1,5 @@
-// run-pass
-// pretty-expanded FIXME #23616
+//@ run-pass
+//@ pretty-expanded FIXME #23616
 
 #![feature(trace_macros, log_syntax)]
 
diff --git a/tests/ui/macros/macro-2.rs b/tests/ui/macros/macro-2.rs
index a315981b6a6..f28a567cd4e 100644
--- a/tests/ui/macros/macro-2.rs
+++ b/tests/ui/macros/macro-2.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 pub fn main() {
 
     macro_rules! mylambda_tt {
diff --git a/tests/ui/macros/macro-as-fn-body.rs b/tests/ui/macros/macro-as-fn-body.rs
index 6781c9a9ed4..e0542edc2a5 100644
--- a/tests/ui/macros/macro-as-fn-body.rs
+++ b/tests/ui/macros/macro-as-fn-body.rs
@@ -1,5 +1,5 @@
 //
-// run-pass
+//@ run-pass
 //
 // Description - ensure Interpolated blocks can act as valid function bodies
 // Covered cases: free functions, struct methods, and default trait functions
diff --git a/tests/ui/macros/macro-at-most-once-rep-2015-rpass.rs b/tests/ui/macros/macro-at-most-once-rep-2015-rpass.rs
index 66597c0acf6..c7a22c8b518 100644
--- a/tests/ui/macros/macro-at-most-once-rep-2015-rpass.rs
+++ b/tests/ui/macros/macro-at-most-once-rep-2015-rpass.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![allow(unused_mut)]
 
@@ -6,7 +6,7 @@
 // then that `?` is not interpreted as a separator. In other words, `$(pat)?+` matches `pat +`
 // or `+` but does not match `pat` or `pat ? pat`.
 
-// edition:2015
+//@ edition:2015
 
 macro_rules! foo {
     // Check for `?`.
diff --git a/tests/ui/macros/macro-at-most-once-rep-2015.rs b/tests/ui/macros/macro-at-most-once-rep-2015.rs
index f68100d4557..8f2531a25ae 100644
--- a/tests/ui/macros/macro-at-most-once-rep-2015.rs
+++ b/tests/ui/macros/macro-at-most-once-rep-2015.rs
@@ -1,6 +1,6 @@
 // Tests that `?` is a Kleene op and not a macro separator in the 2015 edition.
 
-// edition:2015
+//@ edition:2015
 
 macro_rules! foo {
     ($(a)?) => {};
diff --git a/tests/ui/macros/macro-at-most-once-rep-2018-rpass.rs b/tests/ui/macros/macro-at-most-once-rep-2018-rpass.rs
index b37f3853016..0ca7e984c88 100644
--- a/tests/ui/macros/macro-at-most-once-rep-2018-rpass.rs
+++ b/tests/ui/macros/macro-at-most-once-rep-2018-rpass.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![allow(unused_mut)]
 
@@ -6,7 +6,7 @@
 // then that `?` is not interpreted as a separator. In other words, `$(pat)?+` matches `pat +`
 // or `+` but does not match `pat` or `pat ? pat`.
 
-// edition:2018
+//@ edition:2018
 
 macro_rules! foo {
     // Check for `?`.
diff --git a/tests/ui/macros/macro-at-most-once-rep-2018.rs b/tests/ui/macros/macro-at-most-once-rep-2018.rs
index 886a25bbcbc..7f43055ded6 100644
--- a/tests/ui/macros/macro-at-most-once-rep-2018.rs
+++ b/tests/ui/macros/macro-at-most-once-rep-2018.rs
@@ -1,6 +1,6 @@
 // Tests that `?` is a Kleene op and not a macro separator in the 2018 edition.
 
-// edition:2018
+//@ edition:2018
 
 macro_rules! foo {
     ($(a)?) => {};
diff --git a/tests/ui/macros/macro-attribute-expansion.rs b/tests/ui/macros/macro-attribute-expansion.rs
index f01e5c44a67..be682b38865 100644
--- a/tests/ui/macros/macro-attribute-expansion.rs
+++ b/tests/ui/macros/macro-attribute-expansion.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! descriptions {
     ($name:ident is $desc:expr) => {
         // Check that we will correctly expand attributes
diff --git a/tests/ui/macros/macro-attributes.rs b/tests/ui/macros/macro-attributes.rs
index d382e8b7197..57ba0d3bf56 100644
--- a/tests/ui/macros/macro-attributes.rs
+++ b/tests/ui/macros/macro-attributes.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! compiles_fine {
     (#[$at:meta]) => {
diff --git a/tests/ui/macros/macro-block-nonterminal.rs b/tests/ui/macros/macro-block-nonterminal.rs
index a6c9dd6e187..fef4116e3ad 100644
--- a/tests/ui/macros/macro-block-nonterminal.rs
+++ b/tests/ui/macros/macro-block-nonterminal.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! do_block{
     ($val:block) => {$val}
diff --git a/tests/ui/macros/macro-comma-behavior-rpass.rs b/tests/ui/macros/macro-comma-behavior-rpass.rs
index 8406b4e78f6..14ac1dd4212 100644
--- a/tests/ui/macros/macro-comma-behavior-rpass.rs
+++ b/tests/ui/macros/macro-comma-behavior-rpass.rs
@@ -1,5 +1,5 @@
-// run-pass
-// needs-unwind
+//@ run-pass
+//@ needs-unwind
 #![allow(unused_imports)]
 // Ideally, any macro call with a trailing comma should behave
 // identically to a call without the comma.
@@ -11,8 +11,8 @@
 //
 // There is a companion failing test.
 
-// compile-flags: --test -C debug_assertions=yes
-// revisions: std core
+//@ compile-flags: --test -C debug_assertions=yes
+//@ revisions: std core
 
 #![cfg_attr(core, no_std)]
 
diff --git a/tests/ui/macros/macro-comma-behavior.rs b/tests/ui/macros/macro-comma-behavior.rs
index 27d50ff3d57..f00d4d3e858 100644
--- a/tests/ui/macros/macro-comma-behavior.rs
+++ b/tests/ui/macros/macro-comma-behavior.rs
@@ -1,7 +1,7 @@
 // Companion test to the similarly-named file in run-pass.
 
-// compile-flags: -C debug_assertions=yes
-// revisions: std core
+//@ compile-flags: -C debug_assertions=yes
+//@ revisions: std core
 
 #![feature(lang_items)]
 #![cfg_attr(core, no_std)]
diff --git a/tests/ui/macros/macro-comma-support-rpass.rs b/tests/ui/macros/macro-comma-support-rpass.rs
index 2f08ad3c343..724bd5af2dc 100644
--- a/tests/ui/macros/macro-comma-support-rpass.rs
+++ b/tests/ui/macros/macro-comma-support-rpass.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 // This is meant to be a comprehensive test of invocations with/without
 // trailing commas (or other, similar optionally-trailing separators).
 // Every macro is accounted for, even those not tested in this file.
@@ -9,8 +9,8 @@
 // detail.
 
 
-// compile-flags: --test -C debug_assertions=yes
-// revisions: std core
+//@ compile-flags: --test -C debug_assertions=yes
+//@ revisions: std core
 
 #![cfg_attr(core, no_std)]
 
diff --git a/tests/ui/macros/macro-crate-def-only.rs b/tests/ui/macros/macro-crate-def-only.rs
index 514b33e3897..f15394df357 100644
--- a/tests/ui/macros/macro-crate-def-only.rs
+++ b/tests/ui/macros/macro-crate-def-only.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:macro_crate_def_only.rs
+//@ run-pass
+//@ aux-build:macro_crate_def_only.rs
 
 
 #[macro_use] #[no_link]
diff --git a/tests/ui/macros/macro-crate-nonterminal-non-root.rs b/tests/ui/macros/macro-crate-nonterminal-non-root.rs
index 67899556f8a..79d57bb9dac 100644
--- a/tests/ui/macros/macro-crate-nonterminal-non-root.rs
+++ b/tests/ui/macros/macro-crate-nonterminal-non-root.rs
@@ -1,4 +1,4 @@
-// aux-build:macro_crate_nonterminal.rs
+//@ aux-build:macro_crate_nonterminal.rs
 
 mod foo {
     #[macro_use]
diff --git a/tests/ui/macros/macro-crate-nonterminal-renamed.rs b/tests/ui/macros/macro-crate-nonterminal-renamed.rs
index 87bd397f065..53e0b771f4a 100644
--- a/tests/ui/macros/macro-crate-nonterminal-renamed.rs
+++ b/tests/ui/macros/macro-crate-nonterminal-renamed.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:macro_crate_nonterminal.rs
+//@ run-pass
+//@ aux-build:macro_crate_nonterminal.rs
 
 #[macro_use]
 extern crate macro_crate_nonterminal as new_name;
diff --git a/tests/ui/macros/macro-crate-nonterminal.rs b/tests/ui/macros/macro-crate-nonterminal.rs
index 4b1056fc725..f4930e3a55c 100644
--- a/tests/ui/macros/macro-crate-nonterminal.rs
+++ b/tests/ui/macros/macro-crate-nonterminal.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:macro_crate_nonterminal.rs
+//@ run-pass
+//@ aux-build:macro_crate_nonterminal.rs
 
 #[macro_use]
 extern crate macro_crate_nonterminal;
diff --git a/tests/ui/macros/macro-crate-use.rs b/tests/ui/macros/macro-crate-use.rs
index 5c37cac9686..f0a5b957b77 100644
--- a/tests/ui/macros/macro-crate-use.rs
+++ b/tests/ui/macros/macro-crate-use.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 pub fn increment(x: usize) -> usize {
     x + 1
diff --git a/tests/ui/macros/macro-deep_expansion.rs b/tests/ui/macros/macro-deep_expansion.rs
index e13d8e1fc84..1ac466ba1ea 100644
--- a/tests/ui/macros/macro-deep_expansion.rs
+++ b/tests/ui/macros/macro-deep_expansion.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! foo2 {
     () => {
diff --git a/tests/ui/macros/macro-def-site-super.rs b/tests/ui/macros/macro-def-site-super.rs
index 716a8ced5bb..4921cdd5371 100644
--- a/tests/ui/macros/macro-def-site-super.rs
+++ b/tests/ui/macros/macro-def-site-super.rs
@@ -1,7 +1,7 @@
 // `super` in a `macro` refers to the parent module of the macro itself and not its reexport.
 
-// check-pass
-// aux-build:macro-def-site-super.rs
+//@ check-pass
+//@ aux-build:macro-def-site-super.rs
 
 extern crate macro_def_site_super;
 
diff --git a/tests/ui/macros/macro-delimiter-significance.rs b/tests/ui/macros/macro-delimiter-significance.rs
index 89f222b0530..8b532e19196 100644
--- a/tests/ui/macros/macro-delimiter-significance.rs
+++ b/tests/ui/macros/macro-delimiter-significance.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 fn main() {
     vec![1_usize, 2, 3].len();
 }
diff --git a/tests/ui/macros/macro-deprecation.rs b/tests/ui/macros/macro-deprecation.rs
index a7f327cf53b..27560849c68 100644
--- a/tests/ui/macros/macro-deprecation.rs
+++ b/tests/ui/macros/macro-deprecation.rs
@@ -1,5 +1,5 @@
-// check-pass
-// aux-build:deprecated-macros.rs
+//@ check-pass
+//@ aux-build:deprecated-macros.rs
 
 #[macro_use] extern crate deprecated_macros;
 
diff --git a/tests/ui/macros/macro-doc-comments.rs b/tests/ui/macros/macro-doc-comments.rs
index fcc64cc0670..47740e26fb6 100644
--- a/tests/ui/macros/macro-doc-comments.rs
+++ b/tests/ui/macros/macro-doc-comments.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(non_snake_case)]
 
 macro_rules! doc {
diff --git a/tests/ui/macros/macro-doc-escapes.rs b/tests/ui/macros/macro-doc-escapes.rs
index ff5a5793b20..81c8d3383b5 100644
--- a/tests/ui/macros/macro-doc-escapes.rs
+++ b/tests/ui/macros/macro-doc-escapes.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 // When expanding a macro, documentation attributes (including documentation comments) must be
 // passed "as is" without being parsed. Otherwise, some text will be incorrectly interpreted as
 // escape sequences, leading to an ICE.
diff --git a/tests/ui/macros/macro-doc-raw-str-hashes.rs b/tests/ui/macros/macro-doc-raw-str-hashes.rs
index a003bff3c04..fd6f28a0c76 100644
--- a/tests/ui/macros/macro-doc-raw-str-hashes.rs
+++ b/tests/ui/macros/macro-doc-raw-str-hashes.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 // The number of `#`s used to wrap the documentation comment should differ regarding the content.
 //
 // Related issue: #27489
diff --git a/tests/ui/macros/macro-expanded-include/foo/mod.rs b/tests/ui/macros/macro-expanded-include/foo/mod.rs
index 2e4c4c7f8a9..926d84c93e5 100644
--- a/tests/ui/macros/macro-expanded-include/foo/mod.rs
+++ b/tests/ui/macros/macro-expanded-include/foo/mod.rs
@@ -1,4 +1,4 @@
-// ignore-test (auxiliary, used by other tests)
+//@ ignore-test (auxiliary, used by other tests)
 
 macro_rules! m {
     () => { include!("file.txt"); }
diff --git a/tests/ui/macros/macro-expanded-include/test.rs b/tests/ui/macros/macro-expanded-include/test.rs
index 20da58a7e8e..69fcb090959 100644
--- a/tests/ui/macros/macro-expanded-include/test.rs
+++ b/tests/ui/macros/macro-expanded-include/test.rs
@@ -1,5 +1,5 @@
-// needs-asm-support
-// build-pass (FIXME(62277): could be check-pass?)
+//@ needs-asm-support
+//@ build-pass (FIXME(62277): could be check-pass?)
 #![allow(unused)]
 
 #[macro_use]
diff --git a/tests/ui/macros/macro-export-inner-module.rs b/tests/ui/macros/macro-export-inner-module.rs
index 1f23e90b65c..6eccc90dc67 100644
--- a/tests/ui/macros/macro-export-inner-module.rs
+++ b/tests/ui/macros/macro-export-inner-module.rs
@@ -1,5 +1,5 @@
-// run-pass
-//aux-build:macro_export_inner_module.rs
+//@ run-pass
+//@aux-build:macro_export_inner_module.rs
 
 #[macro_use] #[no_link]
 extern crate macro_export_inner_module;
diff --git a/tests/ui/macros/macro-first-set.rs b/tests/ui/macros/macro-first-set.rs
index eeb1ddd84ae..0f8f26b88c2 100644
--- a/tests/ui/macros/macro-first-set.rs
+++ b/tests/ui/macros/macro-first-set.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_macro_rules)]
 
 //{{{ issue 40569 ==============================================================
diff --git a/tests/ui/macros/macro-follow-rpass.rs b/tests/ui/macros/macro-follow-rpass.rs
index ca93655631f..83508879225 100644
--- a/tests/ui/macros/macro-follow-rpass.rs
+++ b/tests/ui/macros/macro-follow-rpass.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_macros)]
 // Check the macro follow sets (see corresponding cfail test).
 
diff --git a/tests/ui/macros/macro-followed-by-seq.rs b/tests/ui/macros/macro-followed-by-seq.rs
index 71d59d8d31b..f4756d42088 100644
--- a/tests/ui/macros/macro-followed-by-seq.rs
+++ b/tests/ui/macros/macro-followed-by-seq.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_macros)]
 // Regression test for issue #25436: check that things which can be
 // followed by any token also permit X* to come afterwards.
diff --git a/tests/ui/macros/macro-in-expression-context.fixed b/tests/ui/macros/macro-in-expression-context.fixed
index f22caf2793f..f4d04ca37bf 100644
--- a/tests/ui/macros/macro-in-expression-context.fixed
+++ b/tests/ui/macros/macro-in-expression-context.fixed
@@ -1,4 +1,4 @@
-// run-rustfix
+//@ run-rustfix
 
 macro_rules! foo {
     () => {
diff --git a/tests/ui/macros/macro-in-expression-context.rs b/tests/ui/macros/macro-in-expression-context.rs
index 1a056e582ff..8921a056377 100644
--- a/tests/ui/macros/macro-in-expression-context.rs
+++ b/tests/ui/macros/macro-in-expression-context.rs
@@ -1,4 +1,4 @@
-// run-rustfix
+//@ run-rustfix
 
 macro_rules! foo {
     () => {
diff --git a/tests/ui/macros/macro-in-fn.rs b/tests/ui/macros/macro-in-fn.rs
index d354fe4a7db..2ffa6b2e457 100644
--- a/tests/ui/macros/macro-in-fn.rs
+++ b/tests/ui/macros/macro-in-fn.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![feature(decl_macro)]
 
 pub fn moo() {
diff --git a/tests/ui/macros/macro-include-items.rs b/tests/ui/macros/macro-include-items.rs
index ad6f04009b6..9423d2c4949 100644
--- a/tests/ui/macros/macro-include-items.rs
+++ b/tests/ui/macros/macro-include-items.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(non_camel_case_types)]
 
 
diff --git a/tests/ui/macros/macro-invocation-in-count-expr-fixed-array-type.rs b/tests/ui/macros/macro-invocation-in-count-expr-fixed-array-type.rs
index 8f9dcb94794..08fe2c92830 100644
--- a/tests/ui/macros/macro-invocation-in-count-expr-fixed-array-type.rs
+++ b/tests/ui/macros/macro-invocation-in-count-expr-fixed-array-type.rs
@@ -1,5 +1,5 @@
-// run-pass
-// pretty-expanded FIXME #23616
+//@ run-pass
+//@ pretty-expanded FIXME #23616
 
 macro_rules! four {
     () => (4)
diff --git a/tests/ui/macros/macro-lifetime-used-with-bound.rs b/tests/ui/macros/macro-lifetime-used-with-bound.rs
index ea3f74c9ada..438301ecbb9 100644
--- a/tests/ui/macros/macro-lifetime-used-with-bound.rs
+++ b/tests/ui/macros/macro-lifetime-used-with-bound.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_variables)]
 macro_rules! foo {
     ($l:lifetime, $l2:lifetime) => {
diff --git a/tests/ui/macros/macro-lifetime-used-with-labels.rs b/tests/ui/macros/macro-lifetime-used-with-labels.rs
index 59017da3b69..3b51b8050b3 100644
--- a/tests/ui/macros/macro-lifetime-used-with-labels.rs
+++ b/tests/ui/macros/macro-lifetime-used-with-labels.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(stable_features)]
 #![allow(unused_labels)]
 #![allow(unreachable_code)]
diff --git a/tests/ui/macros/macro-lifetime-used-with-static.rs b/tests/ui/macros/macro-lifetime-used-with-static.rs
index 8552c4b8163..a1faa512514 100644
--- a/tests/ui/macros/macro-lifetime-used-with-static.rs
+++ b/tests/ui/macros/macro-lifetime-used-with-static.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! foo {
     ($l:lifetime) => {
         fn f(arg: &$l str) -> &$l str {
diff --git a/tests/ui/macros/macro-lifetime.rs b/tests/ui/macros/macro-lifetime.rs
index 5931fe00907..9690f40b2c3 100644
--- a/tests/ui/macros/macro-lifetime.rs
+++ b/tests/ui/macros/macro-lifetime.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! foo {
     ($l:lifetime) => {
         fn f<$l>(arg: &$l str) -> &$l str {
diff --git a/tests/ui/macros/macro-literal.rs b/tests/ui/macros/macro-literal.rs
index 3c2e71f9c43..a3bdc6a2bf7 100644
--- a/tests/ui/macros/macro-literal.rs
+++ b/tests/ui/macros/macro-literal.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! mtester {
     ($l:literal) => {
diff --git a/tests/ui/macros/macro-meta-items-modern.rs b/tests/ui/macros/macro-meta-items-modern.rs
index bc6938d4a6c..c519403c9c1 100644
--- a/tests/ui/macros/macro-meta-items-modern.rs
+++ b/tests/ui/macros/macro-meta-items-modern.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 macro_rules! check { ($meta:meta) => () }
 
diff --git a/tests/ui/macros/macro-meta-items.rs b/tests/ui/macros/macro-meta-items.rs
index 4cbc252aebf..10c57fba244 100644
--- a/tests/ui/macros/macro-meta-items.rs
+++ b/tests/ui/macros/macro-meta-items.rs
@@ -1,6 +1,6 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
-// compile-flags: --cfg foo
+//@ compile-flags: --cfg foo
 
 macro_rules! compiles_fine {
     ($at:meta) => {
diff --git a/tests/ui/macros/macro-method-issue-4621.rs b/tests/ui/macros/macro-method-issue-4621.rs
index 342fad5f62e..a35eeb257df 100644
--- a/tests/ui/macros/macro-method-issue-4621.rs
+++ b/tests/ui/macros/macro-method-issue-4621.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 struct A;
 
diff --git a/tests/ui/macros/macro-missing-fragment-deduplication.rs b/tests/ui/macros/macro-missing-fragment-deduplication.rs
index c1e6ba74647..b77c51e055b 100644
--- a/tests/ui/macros/macro-missing-fragment-deduplication.rs
+++ b/tests/ui/macros/macro-missing-fragment-deduplication.rs
@@ -1,4 +1,4 @@
-// compile-flags: -Zdeduplicate-diagnostics=yes
+//@ compile-flags: -Zdeduplicate-diagnostics=yes
 
 macro_rules! m {
     ($name) => {}
diff --git a/tests/ui/macros/macro-multiple-items.rs b/tests/ui/macros/macro-multiple-items.rs
index 3b6dfd9bc5e..c746d1bc518 100644
--- a/tests/ui/macros/macro-multiple-items.rs
+++ b/tests/ui/macros/macro-multiple-items.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! make_foo {
     () => (
         struct Foo;
diff --git a/tests/ui/macros/macro-named-default.rs b/tests/ui/macros/macro-named-default.rs
index 9b6cd191640..bca0e005083 100644
--- a/tests/ui/macros/macro-named-default.rs
+++ b/tests/ui/macros/macro-named-default.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! default {
     ($($x:tt)*) => { $($x)* }
 }
diff --git a/tests/ui/macros/macro-nested_definition_issue-31946.rs b/tests/ui/macros/macro-nested_definition_issue-31946.rs
index a83c5b2e44f..27e803ed61b 100644
--- a/tests/ui/macros/macro-nested_definition_issue-31946.rs
+++ b/tests/ui/macros/macro-nested_definition_issue-31946.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 fn main() {
     println!("{}", {
         macro_rules! foo {
diff --git a/tests/ui/macros/macro-nested_expr.rs b/tests/ui/macros/macro-nested_expr.rs
index f1433cbf4f9..291ae58c243 100644
--- a/tests/ui/macros/macro-nested_expr.rs
+++ b/tests/ui/macros/macro-nested_expr.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 // #42164
 
 #![feature(decl_macro)]
diff --git a/tests/ui/macros/macro-nested_stmt_macros.rs b/tests/ui/macros/macro-nested_stmt_macros.rs
index 5d4758a0c7b..054aa3cb293 100644
--- a/tests/ui/macros/macro-nested_stmt_macros.rs
+++ b/tests/ui/macros/macro-nested_stmt_macros.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! foo {
     () => {
         struct Bar;
diff --git a/tests/ui/macros/macro-nt-list.rs b/tests/ui/macros/macro-nt-list.rs
index 36aa74f0825..7a6bc6a8d73 100644
--- a/tests/ui/macros/macro-nt-list.rs
+++ b/tests/ui/macros/macro-nt-list.rs
@@ -1,5 +1,5 @@
-// run-pass
-// pretty-expanded FIXME #23616
+//@ run-pass
+//@ pretty-expanded FIXME #23616
 
 macro_rules! list {
     ( ($($id:ident),*) ) => (());
diff --git a/tests/ui/macros/macro-of-higher-order.rs b/tests/ui/macros/macro-of-higher-order.rs
index ec551d6cdbc..4b96b5b7765 100644
--- a/tests/ui/macros/macro-of-higher-order.rs
+++ b/tests/ui/macros/macro-of-higher-order.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! higher_order {
     (subst $lhs:tt => $rhs:tt) => ({
diff --git a/tests/ui/macros/macro-or-patterns-back-compat.fixed b/tests/ui/macros/macro-or-patterns-back-compat.fixed
index b0d56e9bb1e..c16190c399a 100644
--- a/tests/ui/macros/macro-or-patterns-back-compat.fixed
+++ b/tests/ui/macros/macro-or-patterns-back-compat.fixed
@@ -1,5 +1,5 @@
-// run-rustfix
-// aux-build:or-pattern.rs
+//@ run-rustfix
+//@ aux-build:or-pattern.rs
 
 #![deny(rust_2021_incompatible_or_patterns)]
 #![allow(unused_macros)]
diff --git a/tests/ui/macros/macro-or-patterns-back-compat.rs b/tests/ui/macros/macro-or-patterns-back-compat.rs
index 9e24b5106b8..ef0ffb99c1a 100644
--- a/tests/ui/macros/macro-or-patterns-back-compat.rs
+++ b/tests/ui/macros/macro-or-patterns-back-compat.rs
@@ -1,5 +1,5 @@
-// run-rustfix
-// aux-build:or-pattern.rs
+//@ run-rustfix
+//@ aux-build:or-pattern.rs
 
 #![deny(rust_2021_incompatible_or_patterns)]
 #![allow(unused_macros)]
diff --git a/tests/ui/macros/macro-pat-follow-2018.rs b/tests/ui/macros/macro-pat-follow-2018.rs
index ce2911de986..6dcb841fec1 100644
--- a/tests/ui/macros/macro-pat-follow-2018.rs
+++ b/tests/ui/macros/macro-pat-follow-2018.rs
@@ -1,5 +1,5 @@
-// run-pass
-// edition:2018
+//@ run-pass
+//@ edition:2018
 
 macro_rules! pat_bar {
     ($p:pat | $p2:pat) => {{
diff --git a/tests/ui/macros/macro-pat-follow.rs b/tests/ui/macros/macro-pat-follow.rs
index 8e02789fdd8..830cc7c0860 100644
--- a/tests/ui/macros/macro-pat-follow.rs
+++ b/tests/ui/macros/macro-pat-follow.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! pat_in {
     ($p:pat in $e:expr) => {{
         let mut iter = $e.into_iter();
diff --git a/tests/ui/macros/macro-pat-neg-lit.rs b/tests/ui/macros/macro-pat-neg-lit.rs
index 79c68fd2541..072d079fecb 100644
--- a/tests/ui/macros/macro-pat-neg-lit.rs
+++ b/tests/ui/macros/macro-pat-neg-lit.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! enum_number {
     ($name:ident { $($variant:ident = $value:expr, )* }) => {
         enum $name {
diff --git a/tests/ui/macros/macro-pat-pattern-followed-by-or-in-2021.rs b/tests/ui/macros/macro-pat-pattern-followed-by-or-in-2021.rs
index f5a97eca21b..154d6e339a7 100644
--- a/tests/ui/macros/macro-pat-pattern-followed-by-or-in-2021.rs
+++ b/tests/ui/macros/macro-pat-pattern-followed-by-or-in-2021.rs
@@ -1,4 +1,4 @@
-// edition:2021
+//@ edition:2021
 #![allow(unused_macros)]
 macro_rules! foo { ($x:pat | $y:pat) => {} } //~ ERROR `$x:pat` is followed by `|`, which is not allowed for `pat` fragments
 macro_rules! bar { ($($x:pat)+ | $($y:pat)+) => {} } //~ ERROR `$x:pat` is followed by `|`, which is not allowed for `pat` fragments
diff --git a/tests/ui/macros/macro-pat-pattern-followed-by-or.rs b/tests/ui/macros/macro-pat-pattern-followed-by-or.rs
index 54bd13d7ebc..d584e919a2a 100644
--- a/tests/ui/macros/macro-pat-pattern-followed-by-or.rs
+++ b/tests/ui/macros/macro-pat-pattern-followed-by-or.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_macros)]
 macro_rules! foo { ($x:pat | $y:pat) => {} } // should be ok
 macro_rules! bar { ($($x:pat)+ | $($y:pat)+) => {} } // should be ok
diff --git a/tests/ui/macros/macro-pat.rs b/tests/ui/macros/macro-pat.rs
index baf816e53ea..5c826f84be6 100644
--- a/tests/ui/macros/macro-pat.rs
+++ b/tests/ui/macros/macro-pat.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 macro_rules! mypat {
     () => (
diff --git a/tests/ui/macros/macro-pat2021-pattern-followed-by-or.rs b/tests/ui/macros/macro-pat2021-pattern-followed-by-or.rs
index b4be03aaddd..c7dc5d53a98 100644
--- a/tests/ui/macros/macro-pat2021-pattern-followed-by-or.rs
+++ b/tests/ui/macros/macro-pat2021-pattern-followed-by-or.rs
@@ -1,4 +1,4 @@
-// edition:2021
+//@ edition:2021
 
 #![allow(unused_macros)]
 macro_rules! foo { ($x:pat | $y:pat) => {} } //~ ERROR `$x:pat` is followed by `|`, which is not allowed for `pat` fragments
diff --git a/tests/ui/macros/macro-path-prelude-pass.rs b/tests/ui/macros/macro-path-prelude-pass.rs
index 7cf346286ea..3499a80e956 100644
--- a/tests/ui/macros/macro-path-prelude-pass.rs
+++ b/tests/ui/macros/macro-path-prelude-pass.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 mod m {
     fn check() {
diff --git a/tests/ui/macros/macro-path-prelude-shadowing.rs b/tests/ui/macros/macro-path-prelude-shadowing.rs
index d7181200085..f18d4db3ad4 100644
--- a/tests/ui/macros/macro-path-prelude-shadowing.rs
+++ b/tests/ui/macros/macro-path-prelude-shadowing.rs
@@ -1,4 +1,4 @@
-// aux-build:macro-in-other-crate.rs
+//@ aux-build:macro-in-other-crate.rs
 
 #![feature(decl_macro)]
 
diff --git a/tests/ui/macros/macro-path.rs b/tests/ui/macros/macro-path.rs
index 6c011c897da..f8c45439d11 100644
--- a/tests/ui/macros/macro-path.rs
+++ b/tests/ui/macros/macro-path.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(non_camel_case_types)]
 
 
diff --git a/tests/ui/macros/macro-pub-matcher.rs b/tests/ui/macros/macro-pub-matcher.rs
index 7b02a70be09..538f55cc98d 100644
--- a/tests/ui/macros/macro-pub-matcher.rs
+++ b/tests/ui/macros/macro-pub-matcher.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code, unused_imports, unused_macro_rules)]
 
 /**
diff --git a/tests/ui/macros/macro-quote-test.rs b/tests/ui/macros/macro-quote-test.rs
index 2ba61acadcb..dd7b10f6322 100644
--- a/tests/ui/macros/macro-quote-test.rs
+++ b/tests/ui/macros/macro-quote-test.rs
@@ -1,7 +1,7 @@
 // Test that a macro can emit delimiters with nothing inside - `()`, `{}`
 
-// run-pass
-// aux-build:hello_macro.rs
+//@ run-pass
+//@ aux-build:hello_macro.rs
 
 extern crate hello_macro;
 
diff --git a/tests/ui/macros/macro-reexport-removed.rs b/tests/ui/macros/macro-reexport-removed.rs
index 874c94d08e0..4a054686d77 100644
--- a/tests/ui/macros/macro-reexport-removed.rs
+++ b/tests/ui/macros/macro-reexport-removed.rs
@@ -1,4 +1,4 @@
-// aux-build:two_macros.rs
+//@ aux-build:two_macros.rs
 
 #![feature(macro_reexport)] //~ ERROR feature has been removed
 
diff --git a/tests/ui/macros/macro-seq-followed-by-seq.rs b/tests/ui/macros/macro-seq-followed-by-seq.rs
index 8f0f4fd4a0d..3661744284e 100644
--- a/tests/ui/macros/macro-seq-followed-by-seq.rs
+++ b/tests/ui/macros/macro-seq-followed-by-seq.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 // Test of allowing two sequences repetitions in a row,
 // functionality added as byproduct of RFC amendment #1384
 //   https://github.com/rust-lang/rfcs/pull/1384
diff --git a/tests/ui/macros/macro-shadowing-relaxed.rs b/tests/ui/macros/macro-shadowing-relaxed.rs
index b2a639218b9..bbb1054421d 100644
--- a/tests/ui/macros/macro-shadowing-relaxed.rs
+++ b/tests/ui/macros/macro-shadowing-relaxed.rs
@@ -1,5 +1,5 @@
-// build-pass (FIXME(62277): could be check-pass?)
-// aux-build:macro-in-other-crate.rs
+//@ build-pass (FIXME(62277): could be check-pass?)
+//@ aux-build:macro-in-other-crate.rs
 
 #![feature(decl_macro)]
 
diff --git a/tests/ui/macros/macro-shadowing.rs b/tests/ui/macros/macro-shadowing.rs
index 7f956dd7d10..710e83dfb3b 100644
--- a/tests/ui/macros/macro-shadowing.rs
+++ b/tests/ui/macros/macro-shadowing.rs
@@ -1,4 +1,4 @@
-// aux-build:two_macros.rs
+//@ aux-build:two_macros.rs
 
 #![allow(unused_macros)]
 
diff --git a/tests/ui/macros/macro-stability-rpass.rs b/tests/ui/macros/macro-stability-rpass.rs
index 2d02b95288d..25a69a5fc4c 100644
--- a/tests/ui/macros/macro-stability-rpass.rs
+++ b/tests/ui/macros/macro-stability-rpass.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:unstable-macros.rs
+//@ run-pass
+//@ aux-build:unstable-macros.rs
 
 #![unstable(feature = "one_two_three_testing", issue = "none")]
 #![feature(staged_api, unstable_macros, local_unstable)]
diff --git a/tests/ui/macros/macro-stability.rs b/tests/ui/macros/macro-stability.rs
index ed7618a672b..a909b14f47b 100644
--- a/tests/ui/macros/macro-stability.rs
+++ b/tests/ui/macros/macro-stability.rs
@@ -1,4 +1,4 @@
-// aux-build:unstable-macros.rs
+//@ aux-build:unstable-macros.rs
 
 #![feature(decl_macro)]
 #![feature(staged_api)]
diff --git a/tests/ui/macros/macro-stmt-matchers.rs b/tests/ui/macros/macro-stmt-matchers.rs
index a643e50e995..2fa20972f2a 100644
--- a/tests/ui/macros/macro-stmt-matchers.rs
+++ b/tests/ui/macros/macro-stmt-matchers.rs
@@ -1,4 +1,4 @@
-// build-pass (FIXME(62277): could be check-pass?)
+//@ build-pass (FIXME(62277): could be check-pass?)
 
 
 fn main() {
diff --git a/tests/ui/macros/macro-stmt.rs b/tests/ui/macros/macro-stmt.rs
index c9a0b879a0f..fcbd50687a7 100644
--- a/tests/ui/macros/macro-stmt.rs
+++ b/tests/ui/macros/macro-stmt.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! myfn {
     ( $f:ident, ( $( $x:ident ),* ), $body:block ) => (
         fn $f( $( $x : isize),* ) -> isize $body
diff --git a/tests/ui/macros/macro-stmt_macro_in_expr_macro.rs b/tests/ui/macros/macro-stmt_macro_in_expr_macro.rs
index 528d0b28bf6..8b634b4aa54 100644
--- a/tests/ui/macros/macro-stmt_macro_in_expr_macro.rs
+++ b/tests/ui/macros/macro-stmt_macro_in_expr_macro.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
 macro_rules! foo {
     () => {
diff --git a/tests/ui/macros/macro-tt-followed-by-seq.rs b/tests/ui/macros/macro-tt-followed-by-seq.rs
index 67238df8524..b4ab486b236 100644
--- a/tests/ui/macros/macro-tt-followed-by-seq.rs
+++ b/tests/ui/macros/macro-tt-followed-by-seq.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 // Regression test for issue #25436: permit token-trees to be followed
 // by sequences, enabling more general parsing.
 
diff --git a/tests/ui/macros/macro-tt-matchers.rs b/tests/ui/macros/macro-tt-matchers.rs
index 2ee41b0880e..004be966cb4 100644
--- a/tests/ui/macros/macro-tt-matchers.rs
+++ b/tests/ui/macros/macro-tt-matchers.rs
@@ -1,4 +1,4 @@
-// build-pass (FIXME(62277): could be check-pass?)
+//@ build-pass (FIXME(62277): could be check-pass?)
 #![allow(dead_code)]
 
 macro_rules! foo {
diff --git a/tests/ui/macros/macro-use-all-and-none.rs b/tests/ui/macros/macro-use-all-and-none.rs
index c8bd44008b0..f1acff48403 100644
--- a/tests/ui/macros/macro-use-all-and-none.rs
+++ b/tests/ui/macros/macro-use-all-and-none.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:two_macros-rpass.rs
+//@ run-pass
+//@ aux-build:two_macros-rpass.rs
 
 #![warn(unused_attributes)]
 
diff --git a/tests/ui/macros/macro-use-all.rs b/tests/ui/macros/macro-use-all.rs
index 48c7b77e579..a7fd3dfa5ce 100644
--- a/tests/ui/macros/macro-use-all.rs
+++ b/tests/ui/macros/macro-use-all.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:two_macros.rs
+//@ run-pass
+//@ aux-build:two_macros.rs
 
 #[macro_use]
 extern crate two_macros;
diff --git a/tests/ui/macros/macro-use-both.rs b/tests/ui/macros/macro-use-both.rs
index ed5d1312f96..e49f346c8e3 100644
--- a/tests/ui/macros/macro-use-both.rs
+++ b/tests/ui/macros/macro-use-both.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:two_macros.rs
+//@ run-pass
+//@ aux-build:two_macros.rs
 
 #[macro_use(macro_one, macro_two)]
 extern crate two_macros;
diff --git a/tests/ui/macros/macro-use-one.rs b/tests/ui/macros/macro-use-one.rs
index f74795e68dc..2b048651ccc 100644
--- a/tests/ui/macros/macro-use-one.rs
+++ b/tests/ui/macros/macro-use-one.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:two_macros.rs
+//@ run-pass
+//@ aux-build:two_macros.rs
 
 #[macro_use(macro_two)]
 extern crate two_macros;
diff --git a/tests/ui/macros/macro-use-scope.rs b/tests/ui/macros/macro-use-scope.rs
index 5e58fc9c1ed..d078caa7fd1 100644
--- a/tests/ui/macros/macro-use-scope.rs
+++ b/tests/ui/macros/macro-use-scope.rs
@@ -1,6 +1,6 @@
-// aux-build:two_macros.rs
+//@ aux-build:two_macros.rs
 
-// build-pass (FIXME(62277): could be check-pass?)
+//@ build-pass (FIXME(62277): could be check-pass?)
 #![allow(unused)]
 
 fn f() {
diff --git a/tests/ui/macros/macro-use-undef.rs b/tests/ui/macros/macro-use-undef.rs
index ae3054e7b82..8e903927565 100644
--- a/tests/ui/macros/macro-use-undef.rs
+++ b/tests/ui/macros/macro-use-undef.rs
@@ -1,4 +1,4 @@
-// aux-build:two_macros.rs
+//@ aux-build:two_macros.rs
 
 #[macro_use(macro_two, no_way)] //~ ERROR imported macro not found
 extern crate two_macros;
diff --git a/tests/ui/macros/macro-use-wrong-name.rs b/tests/ui/macros/macro-use-wrong-name.rs
index d142b580003..b3c11e77d3b 100644
--- a/tests/ui/macros/macro-use-wrong-name.rs
+++ b/tests/ui/macros/macro-use-wrong-name.rs
@@ -1,4 +1,4 @@
-// aux-build:two_macros.rs
+//@ aux-build:two_macros.rs
 
 #[macro_use(macro_one)]
 extern crate two_macros;
diff --git a/tests/ui/macros/macro-with-attrs1.rs b/tests/ui/macros/macro-with-attrs1.rs
index 4e943b224cd..cfd5691fe94 100644
--- a/tests/ui/macros/macro-with-attrs1.rs
+++ b/tests/ui/macros/macro-with-attrs1.rs
@@ -1,5 +1,5 @@
-// run-pass
-// compile-flags: --cfg foo
+//@ run-pass
+//@ compile-flags: --cfg foo
 
 
 #[cfg(foo)]
diff --git a/tests/ui/macros/macro-with-attrs2.rs b/tests/ui/macros/macro-with-attrs2.rs
index 78c40810207..3ff26025206 100644
--- a/tests/ui/macros/macro-with-attrs2.rs
+++ b/tests/ui/macros/macro-with-attrs2.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #[cfg(foo)]
 macro_rules! foo { () => (1) }
diff --git a/tests/ui/macros/macro-with-braces-in-expr-position.rs b/tests/ui/macros/macro-with-braces-in-expr-position.rs
index f7d87434ded..febfa7241f2 100644
--- a/tests/ui/macros/macro-with-braces-in-expr-position.rs
+++ b/tests/ui/macros/macro-with-braces-in-expr-position.rs
@@ -1,6 +1,6 @@
-// run-pass
+//@ run-pass
 #![allow(unused_must_use)]
-// ignore-emscripten no threads support
+//@ ignore-emscripten no threads support
 
 use std::thread;
 
diff --git a/tests/ui/macros/macro_with_super_2.rs b/tests/ui/macros/macro_with_super_2.rs
index 2901a74f612..5353405ca57 100644
--- a/tests/ui/macros/macro_with_super_2.rs
+++ b/tests/ui/macros/macro_with_super_2.rs
@@ -1,7 +1,7 @@
-// run-pass
-// aux-build:macro_with_super_1.rs
+//@ run-pass
+//@ aux-build:macro_with_super_1.rs
 
-// pretty-expanded FIXME #23616
+//@ pretty-expanded FIXME #23616
 
 #[macro_use]
 extern crate macro_with_super_1;
diff --git a/tests/ui/macros/macros-in-extern.rs b/tests/ui/macros/macros-in-extern.rs
index 568ae3a8539..363ff5df64a 100644
--- a/tests/ui/macros/macros-in-extern.rs
+++ b/tests/ui/macros/macros-in-extern.rs
@@ -1,5 +1,5 @@
-// run-pass
-// ignore-wasm32
+//@ run-pass
+//@ ignore-wasm32
 
 #![feature(decl_macro)]
 
diff --git a/tests/ui/macros/macros-nonfatal-errors.rs b/tests/ui/macros/macros-nonfatal-errors.rs
index ab14c35893d..20e6d705003 100644
--- a/tests/ui/macros/macros-nonfatal-errors.rs
+++ b/tests/ui/macros/macros-nonfatal-errors.rs
@@ -1,4 +1,4 @@
-// normalize-stderr-test: "existed:.*\(" -> "existed: $$FILE_NOT_FOUND_MSG ("
+//@ normalize-stderr-test: "existed:.*\(" -> "existed: $$FILE_NOT_FOUND_MSG ("
 
 // test that errors in a (selection) of macros don't kill compilation
 // immediately, so that we get more errors listed at a time.
diff --git a/tests/ui/macros/meta-variable-misuse.rs b/tests/ui/macros/meta-variable-misuse.rs
index 99a2f940176..da733e7b74c 100644
--- a/tests/ui/macros/meta-variable-misuse.rs
+++ b/tests/ui/macros/meta-variable-misuse.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![deny(meta_variable_misuse)]
 
 macro_rules! foo {
diff --git a/tests/ui/macros/missing-bang-in-decl.fixed b/tests/ui/macros/missing-bang-in-decl.fixed
index b1aa3298bfa..b7e49244450 100644
--- a/tests/ui/macros/missing-bang-in-decl.fixed
+++ b/tests/ui/macros/missing-bang-in-decl.fixed
@@ -1,4 +1,4 @@
-// run-rustfix
+//@ run-rustfix
 
 #![allow(unused_macros)]
 
diff --git a/tests/ui/macros/missing-bang-in-decl.rs b/tests/ui/macros/missing-bang-in-decl.rs
index 8393f15fc52..452363997e7 100644
--- a/tests/ui/macros/missing-bang-in-decl.rs
+++ b/tests/ui/macros/missing-bang-in-decl.rs
@@ -1,4 +1,4 @@
-// run-rustfix
+//@ run-rustfix
 
 #![allow(unused_macros)]
 
diff --git a/tests/ui/macros/must-use-in-macro-55516.rs b/tests/ui/macros/must-use-in-macro-55516.rs
index e7c3462867b..21f417d0e63 100644
--- a/tests/ui/macros/must-use-in-macro-55516.rs
+++ b/tests/ui/macros/must-use-in-macro-55516.rs
@@ -1,5 +1,5 @@
-// check-pass
-// compile-flags: -Wunused
+//@ check-pass
+//@ compile-flags: -Wunused
 
 // make sure write!() can't hide its unused Result
 
diff --git a/tests/ui/macros/nested-use-as.rs b/tests/ui/macros/nested-use-as.rs
index 21aa81e8092..b4ce5328e62 100644
--- a/tests/ui/macros/nested-use-as.rs
+++ b/tests/ui/macros/nested-use-as.rs
@@ -1,5 +1,5 @@
-// check-pass
-// edition:2018
+//@ check-pass
+//@ edition:2018
 // issue: https://github.com/rust-lang/rust/issues/97534
 
 macro_rules! m {
diff --git a/tests/ui/macros/no-std-macros.rs b/tests/ui/macros/no-std-macros.rs
index ada643c7ac0..be0f5921598 100644
--- a/tests/ui/macros/no-std-macros.rs
+++ b/tests/ui/macros/no-std-macros.rs
@@ -1,5 +1,5 @@
-// compile-flags: --crate-type=lib
-// check-pass
+//@ compile-flags: --crate-type=lib
+//@ check-pass
 // issue #55482
 #![no_std]
 
diff --git a/tests/ui/macros/none-delim-lookahead.rs b/tests/ui/macros/none-delim-lookahead.rs
index bf4fddea14b..b604339be9b 100644
--- a/tests/ui/macros/none-delim-lookahead.rs
+++ b/tests/ui/macros/none-delim-lookahead.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 macro_rules! make_struct {
     ($name:ident) => {
diff --git a/tests/ui/macros/not-utf8.rs b/tests/ui/macros/not-utf8.rs
index 1cb1fdcb8c9..3c433a4e27c 100644
--- a/tests/ui/macros/not-utf8.rs
+++ b/tests/ui/macros/not-utf8.rs
@@ -1,4 +1,4 @@
-// error-pattern: did not contain valid UTF-8
+//@ error-pattern: did not contain valid UTF-8
 
 fn foo() {
     include!("not-utf8.bin")
diff --git a/tests/ui/macros/out-of-order-shadowing.rs b/tests/ui/macros/out-of-order-shadowing.rs
index a0d1a973764..3d26d4f2c91 100644
--- a/tests/ui/macros/out-of-order-shadowing.rs
+++ b/tests/ui/macros/out-of-order-shadowing.rs
@@ -1,4 +1,4 @@
-// aux-build:define-macro.rs
+//@ aux-build:define-macro.rs
 
 macro_rules! bar { () => {} }
 define_macro!(bar);
diff --git a/tests/ui/macros/panic-temporaries-2018.rs b/tests/ui/macros/panic-temporaries-2018.rs
index d914df38062..aa7a7453aa7 100644
--- a/tests/ui/macros/panic-temporaries-2018.rs
+++ b/tests/ui/macros/panic-temporaries-2018.rs
@@ -1,5 +1,5 @@
-// check-pass
-// edition:2018
+//@ check-pass
+//@ edition:2018
 
 #![allow(non_fmt_panics, unreachable_code)]
 
diff --git a/tests/ui/macros/panic-temporaries.rs b/tests/ui/macros/panic-temporaries.rs
index db65601fb73..6a0d71c9797 100644
--- a/tests/ui/macros/panic-temporaries.rs
+++ b/tests/ui/macros/panic-temporaries.rs
@@ -1,5 +1,5 @@
-// check-pass
-// edition:2021
+//@ check-pass
+//@ edition:2021
 
 #![allow(unreachable_code)]
 
diff --git a/tests/ui/macros/parse-complex-macro-invoc-op.rs b/tests/ui/macros/parse-complex-macro-invoc-op.rs
index 10810388d20..bbb9b0270f2 100644
--- a/tests/ui/macros/parse-complex-macro-invoc-op.rs
+++ b/tests/ui/macros/parse-complex-macro-invoc-op.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_must_use)]
 #![allow(dead_code)]
 #![allow(unused_assignments)]
@@ -8,7 +8,7 @@
 
 // Test parsing binary operators after macro invocations.
 
-// pretty-expanded FIXME #23616
+//@ pretty-expanded FIXME #23616
 
 #![feature(macro_rules)]
 
diff --git a/tests/ui/macros/paths-in-macro-invocations.rs b/tests/ui/macros/paths-in-macro-invocations.rs
index 622818a926f..c1b7789d6de 100644
--- a/tests/ui/macros/paths-in-macro-invocations.rs
+++ b/tests/ui/macros/paths-in-macro-invocations.rs
@@ -1,6 +1,6 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
-// aux-build:two_macros-rpass.rs
+//@ aux-build:two_macros-rpass.rs
 
 extern crate two_macros_rpass as two_macros;
 
diff --git a/tests/ui/macros/proc_macro.rs b/tests/ui/macros/proc_macro.rs
index 66f9cdc5567..ce2b041c26e 100644
--- a/tests/ui/macros/proc_macro.rs
+++ b/tests/ui/macros/proc_macro.rs
@@ -1,6 +1,6 @@
-// run-pass
-// aux-build:proc_macro_def.rs
-// ignore-cross-compile
+//@ run-pass
+//@ aux-build:proc_macro_def.rs
+//@ ignore-cross-compile
 
 extern crate proc_macro_def;
 
diff --git a/tests/ui/macros/pub-item-inside-macro.rs b/tests/ui/macros/pub-item-inside-macro.rs
index d07681453a2..b05d8539d58 100644
--- a/tests/ui/macros/pub-item-inside-macro.rs
+++ b/tests/ui/macros/pub-item-inside-macro.rs
@@ -1,7 +1,7 @@
-// run-pass
+//@ run-pass
 // Issue #14660
 
-// pretty-expanded FIXME #23616
+//@ pretty-expanded FIXME #23616
 
 mod bleh {
     macro_rules! foo {
diff --git a/tests/ui/macros/pub-method-inside-macro.rs b/tests/ui/macros/pub-method-inside-macro.rs
index bc918c7a4dc..c4f9acc637d 100644
--- a/tests/ui/macros/pub-method-inside-macro.rs
+++ b/tests/ui/macros/pub-method-inside-macro.rs
@@ -1,7 +1,7 @@
-// run-pass
+//@ run-pass
 // Issue #17436
 
-// pretty-expanded FIXME #23616
+//@ pretty-expanded FIXME #23616
 
 mod bleh {
     macro_rules! foo {
diff --git a/tests/ui/macros/recovery-forbidden.rs b/tests/ui/macros/recovery-forbidden.rs
index 5dd2619330c..dc50d8b9dd8 100644
--- a/tests/ui/macros/recovery-forbidden.rs
+++ b/tests/ui/macros/recovery-forbidden.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 macro_rules! dont_recover_here {
     ($e:expr) => {
diff --git a/tests/ui/macros/rfc-2011-nicer-assert-messages/all-expr-kinds.rs b/tests/ui/macros/rfc-2011-nicer-assert-messages/all-expr-kinds.rs
index b1db05afd08..de7dbb9052e 100644
--- a/tests/ui/macros/rfc-2011-nicer-assert-messages/all-expr-kinds.rs
+++ b/tests/ui/macros/rfc-2011-nicer-assert-messages/all-expr-kinds.rs
@@ -1,8 +1,8 @@
-// edition:2021
+//@ edition:2021
 // ignore-tidy-linelength
-// only-x86_64
-// run-pass
-// needs-unwind Asserting on contents of error message
+//@ only-x86_64
+//@ run-pass
+//@ needs-unwind Asserting on contents of error message
 
 #![allow(path_statements, unused_allocation)]
 #![feature(core_intrinsics, generic_assert)]
diff --git a/tests/ui/macros/rfc-2011-nicer-assert-messages/all-not-available-cases.rs b/tests/ui/macros/rfc-2011-nicer-assert-messages/all-not-available-cases.rs
index fcf4f367d04..1600fd0af3f 100644
--- a/tests/ui/macros/rfc-2011-nicer-assert-messages/all-not-available-cases.rs
+++ b/tests/ui/macros/rfc-2011-nicer-assert-messages/all-not-available-cases.rs
@@ -1,8 +1,8 @@
-// aux-build:common.rs
+//@ aux-build:common.rs
 // ignore-tidy-linelength
-// only-x86_64
-// run-pass
-// needs-unwind Asserting on contents of error message
+//@ only-x86_64
+//@ run-pass
+//@ needs-unwind Asserting on contents of error message
 
 #![feature(core_intrinsics, generic_assert)]
 
diff --git a/tests/ui/macros/rfc-2011-nicer-assert-messages/assert-with-custom-errors-does-not-create-unnecessary-code.rs b/tests/ui/macros/rfc-2011-nicer-assert-messages/assert-with-custom-errors-does-not-create-unnecessary-code.rs
index c8408d16fbb..37d94830db2 100644
--- a/tests/ui/macros/rfc-2011-nicer-assert-messages/assert-with-custom-errors-does-not-create-unnecessary-code.rs
+++ b/tests/ui/macros/rfc-2011-nicer-assert-messages/assert-with-custom-errors-does-not-create-unnecessary-code.rs
@@ -1,5 +1,5 @@
-// compile-flags: --test
-// run-pass
+//@ compile-flags: --test
+//@ run-pass
 
 #![feature(core_intrinsics, generic_assert)]
 
diff --git a/tests/ui/macros/rfc-2011-nicer-assert-messages/assert-without-captures-does-not-create-unnecessary-code.rs b/tests/ui/macros/rfc-2011-nicer-assert-messages/assert-without-captures-does-not-create-unnecessary-code.rs
index 0e3c14a5770..6e5f8d6cd12 100644
--- a/tests/ui/macros/rfc-2011-nicer-assert-messages/assert-without-captures-does-not-create-unnecessary-code.rs
+++ b/tests/ui/macros/rfc-2011-nicer-assert-messages/assert-without-captures-does-not-create-unnecessary-code.rs
@@ -1,7 +1,7 @@
-// aux-build:common.rs
-// only-x86_64
-// run-pass
-// needs-unwind Asserting on contents of error message
+//@ aux-build:common.rs
+//@ only-x86_64
+//@ run-pass
+//@ needs-unwind Asserting on contents of error message
 
 #![feature(core_intrinsics, generic_assert)]
 
diff --git a/tests/ui/macros/rfc-2011-nicer-assert-messages/feature-gate-generic_assert.rs b/tests/ui/macros/rfc-2011-nicer-assert-messages/feature-gate-generic_assert.rs
index 0d2518dc253..86cc7adb90d 100644
--- a/tests/ui/macros/rfc-2011-nicer-assert-messages/feature-gate-generic_assert.rs
+++ b/tests/ui/macros/rfc-2011-nicer-assert-messages/feature-gate-generic_assert.rs
@@ -1,6 +1,6 @@
-// compile-flags: --test
+//@ compile-flags: --test
 // ignore-tidy-linelength
-// run-pass
+//@ run-pass
 
 #![feature(core_intrinsics, generic_assert)]
 
diff --git a/tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.rs b/tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.rs
index 57b79a56b7b..cf47a1e67ae 100644
--- a/tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.rs
+++ b/tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.rs
@@ -1,5 +1,5 @@
-// check-pass
-// compile-flags: -Z unpretty=expanded
+//@ check-pass
+//@ compile-flags: -Z unpretty=expanded
 
 #![feature(core_intrinsics, generic_assert)]
 
diff --git a/tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.stdout b/tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.stdout
index 66321bc35f0..8065d0dff8f 100644
--- a/tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.stdout
+++ b/tests/ui/macros/rfc-2011-nicer-assert-messages/non-consuming-methods-have-optimized-codegen.stdout
@@ -1,7 +1,7 @@
 #![feature(prelude_import)]
 #![no_std]
-// check-pass
-// compile-flags: -Z unpretty=expanded
+//@ check-pass
+//@ compile-flags: -Z unpretty=expanded
 
 #![feature(core_intrinsics, generic_assert)]
 #[prelude_import]
diff --git a/tests/ui/macros/rfc-3086-metavar-expr/count-and-length-are-distinct.rs b/tests/ui/macros/rfc-3086-metavar-expr/count-and-length-are-distinct.rs
index 1b8ce10ccce..3a14e0c64fd 100644
--- a/tests/ui/macros/rfc-3086-metavar-expr/count-and-length-are-distinct.rs
+++ b/tests/ui/macros/rfc-3086-metavar-expr/count-and-length-are-distinct.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![feature(macro_metavar_expr)]
 
diff --git a/tests/ui/macros/rfc-3086-metavar-expr/dollar-dollar-has-correct-behavior.rs b/tests/ui/macros/rfc-3086-metavar-expr/dollar-dollar-has-correct-behavior.rs
index ed94c27cf05..9b8e3216a68 100644
--- a/tests/ui/macros/rfc-3086-metavar-expr/dollar-dollar-has-correct-behavior.rs
+++ b/tests/ui/macros/rfc-3086-metavar-expr/dollar-dollar-has-correct-behavior.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![feature(macro_metavar_expr)]
 
diff --git a/tests/ui/macros/rfc-3086-metavar-expr/feature-gate-macro_metavar_expr.rs b/tests/ui/macros/rfc-3086-metavar-expr/feature-gate-macro_metavar_expr.rs
index 950e70153ba..6464fd6f2fd 100644
--- a/tests/ui/macros/rfc-3086-metavar-expr/feature-gate-macro_metavar_expr.rs
+++ b/tests/ui/macros/rfc-3086-metavar-expr/feature-gate-macro_metavar_expr.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![feature(macro_metavar_expr)]
 
diff --git a/tests/ui/macros/rfc-3086-metavar-expr/macro-expansion.rs b/tests/ui/macros/rfc-3086-metavar-expr/macro-expansion.rs
index 04924f0efa6..787b927c449 100644
--- a/tests/ui/macros/rfc-3086-metavar-expr/macro-expansion.rs
+++ b/tests/ui/macros/rfc-3086-metavar-expr/macro-expansion.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 
 #![feature(macro_metavar_expr)]
 
diff --git a/tests/ui/macros/same-sequence-span.rs b/tests/ui/macros/same-sequence-span.rs
index e0bb4d98525..67f6b6ad1cd 100644
--- a/tests/ui/macros/same-sequence-span.rs
+++ b/tests/ui/macros/same-sequence-span.rs
@@ -1,4 +1,4 @@
-// aux-build:proc_macro_sequence.rs
+//@ aux-build:proc_macro_sequence.rs
 
 // Regression test for issue #62831: Check that multiple sequences with the same span in the
 // left-hand side of a macro definition behave as if they had unique spans, and in particular that
diff --git a/tests/ui/macros/semi-after-macro-ty.rs b/tests/ui/macros/semi-after-macro-ty.rs
index f83ace8fada..60afc3b4450 100644
--- a/tests/ui/macros/semi-after-macro-ty.rs
+++ b/tests/ui/macros/semi-after-macro-ty.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 macro_rules! foo {
     ($t:ty; $p:path;) => {}
 }
diff --git a/tests/ui/macros/stmt_expr_attr_macro_parse.rs b/tests/ui/macros/stmt_expr_attr_macro_parse.rs
index 570191d2c90..82e05a7e0e2 100644
--- a/tests/ui/macros/stmt_expr_attr_macro_parse.rs
+++ b/tests/ui/macros/stmt_expr_attr_macro_parse.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_macro_rules)]
 
 macro_rules! m {
diff --git a/tests/ui/macros/stringify.rs b/tests/ui/macros/stringify.rs
index 8cef833f48d..492bd2450b1 100644
--- a/tests/ui/macros/stringify.rs
+++ b/tests/ui/macros/stringify.rs
@@ -1,6 +1,6 @@
-// run-pass
-// edition:2021
-// compile-flags: --test
+//@ run-pass
+//@ edition:2021
+//@ compile-flags: --test
 
 #![allow(incomplete_features)]
 #![feature(async_closure)]
diff --git a/tests/ui/macros/syntax-extension-cfg.rs b/tests/ui/macros/syntax-extension-cfg.rs
index 2e929fc1dfa..56d869f3dc1 100644
--- a/tests/ui/macros/syntax-extension-cfg.rs
+++ b/tests/ui/macros/syntax-extension-cfg.rs
@@ -1,5 +1,5 @@
-// run-pass
-// compile-flags: --cfg foo --cfg qux="foo"
+//@ run-pass
+//@ compile-flags: --cfg foo --cfg qux="foo"
 
 
 pub fn main() {
diff --git a/tests/ui/macros/syntax-extension-source-utils.rs b/tests/ui/macros/syntax-extension-source-utils.rs
index aa894c83910..a16ebdc7504 100644
--- a/tests/ui/macros/syntax-extension-source-utils.rs
+++ b/tests/ui/macros/syntax-extension-source-utils.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(stable_features)]
 
 
diff --git a/tests/ui/macros/trace-macro.rs b/tests/ui/macros/trace-macro.rs
index 576120811db..ecc6aabe8ca 100644
--- a/tests/ui/macros/trace-macro.rs
+++ b/tests/ui/macros/trace-macro.rs
@@ -1,5 +1,5 @@
-// compile-flags: -Z trace-macros
-// build-pass (FIXME(62277): could be check-pass?)
+//@ compile-flags: -Z trace-macros
+//@ build-pass (FIXME(62277): could be check-pass?)
 
 fn main() {
     println!("Hello, World!");
diff --git a/tests/ui/macros/trace_faulty_macros.rs b/tests/ui/macros/trace_faulty_macros.rs
index 00eb7593799..ec1ce1a1f92 100644
--- a/tests/ui/macros/trace_faulty_macros.rs
+++ b/tests/ui/macros/trace_faulty_macros.rs
@@ -1,4 +1,4 @@
-// compile-flags: -Z trace-macros
+//@ compile-flags: -Z trace-macros
 
 #![recursion_limit = "4"]
 
diff --git a/tests/ui/macros/try-macro.rs b/tests/ui/macros/try-macro.rs
index 824c77d9de5..b579143583e 100644
--- a/tests/ui/macros/try-macro.rs
+++ b/tests/ui/macros/try-macro.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(deprecated)] // for deprecated `try!()` macro
 use std::num::{ParseFloatError, ParseIntError};
 
diff --git a/tests/ui/macros/two-macro-use.rs b/tests/ui/macros/two-macro-use.rs
index 07022bb01e3..8bb3c9da305 100644
--- a/tests/ui/macros/two-macro-use.rs
+++ b/tests/ui/macros/two-macro-use.rs
@@ -1,5 +1,5 @@
-// run-pass
-// aux-build:two_macros.rs
+//@ run-pass
+//@ aux-build:two_macros.rs
 
 #[macro_use(macro_one)]
 #[macro_use(macro_two)]
diff --git a/tests/ui/macros/type-macros-hlist.rs b/tests/ui/macros/type-macros-hlist.rs
index 946b5bd5d93..b36aca1576f 100644
--- a/tests/ui/macros/type-macros-hlist.rs
+++ b/tests/ui/macros/type-macros-hlist.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(unused_macro_rules)]
 
 use std::ops::*;
diff --git a/tests/ui/macros/type-macros-simple.rs b/tests/ui/macros/type-macros-simple.rs
index dd3ad2ef0ac..4d1001baf59 100644
--- a/tests/ui/macros/type-macros-simple.rs
+++ b/tests/ui/macros/type-macros-simple.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
 #![allow(unused_variables)]
 macro_rules! Tuple {
diff --git a/tests/ui/macros/typeck-macro-interaction-issue-8852.rs b/tests/ui/macros/typeck-macro-interaction-issue-8852.rs
index f2b089b74b5..bdd4b058381 100644
--- a/tests/ui/macros/typeck-macro-interaction-issue-8852.rs
+++ b/tests/ui/macros/typeck-macro-interaction-issue-8852.rs
@@ -1,4 +1,4 @@
-// run-pass
+//@ run-pass
 #![allow(dead_code)]
 
 enum T {
diff --git a/tests/ui/macros/unimplemented-macro-panic.rs b/tests/ui/macros/unimplemented-macro-panic.rs
index e7169903f8e..d3bff8ca10b 100644
--- a/tests/ui/macros/unimplemented-macro-panic.rs
+++ b/tests/ui/macros/unimplemented-macro-panic.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:not implemented
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:not implemented
+//@ ignore-emscripten no processes
 
 fn main() {
     unimplemented!()
diff --git a/tests/ui/macros/unknown-builtin.rs b/tests/ui/macros/unknown-builtin.rs
index 16f9139e647..048f5d68d34 100644
--- a/tests/ui/macros/unknown-builtin.rs
+++ b/tests/ui/macros/unknown-builtin.rs
@@ -1,4 +1,4 @@
-// error-pattern: attempted to define built-in macro more than once
+//@ error-pattern: attempted to define built-in macro more than once
 
 #![feature(rustc_attrs)]
 
diff --git a/tests/ui/macros/unreachable-arg.rs b/tests/ui/macros/unreachable-arg.rs
index 4024bd20b79..1f0d0073486 100644
--- a/tests/ui/macros/unreachable-arg.rs
+++ b/tests/ui/macros/unreachable-arg.rs
@@ -1,12 +1,12 @@
-// ignore-emscripten no processes
+//@ ignore-emscripten no processes
 
-// revisions: edition_2015 edition_2021
-// [edition_2015]edition:2015
-// [edition_2021]edition:2021
-// [edition_2015]run-fail
-// [edition_2021]check-fail
-// [edition_2015]error-pattern:internal error: entered unreachable code: hello
-// [edition_2021]error-pattern:format argument must be a string literal
+//@ revisions: edition_2015 edition_2021
+//@ [edition_2015]edition:2015
+//@ [edition_2021]edition:2021
+//@ [edition_2015]run-fail
+//@ [edition_2021]check-fail
+//@ [edition_2015]error-pattern:internal error: entered unreachable code: hello
+//@ [edition_2021]error-pattern:format argument must be a string literal
 
 #![allow(non_fmt_panics)]
 
diff --git a/tests/ui/macros/unreachable-fmt-msg.rs b/tests/ui/macros/unreachable-fmt-msg.rs
index eb17ed92711..b16394a1920 100644
--- a/tests/ui/macros/unreachable-fmt-msg.rs
+++ b/tests/ui/macros/unreachable-fmt-msg.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:internal error: entered unreachable code: 6 is not prime
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:internal error: entered unreachable code: 6 is not prime
+//@ ignore-emscripten no processes
 
 fn main() {
     unreachable!("{} is not {}", 6u32, "prime");
diff --git a/tests/ui/macros/unreachable-format-arg.rs b/tests/ui/macros/unreachable-format-arg.rs
index ff059ad9e15..449c6bca16b 100644
--- a/tests/ui/macros/unreachable-format-arg.rs
+++ b/tests/ui/macros/unreachable-format-arg.rs
@@ -1,11 +1,11 @@
-// run-fail
-// ignore-emscripten no processes
+//@ run-fail
+//@ ignore-emscripten no processes
 
-// revisions: edition_2015 edition_2021
-// [edition_2015]edition:2015
-// [edition_2021]edition:2021
-// [edition_2015]error-pattern:internal error: entered unreachable code: x is {x}
-// [edition_2021]error-pattern:internal error: entered unreachable code: x is 5
+//@ revisions: edition_2015 edition_2021
+//@ [edition_2015]edition:2015
+//@ [edition_2021]edition:2021
+//@ [edition_2015]error-pattern:internal error: entered unreachable code: x is {x}
+//@ [edition_2021]error-pattern:internal error: entered unreachable code: x is 5
 
 #![allow(non_fmt_panics)]
 
diff --git a/tests/ui/macros/unreachable-format-args.rs b/tests/ui/macros/unreachable-format-args.rs
index 04a31fc1ba3..5f8a0e9cdff 100644
--- a/tests/ui/macros/unreachable-format-args.rs
+++ b/tests/ui/macros/unreachable-format-args.rs
@@ -1,12 +1,12 @@
-// ignore-emscripten no processes
+//@ ignore-emscripten no processes
 
-// revisions: edition_2015 edition_2021
-// [edition_2015]edition:2015
-// [edition_2021]edition:2021
-// [edition_2015]check-fail
-// [edition_2021]run-fail
-// [edition_2015]error-pattern:there is no argument named `x`
-// [edition_2021]error-pattern:internal error: entered unreachable code: x is 5 and y is 0
+//@ revisions: edition_2015 edition_2021
+//@ [edition_2015]edition:2015
+//@ [edition_2021]edition:2021
+//@ [edition_2015]check-fail
+//@ [edition_2021]run-fail
+//@ [edition_2015]error-pattern:there is no argument named `x`
+//@ [edition_2021]error-pattern:internal error: entered unreachable code: x is 5 and y is 0
 
 fn main() {
     let x = 5;
diff --git a/tests/ui/macros/unreachable-macro-panic.rs b/tests/ui/macros/unreachable-macro-panic.rs
index 55e2102e2cc..7909bcb7624 100644
--- a/tests/ui/macros/unreachable-macro-panic.rs
+++ b/tests/ui/macros/unreachable-macro-panic.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:internal error: entered unreachable code
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:internal error: entered unreachable code
+//@ ignore-emscripten no processes
 
 fn main() {
     unreachable!()
diff --git a/tests/ui/macros/unreachable-static-msg.rs b/tests/ui/macros/unreachable-static-msg.rs
index 55edf3af7d9..3e917897da4 100644
--- a/tests/ui/macros/unreachable-static-msg.rs
+++ b/tests/ui/macros/unreachable-static-msg.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:internal error: entered unreachable code: uhoh
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:internal error: entered unreachable code: uhoh
+//@ ignore-emscripten no processes
 
 fn main() {
     unreachable!("uhoh")
diff --git a/tests/ui/macros/unreachable.rs b/tests/ui/macros/unreachable.rs
index 55e2102e2cc..7909bcb7624 100644
--- a/tests/ui/macros/unreachable.rs
+++ b/tests/ui/macros/unreachable.rs
@@ -1,6 +1,6 @@
-// run-fail
-// error-pattern:internal error: entered unreachable code
-// ignore-emscripten no processes
+//@ run-fail
+//@ error-pattern:internal error: entered unreachable code
+//@ ignore-emscripten no processes
 
 fn main() {
     unreachable!()
diff --git a/tests/ui/macros/use-macro-self.rs b/tests/ui/macros/use-macro-self.rs
index 06464ab0bc9..1d15b8386af 100644
--- a/tests/ui/macros/use-macro-self.rs
+++ b/tests/ui/macros/use-macro-self.rs
@@ -1,6 +1,6 @@
-// run-pass
+//@ run-pass
 #![allow(unused_imports)]
-// aux-build:use-macro-self.rs
+//@ aux-build:use-macro-self.rs
 
 #[macro_use]
 extern crate use_macro_self;
diff --git a/tests/ui/macros/user-defined-macro-rules.rs b/tests/ui/macros/user-defined-macro-rules.rs
index 09e071ec454..baabe0e90c4 100644
--- a/tests/ui/macros/user-defined-macro-rules.rs
+++ b/tests/ui/macros/user-defined-macro-rules.rs
@@ -1,4 +1,4 @@
-// check-pass
+//@ check-pass
 
 macro_rules! macro_rules { () => { struct S; } } // OK