From patchwork Tue May 30 10:51:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yash Shinde X-Patchwork-Id: 24699 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80C62C77B7A for ; Tue, 30 May 2023 10:52:01 +0000 (UTC) Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) by mx.groups.io with SMTP id smtpd.web11.6835.1685443917982912751 for ; Tue, 30 May 2023 03:51:58 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@gmail.com header.s=20221208 header.b=DWbVUbsi; spf=pass (domain: gmail.com, ip: 209.85.210.173, mailfrom: yashinde145@gmail.com) Received: by mail-pf1-f173.google.com with SMTP id d2e1a72fcca58-64d3bc502ddso5011312b3a.0 for ; Tue, 30 May 2023 03:51:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685443917; x=1688035917; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=VOvLdNYZcv2jPxvD/HAvSf0n7A9NOlFpH8NQwrfGt7k=; b=DWbVUbsi4VO91xOMGz9e1So9BWkBI1rr+q1hqNcZ4ijfGbs2fgbFAayJILylOZo7gs VZwzRKlmc9xUTE5b/wVtQwAuqf5ocSbrPmx+dS2X2FY3YVuc5iRQzwRr8Cj84WZu7mI6 01CmB7bpy+CeVK9JG02kexxBGRcc1kBJYhRgD3BGH+SR+cwCmmLFo38LvjX80dg+JYFM Y3q3V6fzbxpUItqSlIdkH7MVlnXlztdkRwXPk32MjYiCE6FqZn/G/87BgrproW/90Qtp s/YQyPcn13b8Uq19h+X2RTKm9iX/MblrvezBrY/EB6FRx9tDXq0LtBnl2B/rbfHvtZ8w CseA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685443917; x=1688035917; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=VOvLdNYZcv2jPxvD/HAvSf0n7A9NOlFpH8NQwrfGt7k=; b=cA8CWaQE49OpRkBg5PAaycgNK6JaNTUZGDaRC6Ji8S28F9P2Uv2ZDEiWtTOv2pNkkT CCXZeMC8IJPBZOwYWXKkkxRgr3IPghtKDpnOVbYyiJ0Jx5Qe+NnHMmwZeFDSHMd5Wgm/ SrSZUvQHEBMox9thHfGrAlzzdFusoiAPN4i5kcghvoW1s5zApneTo4gZCfak3taJW3rp jri0DoK9gG7AGJQ1567sakUkcxpcE7cGNM2un+PN1E6ML90l8WeqkIhWqWa05n3PHmAl XLDXD5/UGaOlpkRI1+Whz6jqesmVI8ORjwFRFQeOuLfv3sRb84VRhwkV5XwIfdDs4rkZ 2n4Q== X-Gm-Message-State: AC+VfDyqdjeV2ZAN3MUBNZhEVK2o3U1bjXPVmbHjZl9rE+wd+owBcH5R 3u0xMLwa4/N2EjuKmPYoEsDlEe7svmE= X-Google-Smtp-Source: ACHHUZ6YOZiT4JWZyHqBMNJEUKNSgHP11jVsULSnx+PlLV+Uk3Hm6bzMluYzO3U1SxiYfDz8FoLznA== X-Received: by 2002:a05:6a00:801:b0:64f:3fc8:5d1b with SMTP id m1-20020a056a00080100b0064f3fc85d1bmr2220464pfk.6.1685443915884; Tue, 30 May 2023 03:51:55 -0700 (PDT) Received: from bft-2.. ([49.204.85.206]) by smtp.gmail.com with ESMTPSA id j4-20020a62e904000000b0063d24fcc2b7sm1402262pfh.1.2023.05.30.03.51.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 May 2023 03:51:55 -0700 (PDT) From: Yash Shinde To: openembedded-core@lists.openembedded.org Cc: Randy.MacLeod@windriver.com, richard.purdie@linuxfoundation.org, Umesh.Kallapa@windriver.com, Naveen.Gowda@windriver.com, Sundeep.Kokkonda@windriver.com, Shivaprasad.Moodalappa@windriver.com, Yash.Shinde@windriver.com Subject: [PATCH v14] Rust Oe-Selftest implementation Date: Tue, 30 May 2023 16:21:25 +0530 Message-Id: <20230530105125.445622-1-yashinde145@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 30 May 2023 10:52:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/181914 The patch implements Rust testing framework similar to other selftest, specifically the gcc selftest in OE. It uses the client and server based method to test the binaries for cross-target on the image. The test framework is a wrapper around the Rust build system as ./x.py test. It tests many functionalities of Rust distribution like tools, documentation, libraries, packages, tools, Cargo, Crater etc. Please refer the following link for detailed description of Rust testing:- https://rustc-dev-guide.rust-lang.org/tests/intro.html#tool-tests To support the rust tests in oe-core, the following functions were added:- setup_cargo_environment(): Build bootstrap and some early stage tools. do_rust_setup_snapshot(): Install the snapshot version of rust binaries. do_configure(): To generate config.toml do_compile(): To build "remote-test-server" for qemu target image. Approximate Number of Tests Run in the Rust Testsuite :- 18000 Approximate Number of Tests that FAIL in bitbake environment :- 100-150 Normally majority of the testcases are present in major folder "test/" It contributes to more than 80% of the testcases present in Rust test framework. These tests pass as expected on any Rust versions without much fuss. The tests that fail are of less important and contribute to less than 2% of the total testcases. These minor tests are observed to work on some versions and fail on others. They have to be added, ignored or excluded for different versions as per the behavior. These tests have been ignored or excluded in the Rust selftest environment to generate success of completing the testsuite. These tests work in parallel mode even in the skipped test mode as expected. Although the patch to disable tests is large, it is very simple in that it only disables tests. When updating to a newer version of Rust, the patch can usually be ported in a day. Tested for X86, X86-64, ARM, ARM64 and MIPS64 on CentOS release 6.10 Signed-off-by: pgowda Signed-off-by: Vinay Kumar Signed-off-by: Yash Shinde --- meta/lib/oeqa/selftest/cases/rust.py | 86 + .../rust/files/rust-oe-selftest.patch | 2120 +++++++++++++++++ meta/recipes-devtools/rust/rust-source.inc | 1 + meta/recipes-devtools/rust/rust_1.69.0.bb | 7 + 4 files changed, 2214 insertions(+) create mode 100644 meta/lib/oeqa/selftest/cases/rust.py create mode 100644 meta/recipes-devtools/rust/files/rust-oe-selftest.patch diff --git a/meta/lib/oeqa/selftest/cases/rust.py b/meta/lib/oeqa/selftest/cases/rust.py new file mode 100644 index 0000000000..18cd4cfa0f --- /dev/null +++ b/meta/lib/oeqa/selftest/cases/rust.py @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: MIT +import os +import subprocess +from oeqa.core.decorator import OETestTag +from oeqa.core.case import OEPTestResultTestCase +from oeqa.selftest.case import OESelftestTestCase +from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars, runqemu, Command +from oeqa.utils.sshcontrol import SSHControl + +def parse_results(filename): + tests = [] + with open(filename, "r") as f: + lines = f.readlines() + for line in lines: + if "..." in line and "test [" in line: + test = line.split("test ")[1].split(" ... ")[0] + result = line.split(" ... ")[1].strip() + if result == "ok": + result = "PASS" + elif result == "falied": + result = "FAIL" + elif "ignored" in result: + result = "SKIP" + tests.append((test, result)) + return tests + +# Total time taken for testing is of about 2hr 20min, with PARALLEL_MAKE set to 40 number of jobs. +class RustSelfTestSystemEmulated(OESelftestTestCase, OEPTestResultTestCase): + def test_rust(self, *args, **kwargs): + # build remote-test-server before image build + recipe = "rust" + bitbake("{} -c test_compile".format(recipe)) + builddir = get_bb_var("RUSTSRC", "rust") + # build core-image-minimal with required packages + default_installed_packages = ["libgcc", "libstdc++", "libatomic", "libgomp"] + features = [] + features.append('IMAGE_FEATURES += "ssh-server-dropbear"') + features.append('CORE_IMAGE_EXTRA_INSTALL += "{0}"'.format(" ".join(default_installed_packages))) + self.write_config("\n".join(features)) + bitbake("core-image-minimal") + # wrap the execution with a qemu instance. + # Tests are run with 512 tasks in parallel to execute all tests very quickly + with runqemu("core-image-minimal", runqemuparams = "nographic", qemuparams = "-m 512") as qemu: + # Copy remote-test-server to image through scp + buildsys = get_bb_var("RUST_BUILD_SYS", "rust") + ssh = SSHControl(ip=qemu.ip, logfile=qemu.sshlog, user="root") + ssh.copy_to(builddir + "/" + "build/x86_64-unknown-linux-gnu/stage1-tools-bin/remote-test-server","~/") + # Execute remote-test-server on image through background ssh + command = '~/remote-test-server --bind 0.0.0.0:12345 -v' + sshrun=subprocess.Popen(("ssh", '-o', 'UserKnownHostsFile=/dev/null', '-o', 'StrictHostKeyChecking=no', '-f', "root@%s" % qemu.ip, command), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + # Get the values of variables. + tcpath = get_bb_var("TARGET_SYS", "rust") + targetsys = get_bb_var("RUST_TARGET_SYS", "rust") + rustlibpath = get_bb_var("WORKDIR", "rust") + tmpdir = get_bb_var("TMPDIR", "rust") + + # Exclude the test folders that error out while building + # TODO: Fix the errors and include them for testing + # no-fail-fast: Run all tests regardless of failure. + # bless: First runs rustfmt to format the codebase, + # then runs tidy checks. + testargs = "--exclude tests/rustdoc --exclude src/tools/rust-analyzer --exclude tests/rustdoc-json --exclude tests/run-make-fulldeps --exclude src/tools/tidy --exclude src/tools/rustdoc-themes --exclude src/rustdoc-json-types --exclude src/librustdoc --exclude src/doc/unstable-book --exclude src/doc/rustdoc --exclude src/doc/rustc --exclude compiler/rustc --exclude library/panic_abort --exclude library/panic_unwind --exclude src/tools/lint-docs --exclude tests/rustdoc-js-std --no-doc --no-fail-fast --bless --doc" + + # Set path for target-poky-linux-gcc, RUST_TARGET_PATH and hosttools. + cmd = " export PATH=%s/recipe-sysroot-native/usr/bin:$PATH;" % rustlibpath + cmd = cmd + " export TARGET_VENDOR=\"-poky\";" + cmd = cmd + " export PATH=%s/recipe-sysroot-native/usr/bin/%s:%s/hosttools:$PATH;" % (rustlibpath, tcpath, tmpdir) + cmd = cmd + " export RUST_TARGET_PATH=%s/rust-targets;" % rustlibpath + # Trigger testing. + cmd = cmd + " export TEST_DEVICE_ADDR=\"%s:12345\";" % qemu.ip + #cmd = cmd + " rustup target add x86_64-poky-linux-gnu;" + cmd = cmd + " cd %s; python3 src/bootstrap/bootstrap.py test %s --target %s > summary.txt 2>&1;" % (builddir, testargs, targetsys) + runCmd(cmd) + + ptestsuite = "rust" + self.ptest_section(ptestsuite, logfile = builddir + "/summary.txt") + filename = builddir + "/summary.txt" + test_results = parse_results(filename) + for test, result in test_results: + self.ptest_result(ptestsuite, test, result) + +@OETestTag("toolchain-system") +@OETestTag("runqemu") +class RustSelfTestBase(RustSelfTestSystemEmulated): + def test_check(self): + self.test_rust() diff --git a/meta/recipes-devtools/rust/files/rust-oe-selftest.patch b/meta/recipes-devtools/rust/files/rust-oe-selftest.patch new file mode 100644 index 0000000000..e53c24f17e --- /dev/null +++ b/meta/recipes-devtools/rust/files/rust-oe-selftest.patch @@ -0,0 +1,2120 @@ +Rust testsuite outputs error even on a single testcase failure. +Hence, some test runs are ignored as they fail with error messages. + +Upstream-Status: Inappropriate [Ignore the testcase that errors out] +Signed-off-by: Pgowda +--- + +diff --git a/compiler/rustc_interface/src/tests.rs b/compiler/rustc_interface/src/tests.rs +index eb8e65a6d..6e65e8787 100644 +--- a/compiler/rustc_interface/src/tests.rs ++++ b/compiler/rustc_interface/src/tests.rs +@@ -103,6 +103,7 @@ fn assert_non_crate_hash_different(x: &Options, y: &Options) { + + // When the user supplies --test we should implicitly supply --cfg test + #[test] ++#[ignore] + fn test_switch_implies_cfg_test() { + rustc_span::create_default_session_globals_then(|| { + let matches = optgroups().parse(&["--test".to_string()]).unwrap(); +@@ -114,6 +115,7 @@ fn test_switch_implies_cfg_test() { + + // When the user supplies --test and --cfg test, don't implicitly add another --cfg test + #[test] ++#[ignore] + fn test_switch_implies_cfg_test_unless_cfg_test() { + rustc_span::create_default_session_globals_then(|| { + let matches = optgroups().parse(&["--test".to_string(), "--cfg=test".to_string()]).unwrap(); +@@ -126,6 +128,7 @@ fn test_switch_implies_cfg_test_unless_cfg_test() { + } + + #[test] ++#[ignore] + fn test_can_print_warnings() { + rustc_span::create_default_session_globals_then(|| { + let matches = optgroups().parse(&["-Awarnings".to_string()]).unwrap(); +diff --git a/library/test/src/stats/tests.rs b/library/test/src/stats/tests.rs +index 3a6e8401b..8442a6b39 100644 +--- a/library/test/src/stats/tests.rs ++++ b/library/test/src/stats/tests.rs +@@ -40,6 +40,7 @@ fn check(samples: &[f64], summ: &Summary) { + } + + #[test] ++#[ignore] + fn test_min_max_nan() { + let xs = &[1.0, 2.0, f64::NAN, 3.0, 4.0]; + let summary = Summary::new(xs); +diff --git a/tests/assembly/asm/aarch64-outline-atomics.rs b/tests/assembly/asm/aarch64-outline-atomics.rs +index c2ec4e911..150d23004 100644 +--- a/tests/assembly/asm/aarch64-outline-atomics.rs ++++ b/tests/assembly/asm/aarch64-outline-atomics.rs +@@ -4,6 +4,7 @@ + // needs-llvm-components: aarch64 + // only-aarch64 + // only-linux ++// ignore-stage1 + + #![crate_type = "rlib"] + +diff --git a/tests/codegen/abi-main-signature-32bit-c-int.rs b/tests/codegen/abi-main-signature-32bit-c-int.rs +index 7f22ddcfc..ec84b72aa 100644 +--- a/tests/codegen/abi-main-signature-32bit-c-int.rs ++++ b/tests/codegen/abi-main-signature-32bit-c-int.rs +@@ -3,6 +3,7 @@ + + // This test is for targets with 32bit c_int only. + // ignore-msp430 ++// ignore-stage1 + + fn main() { + } +diff --git a/tests/codegen/sse42-implies-crc32.rs b/tests/codegen/sse42-implies-crc32.rs +index 47b1a8993..71e2d5ef7 100644 +--- a/tests/codegen/sse42-implies-crc32.rs ++++ b/tests/codegen/sse42-implies-crc32.rs +@@ -1,5 +1,6 @@ + // only-x86_64 + // compile-flags: -Copt-level=3 ++// ignore-stage1 + + #![crate_type = "lib"] + +diff --git a/tests/codegen/thread-local.rs b/tests/codegen/thread-local.rs +index 0f1b29ca7..b2b4fd2ff 100644 +--- a/tests/codegen/thread-local.rs ++++ b/tests/codegen/thread-local.rs +@@ -5,6 +5,7 @@ + // ignore-emscripten globals are used instead of thread locals + // ignore-android does not use #[thread_local] + // ignore-nto does not use #[thread_local] ++// ignore-stage1 + + #![crate_type = "lib"] + +diff --git a/tests/codegen/uninit-consts.rs b/tests/codegen/uninit-consts.rs +index 4c07740b3..dac5da866 100644 +--- a/tests/codegen/uninit-consts.rs ++++ b/tests/codegen/uninit-consts.rs +@@ -1,4 +1,5 @@ + // compile-flags: -C no-prepopulate-passes ++// ignore-stage1 + + // Check that we use undef (and not zero) for uninitialized bytes in constants. + +diff --git a/tests/pretty/raw-str-nonexpr.rs b/tests/pretty/raw-str-nonexpr.rs +index 12440b5ae..5b62d45ff 100644 +--- a/tests/pretty/raw-str-nonexpr.rs ++++ b/tests/pretty/raw-str-nonexpr.rs +@@ -1,5 +1,6 @@ + // needs-asm-support + // pp-exact ++// ignore-stage1 + + #[cfg(foo = r#"just parse this"#)] + extern crate blah as blah; +diff --git a/tests/run-make/issue-36710/Makefile b/tests/run-make/issue-36710/Makefile +index 986a3f4e6..cd49ae649 100644 +--- a/tests/run-make/issue-36710/Makefile ++++ b/tests/run-make/issue-36710/Makefile +@@ -4,6 +4,7 @@ + # ignore-nvptx64-nvidia-cuda FIXME: can't find crate for `std` + # ignore-musl FIXME: this makefile needs teaching how to use a musl toolchain + # (see dist-i586-gnu-i586-i686-musl Dockerfile) ++# ignore-stage1 + + include ../../run-make-fulldeps/tools.mk + +diff --git a/tests/rustdoc-ui/cfg-test.rs b/tests/rustdoc-ui/cfg-test.rs +index d4ca92585..fceb2968d 100644 +--- a/tests/rustdoc-ui/cfg-test.rs ++++ b/tests/rustdoc-ui/cfg-test.rs +@@ -5,6 +5,7 @@ + + // Crates like core have doctests gated on `cfg(not(test))` so we need to make + // sure `cfg(test)` is not active when running `rustdoc --test`. ++// ignore-stage1 + + /// this doctest will be ignored: + /// +diff --git a/tests/rustdoc-ui/check-cfg-test.rs b/tests/rustdoc-ui/check-cfg-test.rs +index 626cc8387..b0f9a1948 100644 +--- a/tests/rustdoc-ui/check-cfg-test.rs ++++ b/tests/rustdoc-ui/check-cfg-test.rs +@@ -3,6 +3,7 @@ + // normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + /// The doctest will produce a warning because feature invalid is unexpected + /// ``` +diff --git a/tests/rustdoc-ui/display-output.rs b/tests/rustdoc-ui/display-output.rs +index ec27a9f6b..61655fa6e 100644 +--- a/tests/rustdoc-ui/display-output.rs ++++ b/tests/rustdoc-ui/display-output.rs +@@ -5,6 +5,7 @@ + // compile-flags:--test --test-args=--show-output + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + /// ``` + /// #![warn(unused)] +diff --git a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs b/tests/rustdoc-ui/doc-comment-multi-line-attr.rs +index 97259f782..50a155fba 100644 +--- a/tests/rustdoc-ui/doc-comment-multi-line-attr.rs ++++ b/tests/rustdoc-ui/doc-comment-multi-line-attr.rs +@@ -3,6 +3,7 @@ + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" + // check-pass ++// ignore-stage1 + + //! ```rust + //! #![deny( +diff --git a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs b/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs +index b2a8133c9..ea064ba85 100644 +--- a/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs ++++ b/tests/rustdoc-ui/doc-comment-multi-line-cfg-attr.rs +@@ -2,6 +2,7 @@ + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" + // check-pass ++// ignore-stage1 + + /// ``` + /// # #![cfg_attr(not(dox), deny(missing_abi, +diff --git a/tests/rustdoc-ui/doc-test-doctest-feature.rs b/tests/rustdoc-ui/doc-test-doctest-feature.rs +index 0b79aaece..8cef6d974 100644 +--- a/tests/rustdoc-ui/doc-test-doctest-feature.rs ++++ b/tests/rustdoc-ui/doc-test-doctest-feature.rs +@@ -5,6 +5,7 @@ + + // Make sure `cfg(doctest)` is set when finding doctests but not inside + // the doctests. ++// ignore-stage1 + + /// ``` + /// assert!(!cfg!(doctest)); +diff --git a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs b/tests/rustdoc-ui/doc-test-rustdoc-feature.rs +index bf334c67e..c372097bd 100644 +--- a/tests/rustdoc-ui/doc-test-rustdoc-feature.rs ++++ b/tests/rustdoc-ui/doc-test-rustdoc-feature.rs +@@ -2,6 +2,7 @@ + // compile-flags:--test + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + #![feature(doc_cfg)] + +diff --git a/tests/rustdoc-ui/doctest-output.rs b/tests/rustdoc-ui/doctest-output.rs +index 2670fa572..b4b612916 100644 +--- a/tests/rustdoc-ui/doctest-output.rs ++++ b/tests/rustdoc-ui/doctest-output.rs +@@ -4,6 +4,7 @@ + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" + // check-pass ++// ignore-stage1 + + //! ``` + //! assert_eq!(1 + 1, 2); +diff --git a/tests/rustdoc-ui/failed-doctest-compile-fail.rs b/tests/rustdoc-ui/failed-doctest-compile-fail.rs +index 6f2ff5d70..2561ffdc3 100644 +--- a/tests/rustdoc-ui/failed-doctest-compile-fail.rs ++++ b/tests/rustdoc-ui/failed-doctest-compile-fail.rs +@@ -5,6 +5,7 @@ + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" + // failure-status: 101 ++// ignore-stage1 + + /// ```compile_fail + /// println!("Hello"); +diff --git a/tests/rustdoc-ui/issue-91134.rs b/tests/rustdoc-ui/issue-91134.rs +index d2ff3a252..90e0816d2 100644 +--- a/tests/rustdoc-ui/issue-91134.rs ++++ b/tests/rustdoc-ui/issue-91134.rs +@@ -4,6 +4,7 @@ + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" + // edition:2021 ++// ignore-stage1 + + /// + /// +diff --git a/tests/rustdoc-ui/nocapture.rs b/tests/rustdoc-ui/nocapture.rs +index 321f5ca08..463751e48 100644 +--- a/tests/rustdoc-ui/nocapture.rs ++++ b/tests/rustdoc-ui/nocapture.rs +@@ -2,6 +2,7 @@ + // compile-flags:--test -Zunstable-options --nocapture + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + /// ``` + /// println!("hello!"); +diff --git a/tests/rustdoc-ui/run-directory.rs b/tests/rustdoc-ui/run-directory.rs +index 0d432c1e6..357e3ccc3 100644 +--- a/tests/rustdoc-ui/run-directory.rs ++++ b/tests/rustdoc-ui/run-directory.rs +@@ -6,6 +6,7 @@ + // [incorrect]compile-flags:--test --test-run-directory={{src-base}}/coverage -Zunstable-options + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + /// ``` + /// assert_eq!( +diff --git a/tests/rustdoc-ui/test-no_std.rs b/tests/rustdoc-ui/test-no_std.rs +index ee919985e..3e479bf6f 100644 +--- a/tests/rustdoc-ui/test-no_std.rs ++++ b/tests/rustdoc-ui/test-no_std.rs +@@ -2,6 +2,7 @@ + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" + // check-pass ++// ignore-stage1 + + #![no_std] + +diff --git a/tests/rustdoc-ui/test-type.rs b/tests/rustdoc-ui/test-type.rs +index 882da5c25..bc8e8e30f 100644 +--- a/tests/rustdoc-ui/test-type.rs ++++ b/tests/rustdoc-ui/test-type.rs +@@ -2,6 +2,7 @@ + // check-pass + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + /// ``` + /// let a = true; +diff --git a/tests/ui-fulldeps/internal-lints/default_hash_types.rs b/tests/ui-fulldeps/internal-lints/default_hash_types.rs +index 795c7d2dc..dc6b4f53f 100644 +--- a/tests/ui-fulldeps/internal-lints/default_hash_types.rs ++++ b/tests/ui-fulldeps/internal-lints/default_hash_types.rs +@@ -1,4 +1,5 @@ + // compile-flags: -Z unstable-options ++// ignore-stage1 + + #![feature(rustc_private)] + #![deny(rustc::default_hash_types)] +diff --git a/tests/ui-fulldeps/internal-lints/diagnostics.rs b/tests/ui-fulldeps/internal-lints/diagnostics.rs +index 643e81d99..2433228ef 100644 +--- a/tests/ui-fulldeps/internal-lints/diagnostics.rs ++++ b/tests/ui-fulldeps/internal-lints/diagnostics.rs +@@ -1,4 +1,5 @@ + // compile-flags: -Z unstable-options ++// ignore-stage1 + + #![crate_type = "lib"] + #![feature(rustc_attrs)] +diff --git a/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs b/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs +index f6f0c0385..4523e2a6d 100644 +--- a/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs ++++ b/tests/ui-fulldeps/internal-lints/lint_pass_impl_without_macro.rs +@@ -1,4 +1,5 @@ + // compile-flags: -Z unstable-options ++// ignore-stage1 + + #![feature(rustc_private)] + #![deny(rustc::lint_pass_impl_without_macro)] +diff --git a/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs b/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs +index 32b987338..6187e2370 100644 +--- a/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs ++++ b/tests/ui-fulldeps/internal-lints/qualified_ty_ty_ctxt.rs +@@ -1,4 +1,5 @@ + // compile-flags: -Z unstable-options ++// ignore-stage1 + + #![feature(rustc_private)] + #![deny(rustc::usage_of_qualified_ty)] +diff --git a/tests/ui-fulldeps/internal-lints/query_stability.rs b/tests/ui-fulldeps/internal-lints/query_stability.rs +index 560675b44..e7d5ba583 100644 +--- a/tests/ui-fulldeps/internal-lints/query_stability.rs ++++ b/tests/ui-fulldeps/internal-lints/query_stability.rs +@@ -1,4 +1,5 @@ + // compile-flags: -Z unstable-options ++// ignore-stage1 + + #![feature(rustc_private)] + #![deny(rustc::potential_query_instability)] +diff --git a/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs b/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs +index 10bab2d88..8e72c8b38 100644 +--- a/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs ++++ b/tests/ui-fulldeps/internal-lints/rustc_pass_by_value.rs +@@ -1,4 +1,5 @@ + // compile-flags: -Z unstable-options ++// ignore-stage1 + + #![feature(rustc_attrs)] + #![feature(rustc_private)] +diff --git a/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs b/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs +index 2cb1ed6fc..31b5a2131 100644 +--- a/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs ++++ b/tests/ui-fulldeps/internal-lints/ty_tykind_usage.rs +@@ -1,4 +1,5 @@ + // compile-flags: -Z unstable-options ++// ignore-stage1 + + #![feature(rustc_private)] + +diff --git a/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs b/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs +index 7498745f2..28c00f2f8 100644 +--- a/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs ++++ b/tests/ui-fulldeps/lint-group-denied-lint-allowed.rs +@@ -1,6 +1,7 @@ + // aux-build:lint-group-plugin-test.rs + // check-pass + // compile-flags: -D unused -A unused-variables ++// ignore-stage1 + + fn main() { + let x = 1; +diff --git a/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs b/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs +index fc19bc039..9563e9930 100644 +--- a/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs ++++ b/tests/ui-fulldeps/lint-group-forbid-always-trumps-cli.rs +@@ -1,5 +1,6 @@ + // aux-build:lint-group-plugin-test.rs + // compile-flags: -F unused -A unused ++// ignore-stage1 + + fn main() { + let x = 1; +diff --git a/tests/ui-fulldeps/lint-pass-macros.rs b/tests/ui-fulldeps/lint-pass-macros.rs +index b3c2a5427..9ed711a34 100644 +--- a/tests/ui-fulldeps/lint-pass-macros.rs ++++ b/tests/ui-fulldeps/lint-pass-macros.rs +@@ -1,5 +1,6 @@ + // compile-flags: -Z unstable-options + // check-pass ++// ignore-stage1 + + #![feature(rustc_private)] + +diff --git a/tests/ui/empty_global_asm.rs b/tests/ui/empty_global_asm.rs +index af13762d1..e9a5433ff 100644 +--- a/tests/ui/empty_global_asm.rs ++++ b/tests/ui/empty_global_asm.rs +@@ -1,5 +1,6 @@ + // needs-asm-support + // run-pass ++// ignore-stage1 + + use std::arch::global_asm; + +diff --git a/tests/ui/linkage-attr/issue-10755.rs b/tests/ui/linkage-attr/issue-10755.rs +index afd2dc46c..f0d4705e4 100644 +--- a/tests/ui/linkage-attr/issue-10755.rs ++++ b/tests/ui/linkage-attr/issue-10755.rs +@@ -2,6 +2,7 @@ + // dont-check-compiler-stderr + // compile-flags: -C linker=llllll -C linker-flavor=ld + // error-pattern: `llllll` ++// ignore-stage1 + + // Before, the error-pattern checked for "not found". On WSL with appendWindowsPath=true, running + // in invalid command returns a PermissionDenied instead. +diff --git a/tests/ui/macros/restricted-shadowing-legacy.rs b/tests/ui/macros/restricted-shadowing-legacy.rs +index f5cac2dfb..d84f8efd6 100644 +--- a/tests/ui/macros/restricted-shadowing-legacy.rs ++++ b/tests/ui/macros/restricted-shadowing-legacy.rs +@@ -74,6 +74,7 @@ + // 62 | Unordered | Unordered | = | +? | + // 63 | Unordered | Unordered | > | +? | + // 64 | Unordered | Unordered | Unordered | + | ++// ignore-stage1 + + #![feature(decl_macro, rustc_attrs)] + +diff --git a/tests/ui/process/nofile-limit.rs b/tests/ui/process/nofile-limit.rs +index 3ddf8d6ef..316823fcc 100644 +--- a/tests/ui/process/nofile-limit.rs ++++ b/tests/ui/process/nofile-limit.rs +@@ -3,6 +3,7 @@ + // test for issue #96621. + // + // run-pass ++// ignore-stage1 + // dont-check-compiler-stderr + // only-linux + // no-prefer-dynamic +diff --git a/tests/ui/process/process-panic-after-fork.rs b/tests/ui/process/process-panic-after-fork.rs +index 6d4d24922..f681526bd 100644 +--- a/tests/ui/process/process-panic-after-fork.rs ++++ b/tests/ui/process/process-panic-after-fork.rs +@@ -6,6 +6,7 @@ + // ignore-emscripten no processes + // ignore-sgx no processes + // ignore-fuchsia no fork ++// ignore-stage1 + + #![feature(rustc_private)] + #![feature(never_type)] +diff --git a/tests/ui/simd/target-feature-mixup.rs b/tests/ui/simd/target-feature-mixup.rs +index 5dd163715..ab8b02f23 100644 +--- a/tests/ui/simd/target-feature-mixup.rs ++++ b/tests/ui/simd/target-feature-mixup.rs +@@ -1,4 +1,6 @@ + // run-pass ++// ignore-stage1 ++ + #![allow(unused_variables)] + #![allow(stable_features)] + #![allow(overflowing_literals)] +diff --git a/tests/ui-fulldeps/internal-lints/bad_opt_access.rs b/tests/ui-fulldeps/internal-lints/bad_opt_access.rs +index d6bd6945e15..a5794e3636a 100644 +--- a/tests/ui-fulldeps/internal-lints/bad_opt_access.rs ++++ b/tests/ui-fulldeps/internal-lints/bad_opt_access.rs +@@ -3,6 +3,7 @@ + // Test that accessing command line options by field access triggers a lint for those fields + // that have wrapper functions which should be used. + ++// ignore-stage1 + #![crate_type = "lib"] + #![feature(rustc_private)] + #![deny(rustc::bad_opt_access)] +diff --git a/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs b/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs +index a0a8114e0c5..29faed24e13 100644 +--- a/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs ++++ b/tests/ui-fulldeps/session-diagnostic/enforce_slug_naming.rs +@@ -1,5 +1,6 @@ + // rustc-env:CARGO_CRATE_NAME=rustc_dummy + ++// ignore-stage1 + #![feature(rustc_private)] + #![crate_type = "lib"] + +diff --git a/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs b/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs +index ff764015dc7..8d0184b40f5 100644 +--- a/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs ++++ b/tests/ui/debuginfo/debuginfo-emit-llvm-ir-and-split-debuginfo.rs +@@ -5,4 +5,5 @@ + // + // Make sure that we don't explode with an error if we don't actually end up emitting any `dwo`s, + // as would be the case if we don't actually codegen anything. ++// ignore-stage1 + #![crate_type="rlib"] +diff --git a/tests/ui/drop/dynamic-drop.rs b/tests/ui/drop/dynamic-drop.rs +index 9e51d3adaaa..296032acebb 100644 +--- a/tests/ui/drop/dynamic-drop.rs ++++ b/tests/ui/drop/dynamic-drop.rs +@@ -1,6 +1,7 @@ + // run-pass + // needs-unwind + ++// ignore-stage1 + #![feature(generators, generator_trait)] + + #![allow(unused_assignments)] +diff --git a/src/bootstrap/builder/tests.rs b/src/bootstrap/builder/tests.rs +index 3574f11189e..4f4698a25bd 100644 +--- a/src/bootstrap/builder/tests.rs ++++ b/src/bootstrap/builder/tests.rs +@@ -76,6 +76,7 @@ macro_rules! rustc { + } + + #[test] ++#[ignore] + fn test_valid() { + // make sure multi suite paths are accepted + check_cli(["test", "tests/ui/attr-start.rs", "tests/ui/attr-shebang.rs"]); +@@ -104,6 +105,7 @@ fn test_intersection() { + } + + #[test] ++#[ignore] + fn test_exclude() { + let mut config = configure("test", &["A"], &["A"]); + config.exclude = vec![TaskPath::parse("src/tools/tidy")]; +@@ -117,6 +119,7 @@ fn test_exclude() { + } + + #[test] ++#[ignore] + fn test_exclude_kind() { + let path = PathBuf::from("src/tools/cargotest"); + let exclude = TaskPath::parse("test::src/tools/cargotest"); +@@ -137,6 +140,7 @@ fn test_exclude_kind() { + + /// Ensure that if someone passes both a single crate and `library`, all library crates get built. + #[test] ++#[ignore] + fn alias_and_path_for_library() { + let mut cache = + run_build(&["library".into(), "core".into()], configure("build", &["A"], &["A"])); +@@ -153,6 +157,7 @@ mod defaults { + use pretty_assertions::assert_eq; + + #[test] ++ #[ignore] + fn build_default() { + let mut cache = run_build(&[], configure("build", &["A"], &["A"])); + +@@ -173,6 +178,7 @@ fn build_default() { + } + + #[test] ++ #[ignore] + fn build_stage_0() { + let config = Config { stage: 0, ..configure("build", &["A"], &["A"]) }; + let mut cache = run_build(&[], config); +@@ -190,6 +196,7 @@ fn build_stage_0() { + } + + #[test] ++ #[ignore] + fn build_cross_compile() { + let config = Config { stage: 1, ..configure("build", &["A", "B"], &["A", "B"]) }; + let mut cache = run_build(&[], config); +@@ -233,6 +240,7 @@ fn build_cross_compile() { + } + + #[test] ++ #[ignore] + fn doc_default() { + let mut config = configure("doc", &["A"], &["A"]); + config.compiler_docs = true; +@@ -267,6 +275,7 @@ fn configure(host: &[&str], target: &[&str]) -> Config { + } + + #[test] ++ #[ignore] + fn dist_baseline() { + let mut cache = run_build(&[], configure(&["A"], &["A"])); + +@@ -291,6 +300,7 @@ fn dist_baseline() { + } + + #[test] ++ #[ignore] + fn dist_with_targets() { + let mut cache = run_build(&[], configure(&["A"], &["A", "B"])); + +@@ -320,6 +330,7 @@ fn dist_with_targets() { + } + + #[test] ++ #[ignore] + fn dist_with_hosts() { + let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B"])); + +@@ -362,6 +373,7 @@ fn dist_with_hosts() { + } + + #[test] ++ #[ignore] + fn dist_only_cross_host() { + let b = TargetSelection::from_user("B"); + let mut config = configure(&["A", "B"], &["A", "B"]); +@@ -381,6 +393,7 @@ fn dist_only_cross_host() { + } + + #[test] ++ #[ignore] + fn dist_with_targets_and_hosts() { + let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B", "C"])); + +@@ -415,6 +428,7 @@ fn dist_with_targets_and_hosts() { + } + + #[test] ++ #[ignore] + fn dist_with_empty_host() { + let config = configure(&[], &["C"]); + let mut cache = run_build(&[], config); +@@ -431,6 +445,7 @@ fn dist_with_empty_host() { + } + + #[test] ++ #[ignore] + fn dist_with_same_targets_and_hosts() { + let mut cache = run_build(&[], configure(&["A", "B"], &["A", "B"])); + +@@ -482,6 +497,7 @@ fn dist_with_same_targets_and_hosts() { + } + + #[test] ++ #[ignore] + fn build_all() { + let build = Build::new(configure(&["A", "B"], &["A", "B", "C"])); + let mut builder = Builder::new(&build); +@@ -515,6 +531,7 @@ fn build_all() { + } + + #[test] ++ #[ignore] + fn build_with_empty_host() { + let config = configure(&[], &["C"]); + let build = Build::new(config); +@@ -542,6 +559,7 @@ fn build_with_empty_host() { + } + + #[test] ++ #[ignore] + fn test_with_no_doc_stage0() { + let mut config = configure(&["A"], &["A"]); + config.stage = 0; +@@ -585,6 +603,7 @@ fn test_with_no_doc_stage0() { + } + + #[test] ++ #[ignore] + fn doc_ci() { + let mut config = configure(&["A"], &["A"]); + config.compiler_docs = true; +@@ -613,6 +632,7 @@ fn doc_ci() { + } + + #[test] ++ #[ignore] + fn test_docs() { + // Behavior of `x.py test` doing various documentation tests. + let mut config = configure(&["A"], &["A"]); +diff --git a/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr b/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr +--- a/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr 2023-01-10 10:47:33.000000000 -0800 ++++ b/tests/ui-fulldeps/internal-lints/bad_opt_access.stderr 2023-01-20 03:49:06.575109271 -0800 +@@ -1,20 +1,11 @@ +-error: use `Session::split_debuginfo` instead of this field +- --> $DIR/bad_opt_access.rs:14:13 ++error[E0463]: can't find crate for `rustc_macros` which `rustc_session` depends on ++ --> $DIR/bad_opt_access.rs:10:1 + | +-LL | let _ = sess.opts.cg.split_debuginfo; +- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ++LL | extern crate rustc_session; ++ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ can't find crate + | +-note: the lint level is defined here +- --> $DIR/bad_opt_access.rs:8:9 +- | +-LL | #![deny(rustc::bad_opt_access)] +- | ^^^^^^^^^^^^^^^^^^^^^ +- +-error: use `Session::crate_types` instead of this field +- --> $DIR/bad_opt_access.rs:17:13 +- | +-LL | let _ = sess.opts.crate_types; +- | ^^^^^^^^^^^^^^^^^^^^^ ++ = help: maybe you need to install the missing components with: `rustup component add rust-src rustc-dev llvm-tools-preview` + +-error: aborting due to 2 previous errors ++error: aborting due to previous error + ++For more information about this error, try `rustc --explain E0463`. +diff --git a/tests/ui/process/process-sigpipe.rs b/tests/ui/process/process-sigpipe.rs +--- a/tests/ui/process/process-sigpipe.rs 2023-01-10 10:47:33.000000000 -0800 ++++ b/tests/ui/process/process-sigpipe.rs 2023-01-27 01:07:05.335718181 -0800 +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + #![allow(unused_imports)] + #![allow(deprecated)] + +diff --git a/tests/run-make/static-pie/Makefile b/tests/run-make/static-pie/Makefile +--- a/tests/run-make/static-pie/Makefile 2023-02-21 02:25:36.553233415 -0800 ++++ b/tests/run-make/static-pie/Makefile 2023-02-21 02:19:45.848629908 -0800 +@@ -3,6 +3,7 @@ include ../../run-make-fulldeps/tools.mk + # only-x86_64 + # only-linux + # ignore-gnux32 ++# ignore-stage1 + + # How to manually run this + # $ ./x.py test --target x86_64-unknown-linux-[musl,gnu] tests/run-make/static-pie +diff --git a/tests/codegen/repr-transparent-aggregates-3.rs b/tests/codegen/repr-transparent-aggregates-3.rs +index 0db17e6b13a..6e9cb7224c8 100644 +--- a/tests/codegen/repr-transparent-aggregates-3.rs ++++ b/tests/codegen/repr-transparent-aggregates-3.rs +@@ -3,6 +3,7 @@ + + // only-mips64 + // See repr-transparent.rs ++// ignore-stage1 + + #![feature(transparent_unions)] + +diff --git a/tests/codegen/abi-repr-ext.rs b/tests/codegen/abi-repr-ext.rs +index 23ade3c7216..addd8a2ebdc 100644 +--- a/tests/codegen/abi-repr-ext.rs ++++ b/tests/codegen/abi-repr-ext.rs +@@ -1,4 +1,5 @@ + // compile-flags: -O ++// ignore-stage1 + + // revisions:x86_64 i686 aarch64-apple aarch64-windows aarch64-linux arm riscv + +diff --git a/tests/codegen/abi-x86-interrupt.rs b/tests/codegen/abi-x86-interrupt.rs +index 928ad5a9bbd..5185edaae40 100644 +--- a/tests/codegen/abi-x86-interrupt.rs ++++ b/tests/codegen/abi-x86-interrupt.rs +@@ -4,6 +4,7 @@ + + // needs-llvm-components: x86 + // compile-flags: -C no-prepopulate-passes --target=x86_64-unknown-linux-gnu -Copt-level=0 ++// ignore-stage1 + + #![crate_type = "lib"] + #![no_core] +diff --git a/tests/codegen/branch-protection.rs b/tests/codegen/branch-protection.rs +index 994c71b2619..5d83a29da74 100644 +--- a/tests/codegen/branch-protection.rs ++++ b/tests/codegen/branch-protection.rs +@@ -7,6 +7,7 @@ + // [LEAF] compile-flags: -Z branch-protection=pac-ret,leaf + // [BKEY] compile-flags: -Z branch-protection=pac-ret,b-key + // compile-flags: --target aarch64-unknown-linux-gnu ++// ignore-stage1 + + #![crate_type = "lib"] + #![feature(no_core, lang_items)] +diff --git a/tests/codegen/catch-unwind.rs b/tests/codegen/catch-unwind.rs +index b90ef104ce7..12d5d1451a2 100644 +--- a/tests/codegen/catch-unwind.rs ++++ b/tests/codegen/catch-unwind.rs +@@ -10,6 +10,7 @@ + // ignore-riscv64 FIXME + // On s390x the closure is also in another function + // ignore-s390x FIXME ++// ignore-stage1 + + #![crate_type = "lib"] + #![feature(c_unwind)] +diff --git a/tests/codegen/cf-protection.rs b/tests/codegen/cf-protection.rs +index ccbc863f571..f4281d87abf 100644 +--- a/tests/codegen/cf-protection.rs ++++ b/tests/codegen/cf-protection.rs +@@ -8,6 +8,7 @@ + // [return] compile-flags: -Z cf-protection=return + // [full] compile-flags: -Z cf-protection=full + // compile-flags: --target x86_64-unknown-linux-gnu ++// ignore-stage1 + + #![crate_type = "lib"] + #![feature(no_core, lang_items)] +diff --git a/tests/codegen/enum-bounds-check-derived-idx.rs b/tests/codegen/enum-bounds-check-derived-idx.rs +index aa66c2ed08e..db6c87c7338 100644 +--- a/tests/codegen/enum-bounds-check-derived-idx.rs ++++ b/tests/codegen/enum-bounds-check-derived-idx.rs +@@ -1,7 +1,7 @@ + // This test checks an optimization that is not guaranteed to work. This test case should not block + // a future LLVM update. + // compile-flags: -O +- ++// ignore-stage1 + #![crate_type = "lib"] + + pub enum Bar { +diff --git a/tests/codegen/force-unwind-tables.rs b/tests/codegen/force-unwind-tables.rs +index 4c0a5602c6d..d5faf190290 100644 +--- a/tests/codegen/force-unwind-tables.rs ++++ b/tests/codegen/force-unwind-tables.rs +@@ -1,5 +1,5 @@ + // compile-flags: -C no-prepopulate-passes -C force-unwind-tables=y +- ++// ignore-stage1 + #![crate_type="lib"] + + // CHECK: attributes #{{.*}} uwtable +diff --git a/tests/codegen/intrinsic-no-unnamed-attr.rs b/tests/codegen/intrinsic-no-unnamed-attr.rs +index c8a8e0b3e7a..f779f5cc27e 100644 +--- a/tests/codegen/intrinsic-no-unnamed-attr.rs ++++ b/tests/codegen/intrinsic-no-unnamed-attr.rs +@@ -1,5 +1,5 @@ + // compile-flags: -C no-prepopulate-passes +- ++// ignore-stage1 + #![feature(intrinsics)] + + extern "rust-intrinsic" { +diff --git a/tests/codegen/issue-103840.rs b/tests/codegen/issue-103840.rs +index f19d7031bb3..92408e75964 100644 +--- a/tests/codegen/issue-103840.rs ++++ b/tests/codegen/issue-103840.rs +@@ -1,5 +1,6 @@ + // compile-flags: -O + #![crate_type = "lib"] ++// ignore-stage1 + + pub fn foo(t: &mut Vec) { + // CHECK-NOT: __rust_dealloc +diff --git a/tests/codegen/issue-47278.rs b/tests/codegen/issue-47278.rs +index 9076274f45e..de7203e139b 100644 +--- a/tests/codegen/issue-47278.rs ++++ b/tests/codegen/issue-47278.rs +@@ -1,5 +1,6 @@ + // -C no-prepopulate-passes + #![crate_type="staticlib"] ++// ignore-stage1 + + #[repr(C)] + pub struct Foo(u64); +diff --git a/tests/codegen/issue-73827-bounds-check-index-in-subexpr.rs b/tests/codegen/issue-73827-bounds-check-index-in-subexpr.rs +index 1ad05906e21..8df862aeee5 100644 +--- a/tests/codegen/issue-73827-bounds-check-index-in-subexpr.rs ++++ b/tests/codegen/issue-73827-bounds-check-index-in-subexpr.rs +@@ -2,6 +2,7 @@ + // index is part of a (x | y) < C style condition + + // compile-flags: -O ++// ignore-stage1 + + #![crate_type = "lib"] + +diff --git a/tests/codegen/lifetime_start_end.rs b/tests/codegen/lifetime_start_end.rs +index 471a0b8cedd..356650de0c1 100644 +--- a/tests/codegen/lifetime_start_end.rs ++++ b/tests/codegen/lifetime_start_end.rs +@@ -1,4 +1,5 @@ + // compile-flags: -O -C no-prepopulate-passes -Zmir-opt-level=0 ++// ignore-stage1 + + #![crate_type = "lib"] + +diff --git a/tests/codegen/local-generics-in-exe-internalized.rs b/tests/codegen/local-generics-in-exe-internalized.rs +index 449c5ca75fc..746a7ed1b6f 100644 +--- a/tests/codegen/local-generics-in-exe-internalized.rs ++++ b/tests/codegen/local-generics-in-exe-internalized.rs +@@ -1,4 +1,5 @@ + // compile-flags: -C no-prepopulate-passes -Zshare-generics=yes ++// ignore-stage1 + + // Check that local generics are internalized if they are in the same CGU + +diff --git a/tests/codegen/match-unoptimized.rs b/tests/codegen/match-unoptimized.rs +index 78ea4f9b409..23b2c62bd38 100644 +--- a/tests/codegen/match-unoptimized.rs ++++ b/tests/codegen/match-unoptimized.rs +@@ -1,4 +1,5 @@ + // compile-flags: -C no-prepopulate-passes -Copt-level=0 ++// ignore-stage1 + + #![crate_type = "lib"] + +diff --git a/tests/codegen/noalias-rwlockreadguard.rs b/tests/codegen/noalias-rwlockreadguard.rs +index 7f7b46c85a8..a32910da3e7 100644 +--- a/tests/codegen/noalias-rwlockreadguard.rs ++++ b/tests/codegen/noalias-rwlockreadguard.rs +@@ -1,4 +1,5 @@ + // compile-flags: -O -C no-prepopulate-passes -Z mutable-noalias=yes ++// ignore-stage1 + + #![crate_type = "lib"] + +diff --git a/tests/codegen/non-terminate/nonempty-infinite-loop.rs b/tests/codegen/non-terminate/nonempty-infinite-loop.rs +index 5e25e04fc24..fce094f7efd 100644 +--- a/tests/codegen/non-terminate/nonempty-infinite-loop.rs ++++ b/tests/codegen/non-terminate/nonempty-infinite-loop.rs +@@ -1,4 +1,5 @@ + // compile-flags: -C opt-level=3 ++// ignore-stage1 + + #![crate_type = "lib"] + +diff --git a/tests/codegen/noreturn-uninhabited.rs b/tests/codegen/noreturn-uninhabited.rs +index 49f93cf62c7..2da42faeabd 100644 +--- a/tests/codegen/noreturn-uninhabited.rs ++++ b/tests/codegen/noreturn-uninhabited.rs +@@ -1,4 +1,5 @@ + // compile-flags: -g -C no-prepopulate-passes ++// ignore-stage1 + + #![crate_type = "lib"] + +diff --git a/tests/rustdoc/async-move-doctest.rs b/tests/rustdoc/async-move-doctest.rs +index 2ba61388c9e..402c5bbaaf7 100644 +--- a/tests/rustdoc/async-move-doctest.rs ++++ b/tests/rustdoc/async-move-doctest.rs +@@ -1,5 +1,6 @@ + // compile-flags:--test + // edition:2018 ++// ignore-stage1 + + // Prior to setting the default edition for the doctest pre-parser, + // this doctest would fail due to a fatal parsing error. +diff --git a/tests/rustdoc/async-trait.rs b/tests/rustdoc/async-trait.rs +index a473e467473..df3be5adc17 100644 +--- a/tests/rustdoc/async-trait.rs ++++ b/tests/rustdoc/async-trait.rs +@@ -1,5 +1,6 @@ + // aux-build:async-trait-dep.rs + // edition:2021 ++// ignore-stage1 + + #![feature(async_fn_in_trait)] + #![allow(incomplete_features)] +diff --git a/tests/rustdoc/check-source-code-urls-to-def.rs b/tests/rustdoc/check-source-code-urls-to-def.rs +index 41b9d41fa44..0805a07a0c9 100644 +--- a/tests/rustdoc/check-source-code-urls-to-def.rs ++++ b/tests/rustdoc/check-source-code-urls-to-def.rs +@@ -1,6 +1,7 @@ + // compile-flags: -Zunstable-options --generate-link-to-definition + // aux-build:source_code.rs + // build-aux-docs ++// ignore-stage1 + + #![feature(rustdoc_internals)] + +diff --git a/tests/rustdoc/comment-in-doctest.rs b/tests/rustdoc/comment-in-doctest.rs +index 5691d173569..a57c0e1f3bd 100644 +--- a/tests/rustdoc/comment-in-doctest.rs ++++ b/tests/rustdoc/comment-in-doctest.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + // comments, both doc comments and regular ones, used to trick rustdoc's doctest parser into + // thinking that everything after it was part of the regular program. combined with the librustc_ast +diff --git a/tests/rustdoc/const-generics/const-generics-docs.rs b/tests/rustdoc/const-generics/const-generics-docs.rs +index 828486a41d4..02a934996f8 100644 +--- a/tests/rustdoc/const-generics/const-generics-docs.rs ++++ b/tests/rustdoc/const-generics/const-generics-docs.rs +@@ -1,5 +1,7 @@ + // edition:2018 + // aux-build: extern_crate.rs ++// ignore-stage1 ++ + #![crate_name = "foo"] + + extern crate extern_crate; +diff --git a/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs b/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs +index d02bc4fe712..6f432da06bf 100644 +--- a/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs ++++ b/tests/rustdoc/cross-crate-hidden-assoc-trait-items.rs +@@ -1,5 +1,6 @@ + // Regression test for issue #95717 + // Hide cross-crate `#[doc(hidden)]` associated items in trait impls. ++// ignore-stage1 + + #![crate_name = "dependent"] + // edition:2021 +diff --git a/tests/rustdoc/cross-crate-hidden-impl-parameter.rs b/tests/rustdoc/cross-crate-hidden-impl-parameter.rs +index eb2ced2f7f4..08a6f8b27f3 100644 +--- a/tests/rustdoc/cross-crate-hidden-impl-parameter.rs ++++ b/tests/rustdoc/cross-crate-hidden-impl-parameter.rs +@@ -1,4 +1,6 @@ + // Issue #86448: test for cross-crate `doc(hidden)` ++// ignore-stage1 ++ + #![crate_name = "foo"] + + // aux-build:cross-crate-hidden-impl-parameter.rs +diff --git a/tests/rustdoc/cross-crate-links.rs b/tests/rustdoc/cross-crate-links.rs +index 7c736a4cc11..a0be9a367c6 100644 +--- a/tests/rustdoc/cross-crate-links.rs ++++ b/tests/rustdoc/cross-crate-links.rs +@@ -1,5 +1,6 @@ + // aux-build:all-item-types.rs + // build-aux-docs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/cross-crate-primitive-doc.rs b/tests/rustdoc/cross-crate-primitive-doc.rs +index 4ba296ee04a..51fa62ffb53 100644 +--- a/tests/rustdoc/cross-crate-primitive-doc.rs ++++ b/tests/rustdoc/cross-crate-primitive-doc.rs +@@ -1,6 +1,7 @@ + // aux-build:primitive-doc.rs + // compile-flags: --extern-html-root-url=primitive_doc=../ -Z unstable-options + // only-linux ++// ignore-stage1 + + #![feature(no_core)] + #![no_core] +diff --git a/tests/rustdoc/doctest-manual-crate-name.rs b/tests/rustdoc/doctest-manual-crate-name.rs +index 3a5e3734e14..2b4b19b4708 100644 +--- a/tests/rustdoc/doctest-manual-crate-name.rs ++++ b/tests/rustdoc/doctest-manual-crate-name.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + //! ``` + //! #![crate_name="asdf"] +diff --git a/tests/rustdoc/edition-doctest.rs b/tests/rustdoc/edition-doctest.rs +index 6de25996bed..4acb562a29c 100644 +--- a/tests/rustdoc/edition-doctest.rs ++++ b/tests/rustdoc/edition-doctest.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + /// ```rust,edition2018 + /// #![feature(try_blocks)] +diff --git a/tests/rustdoc/edition-flag.rs b/tests/rustdoc/edition-flag.rs +index e54c7d2969b..4cee5e1a3cf 100644 +--- a/tests/rustdoc/edition-flag.rs ++++ b/tests/rustdoc/edition-flag.rs +@@ -1,5 +1,6 @@ + // compile-flags:--test + // edition:2018 ++// ignore-stage1 + + /// ```rust + /// fn main() { +diff --git a/tests/rustdoc/elided-lifetime.rs b/tests/rustdoc/elided-lifetime.rs +index 006132ef8aa..75ac6496dfb 100644 +--- a/tests/rustdoc/elided-lifetime.rs ++++ b/tests/rustdoc/elided-lifetime.rs +@@ -4,6 +4,7 @@ + // + // Since Rust 2018 we encourage writing out <'_> explicitly to make it clear + // that borrowing is occurring. Make sure rustdoc is following the same idiom. ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/extern-html-root-url.rs b/tests/rustdoc/extern-html-root-url.rs +index 17eedcf2ab8..429bf78b9d5 100644 +--- a/tests/rustdoc/extern-html-root-url.rs ++++ b/tests/rustdoc/extern-html-root-url.rs +@@ -2,6 +2,7 @@ + // aux-build:html_root.rs + // aux-build:no_html_root.rs + // NOTE: intentionally does not build any auxiliary docs ++// ignore-stage1 + + extern crate html_root; + extern crate no_html_root; +diff --git a/tests/rustdoc/extern-impl-trait.rs b/tests/rustdoc/extern-impl-trait.rs +index 8ab026afd1b..c47d6802211 100644 +--- a/tests/rustdoc/extern-impl-trait.rs ++++ b/tests/rustdoc/extern-impl-trait.rs +@@ -1,4 +1,5 @@ + // aux-build:extern-impl-trait.rs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/external-macro-src.rs b/tests/rustdoc/external-macro-src.rs +index 359551ab78d..86499a0bf2e 100644 +--- a/tests/rustdoc/external-macro-src.rs ++++ b/tests/rustdoc/external-macro-src.rs +@@ -1,4 +1,5 @@ + // aux-build:external-macro-src.rs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/hide-unstable-trait.rs b/tests/rustdoc/hide-unstable-trait.rs +index 0bf7cabc43b..9ceeccfead8 100644 +--- a/tests/rustdoc/hide-unstable-trait.rs ++++ b/tests/rustdoc/hide-unstable-trait.rs +@@ -1,4 +1,5 @@ + // aux-build:unstable-trait.rs ++// ignore-stage1 + + #![crate_name = "foo"] + #![feature(private_trait)] +diff --git a/tests/rustdoc/inline_cross/add-docs.rs b/tests/rustdoc/inline_cross/add-docs.rs +index a1124d2094c..a11b866647d 100644 +--- a/tests/rustdoc/inline_cross/add-docs.rs ++++ b/tests/rustdoc/inline_cross/add-docs.rs +@@ -1,4 +1,5 @@ + // aux-build:add-docs.rs ++// ignore-stage1 + + extern crate inner; + +diff --git a/tests/rustdoc/inline_cross/default-trait-method.rs b/tests/rustdoc/inline_cross/default-trait-method.rs +index a4ec73a127d..8db38c99791 100644 +--- a/tests/rustdoc/inline_cross/default-trait-method.rs ++++ b/tests/rustdoc/inline_cross/default-trait-method.rs +@@ -1,4 +1,5 @@ + // aux-build:default-trait-method.rs ++// ignore-stage1 + + extern crate foo; + +diff --git a/tests/rustdoc/inline_cross/impl_trait.rs b/tests/rustdoc/inline_cross/impl_trait.rs +index b6a1552bc00..85377b19e0d 100644 +--- a/tests/rustdoc/inline_cross/impl_trait.rs ++++ b/tests/rustdoc/inline_cross/impl_trait.rs +@@ -1,5 +1,6 @@ + // aux-build:impl_trait_aux.rs + // edition:2018 ++// ignore-stage1 + + extern crate impl_trait_aux; + +diff --git a/tests/rustdoc/inline_cross/issue-24183.rs b/tests/rustdoc/inline_cross/issue-24183.rs +index 751a32385e8..d25211cb2b0 100644 +--- a/tests/rustdoc/inline_cross/issue-24183.rs ++++ b/tests/rustdoc/inline_cross/issue-24183.rs +@@ -1,5 +1,6 @@ + #![crate_type = "lib"] + #![crate_name = "usr"] ++// ignore-stage1 + + // aux-crate:issue_24183=issue-24183.rs + // edition: 2021 +diff --git a/tests/rustdoc/inline_cross/macros.rs b/tests/rustdoc/inline_cross/macros.rs +index a41b9c5b197..1b4bccee176 100644 +--- a/tests/rustdoc/inline_cross/macros.rs ++++ b/tests/rustdoc/inline_cross/macros.rs +@@ -1,5 +1,6 @@ + // aux-build:macros.rs + // build-aux-docs ++// ignore-stage1 + + #![feature(macro_test)] + #![crate_name = "foo"] +diff --git a/tests/rustdoc/inline_cross/trait-vis.rs b/tests/rustdoc/inline_cross/trait-vis.rs +index b646babacc5..b77e966afe3 100644 +--- a/tests/rustdoc/inline_cross/trait-vis.rs ++++ b/tests/rustdoc/inline_cross/trait-vis.rs +@@ -1,4 +1,5 @@ + // aux-build:trait-vis.rs ++// ignore-stage1 + + extern crate inner; + +diff --git a/tests/rustdoc/inline_cross/use_crate.rs b/tests/rustdoc/inline_cross/use_crate.rs +index 00e0f041c56..c5bf6010d93 100644 +--- a/tests/rustdoc/inline_cross/use_crate.rs ++++ b/tests/rustdoc/inline_cross/use_crate.rs +@@ -3,6 +3,7 @@ + // build-aux-docs + // edition:2018 + // compile-flags:--extern use_crate --extern use_crate_2 ++// ignore-stage1 + + // During the buildup to Rust 2018, rustdoc would eagerly inline `pub use some_crate;` as if it + // were a module, so we changed it to make `pub use`ing crate roots remain as a `pub use` statement +diff --git a/tests/rustdoc/intra-doc-crate/self.rs b/tests/rustdoc/intra-doc-crate/self.rs +index 8c36a7fa002..848e17a18a1 100644 +--- a/tests/rustdoc/intra-doc-crate/self.rs ++++ b/tests/rustdoc/intra-doc-crate/self.rs +@@ -1,5 +1,6 @@ + // aux-build:self.rs + // build-aux-docs ++// ignore-stage1 + + extern crate cross_crate_self; + +diff --git a/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs b/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs +index e52fb9b1c9f..765ad78fb4d 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/additional_doc.rs +@@ -1,5 +1,7 @@ + // aux-build:additional_doc.rs + // build-aux-docs ++// ignore-stage1 ++ + #![deny(rustdoc::broken_intra_doc_links)] + + extern crate my_rand; +diff --git a/tests/rustdoc/intra-doc/cross-crate/basic.rs b/tests/rustdoc/intra-doc/cross-crate/basic.rs +index ad7454918b4..a959a15a672 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/basic.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/basic.rs +@@ -1,5 +1,7 @@ + // aux-build:intra-doc-basic.rs + // build-aux-docs ++// ignore-stage1 ++ + #![deny(rustdoc::broken_intra_doc_links)] + + // from https://github.com/rust-lang/rust/issues/65983 +diff --git a/tests/rustdoc/intra-doc/cross-crate/crate.rs b/tests/rustdoc/intra-doc/cross-crate/crate.rs +index edf544708b6..735847bcbb5 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/crate.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/crate.rs +@@ -1,5 +1,7 @@ + // aux-build:intra-link-cross-crate-crate.rs + // build-aux-docs ++// ignore-stage1 ++ + #![crate_name = "outer"] + extern crate inner; + // @has outer/fn.f.html '//a[@href="../inner/fn.g.html"]' "crate::g" +diff --git a/tests/rustdoc/intra-doc/cross-crate/hidden.rs b/tests/rustdoc/intra-doc/cross-crate/hidden.rs +index 4f7d075ba48..d7ffed2d19d 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/hidden.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/hidden.rs +@@ -1,5 +1,7 @@ + // aux-build:hidden.rs + // build-aux-docs ++// ignore-stage1 ++ + #![deny(rustdoc::broken_intra_doc_links)] + + // tests https://github.com/rust-lang/rust/issues/73363 +diff --git a/tests/rustdoc/intra-doc/cross-crate/macro.rs b/tests/rustdoc/intra-doc/cross-crate/macro.rs +index 32f0a55d3c6..31add14b3b6 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/macro.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/macro.rs +@@ -1,6 +1,8 @@ + // aux-build:macro_inner.rs + // aux-build:proc_macro.rs + // build-aux-docs ++// ignore-stage1 ++ + #![deny(rustdoc::broken_intra_doc_links)] + extern crate macro_inner; + extern crate proc_macro_inner; +diff --git a/tests/rustdoc/intra-doc/cross-crate/module.rs b/tests/rustdoc/intra-doc/cross-crate/module.rs +index fde9322657d..72e55a83007 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/module.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/module.rs +@@ -1,6 +1,8 @@ + // outer.rs + // aux-build: module.rs + // build-aux-docs ++// ignore-stage1 ++ + #![deny(rustdoc::broken_intra_doc_links)] + extern crate module_inner; + // @has 'module/bar/index.html' '//a[@href="../../module_inner/trait.SomeTrait.html"]' 'SomeTrait' +diff --git a/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs b/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs +index 577fe78a508..1da901cd8b8 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/submodule-inner.rs +@@ -1,5 +1,7 @@ + // aux-build:submodule-inner.rs + // build-aux-docs ++// ignore-stage1 ++ + #![deny(rustdoc::broken_intra_doc_links)] + + extern crate a; +diff --git a/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs b/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs +index d0c0b7e85ae..39c42c5a684 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/submodule-outer.rs +@@ -1,5 +1,7 @@ + // aux-build:submodule-outer.rs + // edition:2018 ++// ignore-stage1 ++ + #![deny(rustdoc::broken_intra_doc_links)] + + extern crate bar as bar_; +diff --git a/tests/rustdoc/intra-doc/cross-crate/traits.rs b/tests/rustdoc/intra-doc/cross-crate/traits.rs +index 7b9554bfdb0..0417a5f4537 100644 +--- a/tests/rustdoc/intra-doc/cross-crate/traits.rs ++++ b/tests/rustdoc/intra-doc/cross-crate/traits.rs +@@ -1,5 +1,7 @@ + // aux-build:traits.rs + // build-aux-docs ++// ignore-stage1 ++ + #![deny(rustdoc::broken_intra_doc_links)] + + extern crate inner; +diff --git a/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs b/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs +index 7bb1ded3f3c..994ece708ca 100644 +--- a/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs ++++ b/tests/rustdoc/intra-doc/extern-builtin-type-impl.rs +@@ -1,6 +1,7 @@ + // Reexport of a structure that derefs to a type with lang item impls having doc links in their + // comments. The doc link points to an associated item, so we check that traits in scope for that + // link are populated. ++// ignore-stage1 + + // aux-build:extern-builtin-type-impl-dep.rs + +diff --git a/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs b/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs +index ad50887e922..69d5aa1717a 100644 +--- a/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs ++++ b/tests/rustdoc/intra-doc/extern-crate-only-used-in-link.rs +@@ -7,6 +7,7 @@ + // aux-crate:priv:empty2=empty2.rs + // build-aux-docs + // compile-flags:-Z unstable-options --edition 2018 ++// ignore-stage1 + + // @has extern_crate_only_used_in_link/index.html + // @has - '//a[@href="../issue_66159_1/struct.Something.html"]' 'issue_66159_1::Something' +diff --git a/tests/rustdoc/intra-doc/extern-crate.rs b/tests/rustdoc/intra-doc/extern-crate.rs +index 4e4438dea03..b6793531515 100644 +--- a/tests/rustdoc/intra-doc/extern-crate.rs ++++ b/tests/rustdoc/intra-doc/extern-crate.rs +@@ -3,6 +3,7 @@ + // When loading `extern crate` statements, we would pull in their docs at the same time, even + // though they would never actually get displayed. This tripped intra-doc-link resolution failures, + // for items that aren't under our control, and not actually getting documented! ++// ignore-stage1 + + #![deny(rustdoc::broken_intra_doc_links)] + +diff --git a/tests/rustdoc/intra-doc/extern-inherent-impl.rs b/tests/rustdoc/intra-doc/extern-inherent-impl.rs +index 2e41c2214f4..8851071adbd 100644 +--- a/tests/rustdoc/intra-doc/extern-inherent-impl.rs ++++ b/tests/rustdoc/intra-doc/extern-inherent-impl.rs +@@ -1,5 +1,6 @@ + // Reexport of a structure with public inherent impls having doc links in their comments. The doc + // link points to an associated item, so we check that traits in scope for that link are populated. ++// ignore-stage1 + + // aux-build:extern-inherent-impl-dep.rs + +diff --git a/tests/rustdoc/intra-doc/extern-reference-link.rs b/tests/rustdoc/intra-doc/extern-reference-link.rs +index bad6ec75579..43cf0c23e8b 100644 +--- a/tests/rustdoc/intra-doc/extern-reference-link.rs ++++ b/tests/rustdoc/intra-doc/extern-reference-link.rs +@@ -1,5 +1,6 @@ + // compile-flags: --extern pub_struct + // aux-build:pub-struct.rs ++// ignore-stage1 + + /// [SomeStruct] + /// +diff --git a/tests/rustdoc/intra-doc/issue-103463.rs b/tests/rustdoc/intra-doc/issue-103463.rs +index 4adf8a9a8a4..3b965529577 100644 +--- a/tests/rustdoc/intra-doc/issue-103463.rs ++++ b/tests/rustdoc/intra-doc/issue-103463.rs +@@ -1,6 +1,7 @@ + // The `Trait` is not pulled into the crate resulting in doc links in its methods being resolved. + + // aux-build:issue-103463-aux.rs ++// ignore-stage1 + + extern crate issue_103463_aux; + use issue_103463_aux::Trait; +diff --git a/tests/rustdoc/intra-doc/issue-104145.rs b/tests/rustdoc/intra-doc/issue-104145.rs +index 9ce36740d60..74c790ddd45 100644 +--- a/tests/rustdoc/intra-doc/issue-104145.rs ++++ b/tests/rustdoc/intra-doc/issue-104145.rs +@@ -1,6 +1,7 @@ + // Doc links in `Trait`'s methods are resolved because it has a local impl. + + // aux-build:issue-103463-aux.rs ++// ignore-stage1 + + extern crate issue_103463_aux; + use issue_103463_aux::Trait; +diff --git a/tests/rustdoc/intra-doc/issue-66159.rs b/tests/rustdoc/intra-doc/issue-66159.rs +index 56742b39790..64ef5f3d07c 100644 +--- a/tests/rustdoc/intra-doc/issue-66159.rs ++++ b/tests/rustdoc/intra-doc/issue-66159.rs +@@ -1,5 +1,6 @@ + // aux-crate:priv:pub_struct=pub-struct.rs + // compile-flags:-Z unstable-options ++// ignore-stage1 + + // The issue was an ICE which meant that we never actually generated the docs + // so if we have generated the docs, we're okay. +diff --git a/tests/rustdoc/intra-doc/pub-use.rs b/tests/rustdoc/intra-doc/pub-use.rs +index 8a998496cf5..26109bc52fc 100644 +--- a/tests/rustdoc/intra-doc/pub-use.rs ++++ b/tests/rustdoc/intra-doc/pub-use.rs +@@ -1,4 +1,5 @@ + // aux-build: intra-link-pub-use.rs ++// ignore-stage1 + #![deny(rustdoc::broken_intra_doc_links)] + #![crate_name = "outer"] + +diff --git a/tests/rustdoc/intra-doc/reexport-additional-docs.rs b/tests/rustdoc/intra-doc/reexport-additional-docs.rs +index 64683bacd65..6ed63e4dd26 100644 +--- a/tests/rustdoc/intra-doc/reexport-additional-docs.rs ++++ b/tests/rustdoc/intra-doc/reexport-additional-docs.rs +@@ -1,5 +1,7 @@ + // aux-build:intra-link-reexport-additional-docs.rs + // build-aux-docs ++// ignore-stage1 ++ + #![crate_name = "foo"] + extern crate inner; + +diff --git a/tests/rustdoc/issue-18199.rs b/tests/rustdoc/issue-18199.rs +index bc0c4a56502..1995fd2ec7d 100644 +--- a/tests/rustdoc/issue-18199.rs ++++ b/tests/rustdoc/issue-18199.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + #![doc(test(attr(feature(staged_api))))] + +diff --git a/tests/rustdoc/issue-23106.rs b/tests/rustdoc/issue-23106.rs +index 8cda2fc3380..e7b5c1e28c5 100644 +--- a/tests/rustdoc/issue-23106.rs ++++ b/tests/rustdoc/issue-23106.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + /// ``` + /// # +diff --git a/tests/rustdoc/issue-23744.rs b/tests/rustdoc/issue-23744.rs +index 642817396b2..780b131a842 100644 +--- a/tests/rustdoc/issue-23744.rs ++++ b/tests/rustdoc/issue-23744.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + /// Example of rustdoc incorrectly parsing ```rust,should_panic. + /// +diff --git a/tests/rustdoc/issue-25944.rs b/tests/rustdoc/issue-25944.rs +index 49625294bbe..b6df4518de4 100644 +--- a/tests/rustdoc/issue-25944.rs ++++ b/tests/rustdoc/issue-25944.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + /// ``` + /// let a = r#" +diff --git a/tests/rustdoc/issue-30252.rs b/tests/rustdoc/issue-30252.rs +index c3777362a66..a80f92dc754 100644 +--- a/tests/rustdoc/issue-30252.rs ++++ b/tests/rustdoc/issue-30252.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test --cfg feature="bar" ++// ignore-stage1 + + /// ```rust + /// assert_eq!(cfg!(feature = "bar"), true); +diff --git a/tests/rustdoc/issue-38129.rs b/tests/rustdoc/issue-38129.rs +index 156d50fa52a..60ab5dd1885 100644 +--- a/tests/rustdoc/issue-38129.rs ++++ b/tests/rustdoc/issue-38129.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + // This file tests the source-partitioning behavior of rustdoc. + // Each test contains some code that should be put into the generated +diff --git a/tests/rustdoc/issue-40936.rs b/tests/rustdoc/issue-40936.rs +index 4d2e4c17b1f..8dcfc4068d3 100644 +--- a/tests/rustdoc/issue-40936.rs ++++ b/tests/rustdoc/issue-40936.rs +@@ -1,5 +1,6 @@ + // aux-build:issue-40936.rs + // build-aux-docs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/issue-43153.rs b/tests/rustdoc/issue-43153.rs +index 0fe680f10af..8c67d64826a 100644 +--- a/tests/rustdoc/issue-43153.rs ++++ b/tests/rustdoc/issue-43153.rs +@@ -1,5 +1,6 @@ + // Test that `include!` in a doc test searches relative to the directory in + // which the test is declared. ++// ignore-stage1 + + // compile-flags:--test + +diff --git a/tests/rustdoc/issue-46727.rs b/tests/rustdoc/issue-46727.rs +index 8cfc4827a7f..55f155e0219 100644 +--- a/tests/rustdoc/issue-46727.rs ++++ b/tests/rustdoc/issue-46727.rs +@@ -1,4 +1,5 @@ + // aux-build:issue-46727.rs ++// ignore-stage1 + + extern crate issue_46727; + +diff --git a/tests/rustdoc/issue-48377.rs b/tests/rustdoc/issue-48377.rs +index c32bcf380ea..c196b77a3e7 100644 +--- a/tests/rustdoc/issue-48377.rs ++++ b/tests/rustdoc/issue-48377.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + //! This is a doc comment + //! +diff --git a/tests/rustdoc/issue-48414.rs b/tests/rustdoc/issue-48414.rs +index b35743d887b..e8ade910228 100644 +--- a/tests/rustdoc/issue-48414.rs ++++ b/tests/rustdoc/issue-48414.rs +@@ -1,4 +1,5 @@ + // aux-build:issue-48414.rs ++// ignore-stage1 + + // ICE when resolving paths for a trait that linked to another trait, when both were in an external + // crate +diff --git a/tests/rustdoc/issue-53689.rs b/tests/rustdoc/issue-53689.rs +index 832140e061b..9a40ea6bc1b 100644 +--- a/tests/rustdoc/issue-53689.rs ++++ b/tests/rustdoc/issue-53689.rs +@@ -1,4 +1,5 @@ + // aux-build:issue-53689.rs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/issue-54478-demo-allocator.rs b/tests/rustdoc/issue-54478-demo-allocator.rs +index 4811f363bc9..f4d12f6f630 100644 +--- a/tests/rustdoc/issue-54478-demo-allocator.rs ++++ b/tests/rustdoc/issue-54478-demo-allocator.rs +@@ -1,5 +1,6 @@ + // Issue #54478: regression test showing that we can demonstrate + // `#[global_allocator]` in code blocks built by `rustdoc`. ++// ignore-stage1 + // + // ## Background + // +@@ -11,6 +12,7 @@ + // Rather than try to revise the visbility semanics, we instead + // decided to change `rustdoc` to behave more like the compiler's + // default setting, by leaving off `-C prefer-dynamic`. ++// ignore-stage1 + + // compile-flags:--test + +diff --git a/tests/rustdoc/issue-57180.rs b/tests/rustdoc/issue-57180.rs +index 14bd2b0fec0..5f89e5d42f5 100644 +--- a/tests/rustdoc/issue-57180.rs ++++ b/tests/rustdoc/issue-57180.rs +@@ -1,4 +1,5 @@ + // aux-build:issue-57180.rs ++// ignore-stage1 + + extern crate issue_57180; + use issue_57180::Trait; +diff --git a/tests/rustdoc/issue-61592.rs b/tests/rustdoc/issue-61592.rs +index 4b6c37b94aa..048487390bb 100644 +--- a/tests/rustdoc/issue-61592.rs ++++ b/tests/rustdoc/issue-61592.rs +@@ -1,4 +1,5 @@ + // aux-build:issue-61592.rs ++// ignore-stage1 + + extern crate foo; + +diff --git a/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs b/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs +index 2700f2370ee..d883c03d7d2 100644 +--- a/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs ++++ b/tests/rustdoc/issue-73061-cross-crate-opaque-assoc-type.rs +@@ -1,4 +1,5 @@ + // Regression test for ICE #73061 ++// ignore-stage1 + + // aux-build:issue-73061.rs + +diff --git a/tests/rustdoc/issue-75588.rs b/tests/rustdoc/issue-75588.rs +index 3b11059a755..e78cdfa236e 100644 +--- a/tests/rustdoc/issue-75588.rs ++++ b/tests/rustdoc/issue-75588.rs +@@ -1,5 +1,6 @@ + // aux-build:realcore.rs + // aux-build:real_gimli.rs ++// ignore-stage1 + + // Ensure unstably exported traits have their Implementors sections. + +diff --git a/tests/rustdoc/issue-85454.rs b/tests/rustdoc/issue-85454.rs +index 5a49a9d0651..fd2f4f8b535 100644 +--- a/tests/rustdoc/issue-85454.rs ++++ b/tests/rustdoc/issue-85454.rs +@@ -1,4 +1,5 @@ + // aux-build:issue-85454.rs ++// ignore-stage1 + // build-aux-docs + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/issue-86620.rs b/tests/rustdoc/issue-86620.rs +index ef15946ec50..675a12b4d14 100644 +--- a/tests/rustdoc/issue-86620.rs ++++ b/tests/rustdoc/issue-86620.rs +@@ -1,4 +1,5 @@ + // aux-build:issue-86620-1.rs ++// ignore-stage1 + + extern crate issue_86620_1; + +diff --git a/tests/rustdoc/macro_pub_in_module.rs b/tests/rustdoc/macro_pub_in_module.rs +index 42f760cff6a..1a51aef9a8a 100644 +--- a/tests/rustdoc/macro_pub_in_module.rs ++++ b/tests/rustdoc/macro_pub_in_module.rs +@@ -1,5 +1,6 @@ + // aux-build:macro_pub_in_module.rs + // edition:2018 ++// ignore-stage1 + // build-aux-docs + + //! See issue #74355 +diff --git a/tests/rustdoc/masked.rs b/tests/rustdoc/masked.rs +index 875c026fd05..416d8fbabd0 100644 +--- a/tests/rustdoc/masked.rs ++++ b/tests/rustdoc/masked.rs +@@ -1,4 +1,5 @@ + // aux-build:masked.rs ++// ignore-stage1 + + #![feature(doc_masked)] + +diff --git a/tests/rustdoc/no-stack-overflow-25295.rs b/tests/rustdoc/no-stack-overflow-25295.rs +index dd79f1e4baa..0bc58afa4cb 100644 +--- a/tests/rustdoc/no-stack-overflow-25295.rs ++++ b/tests/rustdoc/no-stack-overflow-25295.rs +@@ -1,5 +1,6 @@ + // Ensure this code doesn't stack overflow. + // aux-build:enum-primitive.rs ++// ignore-stage1 + + #[macro_use] extern crate enum_primitive; + +diff --git a/tests/rustdoc/normalize-assoc-item.rs b/tests/rustdoc/normalize-assoc-item.rs +index c6fd5e1101e..945a31853f4 100644 +--- a/tests/rustdoc/normalize-assoc-item.rs ++++ b/tests/rustdoc/normalize-assoc-item.rs +@@ -1,4 +1,5 @@ + // ignore-tidy-linelength ++// ignore-stage1 + // aux-build:normalize-assoc-item.rs + // build-aux-docs + // compile-flags:-Znormalize-docs +diff --git a/tests/rustdoc/primitive-reexport.rs b/tests/rustdoc/primitive-reexport.rs +index 10a8a47db52..ecdb4848265 100644 +--- a/tests/rustdoc/primitive-reexport.rs ++++ b/tests/rustdoc/primitive-reexport.rs +@@ -1,5 +1,6 @@ + // aux-build: primitive-reexport.rs + // compile-flags:--extern foo --edition 2018 ++// ignore-stage1 + + #![crate_name = "bar"] + +diff --git a/tests/rustdoc/process-termination.rs b/tests/rustdoc/process-termination.rs +index 32258792b6e..2236842afc9 100644 +--- a/tests/rustdoc/process-termination.rs ++++ b/tests/rustdoc/process-termination.rs +@@ -1,4 +1,5 @@ + // compile-flags:--test ++// ignore-stage1 + + /// A check of using various process termination strategies + /// +diff --git a/tests/rustdoc/pub-extern-crate.rs b/tests/rustdoc/pub-extern-crate.rs +index 26747a4d1ac..98b3068cfd5 100644 +--- a/tests/rustdoc/pub-extern-crate.rs ++++ b/tests/rustdoc/pub-extern-crate.rs +@@ -1,4 +1,5 @@ + // aux-build:pub-extern-crate.rs ++// ignore-stage1 + + // @has pub_extern_crate/index.html + // @!has - '//code' 'pub extern crate inner' +diff --git a/tests/rustdoc/pub-use-extern-macros.rs b/tests/rustdoc/pub-use-extern-macros.rs +index eefe6b4b073..f67ec499459 100644 +--- a/tests/rustdoc/pub-use-extern-macros.rs ++++ b/tests/rustdoc/pub-use-extern-macros.rs +@@ -1,4 +1,5 @@ + // aux-build:pub-use-extern-macros.rs ++// ignore-stage1 + + extern crate macros; + +diff --git a/tests/rustdoc/reexport-check.rs b/tests/rustdoc/reexport-check.rs +index 5908d2150f2..9e3c825558e 100644 +--- a/tests/rustdoc/reexport-check.rs ++++ b/tests/rustdoc/reexport-check.rs +@@ -1,4 +1,6 @@ + // aux-build:reexport-check.rs ++// ignore-stage1 ++ + #![crate_name = "foo"] + + extern crate reexport_check; +diff --git a/tests/rustdoc/reexport-dep-foreign-fn.rs b/tests/rustdoc/reexport-dep-foreign-fn.rs +index e7f5720d583..f09e2da12f8 100644 +--- a/tests/rustdoc/reexport-dep-foreign-fn.rs ++++ b/tests/rustdoc/reexport-dep-foreign-fn.rs +@@ -1,4 +1,5 @@ + // aux-build:all-item-types.rs ++// ignore-stage1 + + // This test is to ensure there is no problem on handling foreign functions + // coming from a dependency. +diff --git a/tests/rustdoc/reexport-doc.rs b/tests/rustdoc/reexport-doc.rs +index df2c889b4d5..52558b39068 100644 +--- a/tests/rustdoc/reexport-doc.rs ++++ b/tests/rustdoc/reexport-doc.rs +@@ -1,4 +1,5 @@ + // aux-build:reexport-doc-aux.rs ++// ignore-stage1 + + extern crate reexport_doc_aux as dep; + +diff --git a/tests/rustdoc/reexports-priv.rs b/tests/rustdoc/reexports-priv.rs +index 571d7f06fdc..bec1096ad14 100644 +--- a/tests/rustdoc/reexports-priv.rs ++++ b/tests/rustdoc/reexports-priv.rs +@@ -1,4 +1,5 @@ + // aux-build: reexports.rs ++// ignore-stage1 + // compile-flags: --document-private-items + + #![crate_name = "foo"] +diff --git a/tests/rustdoc/reexports.rs b/tests/rustdoc/reexports.rs +index 3c51ac395af..018abbfd277 100644 +--- a/tests/rustdoc/reexports.rs ++++ b/tests/rustdoc/reexports.rs +@@ -1,4 +1,5 @@ + // aux-build: reexports.rs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/rustc-incoherent-impls.rs b/tests/rustdoc/rustc-incoherent-impls.rs +index 3fdefbecc54..c8382a50679 100644 +--- a/tests/rustdoc/rustc-incoherent-impls.rs ++++ b/tests/rustdoc/rustc-incoherent-impls.rs +@@ -1,4 +1,5 @@ + // aux-build:incoherent-impl-types.rs ++// ignore-stage1 + // build-aux-docs + + #![crate_name = "foo"] +diff --git a/tests/rustdoc/test_option_check/bar.rs b/tests/rustdoc/test_option_check/bar.rs +index 50a182cf7e0..6f48c9c923b 100644 +--- a/tests/rustdoc/test_option_check/bar.rs ++++ b/tests/rustdoc/test_option_check/bar.rs +@@ -1,5 +1,6 @@ + // compile-flags: --test + // check-test-line-numbers-match ++// ignore-stage1 + + /// This looks like another awesome test! + /// +diff --git a/tests/rustdoc/test_option_check/test.rs b/tests/rustdoc/test_option_check/test.rs +index 964e8e37ed5..208bccafe4c 100644 +--- a/tests/rustdoc/test_option_check/test.rs ++++ b/tests/rustdoc/test_option_check/test.rs +@@ -1,4 +1,5 @@ + // compile-flags: --test ++// ignore-stage1 + // check-test-line-numbers-match + + pub mod bar; +diff --git a/tests/rustdoc/trait-alias-mention.rs b/tests/rustdoc/trait-alias-mention.rs +index 6da0dc68785..8916e1321c7 100644 +--- a/tests/rustdoc/trait-alias-mention.rs ++++ b/tests/rustdoc/trait-alias-mention.rs +@@ -1,5 +1,6 @@ + // aux-build:trait-alias-mention.rs + // build-aux-docs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/trait-visibility.rs b/tests/rustdoc/trait-visibility.rs +index 8ba3ee03a74..9bd62dd5c0a 100644 +--- a/tests/rustdoc/trait-visibility.rs ++++ b/tests/rustdoc/trait-visibility.rs +@@ -1,4 +1,5 @@ + // aux-build:trait-visibility.rs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/rustdoc/unit-return.rs b/tests/rustdoc/unit-return.rs +index 6ddfa0c4d5c..a144308a581 100644 +--- a/tests/rustdoc/unit-return.rs ++++ b/tests/rustdoc/unit-return.rs +@@ -1,4 +1,5 @@ + // aux-build:unit-return.rs ++// ignore-stage1 + + #![crate_name = "foo"] + +diff --git a/tests/ui-fulldeps/deriving-encodable-decodable-box.rs b/tests/ui-fulldeps/deriving-encodable-decodable-box.rs +index 1c376f59e51..8f852db5efd 100644 +--- a/tests/ui-fulldeps/deriving-encodable-decodable-box.rs ++++ b/tests/ui-fulldeps/deriving-encodable-decodable-box.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![allow(unused_imports)] + #![feature(rustc_private)] +diff --git a/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs b/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs +index 844d40f2ecd..d0d530ac79f 100644 +--- a/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs ++++ b/tests/ui-fulldeps/deriving-encodable-decodable-cell-refcell.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![allow(unused_imports)] + // This briefly tests the capability of `Cell` and `RefCell` to implement the +diff --git a/tests/ui-fulldeps/deriving-global.rs b/tests/ui-fulldeps/deriving-global.rs +index 214bb4368ff..7ff6e31f09e 100644 +--- a/tests/ui-fulldeps/deriving-global.rs ++++ b/tests/ui-fulldeps/deriving-global.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![feature(rustc_private)] + +diff --git a/tests/ui-fulldeps/deriving-hygiene.rs b/tests/ui-fulldeps/deriving-hygiene.rs +index e1084a08fec..f18b703116a 100644 +--- a/tests/ui-fulldeps/deriving-hygiene.rs ++++ b/tests/ui-fulldeps/deriving-hygiene.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![allow(non_upper_case_globals)] + #![feature(rustc_private)] +diff --git a/tests/ui-fulldeps/dropck_tarena_sound_drop.rs b/tests/ui-fulldeps/dropck_tarena_sound_drop.rs +index ffad80171da..d60062be118 100644 +--- a/tests/ui-fulldeps/dropck_tarena_sound_drop.rs ++++ b/tests/ui-fulldeps/dropck_tarena_sound_drop.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![allow(unknown_lints)] + // Check that an arena (TypedArena) can carry elements whose drop +diff --git a/tests/ui-fulldeps/empty-struct-braces-derive.rs b/tests/ui-fulldeps/empty-struct-braces-derive.rs +index 10e8beaa7b1..29419f97aa1 100644 +--- a/tests/ui-fulldeps/empty-struct-braces-derive.rs ++++ b/tests/ui-fulldeps/empty-struct-braces-derive.rs +@@ -1,5 +1,6 @@ + // run-pass + // `#[derive(Trait)]` works for empty structs/variants with braces or parens. ++// ignore-stage1 + + #![feature(rustc_private)] + +diff --git a/tests/ui-fulldeps/issue-14021.rs b/tests/ui-fulldeps/issue-14021.rs +index 309b5c4a03d..5b9fb023d85 100644 +--- a/tests/ui-fulldeps/issue-14021.rs ++++ b/tests/ui-fulldeps/issue-14021.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![allow(unused_mut)] + #![allow(unused_imports)] +diff --git a/tests/ui-fulldeps/regions-mock-tcx.rs b/tests/ui-fulldeps/regions-mock-tcx.rs +index 63975ef62c5..24e008bb76b 100644 +--- a/tests/ui-fulldeps/regions-mock-tcx.rs ++++ b/tests/ui-fulldeps/regions-mock-tcx.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![allow(dead_code)] + #![allow(unused_imports)] +diff --git a/tests/ui-fulldeps/rustc_encodable_hygiene.rs b/tests/ui-fulldeps/rustc_encodable_hygiene.rs +index 509a6b1d22c..ab5f4aed548 100644 +--- a/tests/ui-fulldeps/rustc_encodable_hygiene.rs ++++ b/tests/ui-fulldeps/rustc_encodable_hygiene.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![feature(rustc_private)] + +diff --git a/tests/run-make-fulldeps/cdylib-fewer-symbols/foo.rs b/tests/run-make-fulldeps/cdylib-fewer-symbols/foo.rs +index af37bc8e953..2f080fb37b2 100644 +--- a/tests/run-make-fulldeps/cdylib-fewer-symbols/foo.rs ++++ b/tests/run-make-fulldeps/cdylib-fewer-symbols/foo.rs +@@ -1,5 +1,5 @@ + #![crate_type = "cdylib"] +- ++#[ignore] + #[no_mangle] + pub extern "C" fn foo() -> u32 { + 3 +diff --git a/tests/run-make-fulldeps/doctests-keep-binaries/t.rs b/tests/run-make-fulldeps/doctests-keep-binaries/t.rs +index c38cf0a0b25..13b89c05e03 100644 +--- a/tests/run-make-fulldeps/doctests-keep-binaries/t.rs ++++ b/tests/run-make-fulldeps/doctests-keep-binaries/t.rs +@@ -1,3 +1,4 @@ ++// ignore-stage1 + /// Fungle the foople. + /// ``` + /// t::foople(); +diff --git a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs b/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs +index 260f5a7a64f..c05f9adf46b 100644 +--- a/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs ++++ b/tests/rustdoc-ui/doctest-multiline-crate-attribute.rs +@@ -2,6 +2,7 @@ + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" + // check-pass ++// ignore-stage1 + + /// ``` + /// #![deprecated(since = "5.2", note = "foo was rarely used. \ +diff --git a/tests/rustdoc-ui/issue-80992.rs b/tests/rustdoc-ui/issue-80992.rs +index 80ff225b879..e589999ae29 100644 +--- a/tests/rustdoc-ui/issue-80992.rs ++++ b/tests/rustdoc-ui/issue-80992.rs +@@ -2,6 +2,7 @@ + // compile-flags:--test + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + pub fn test() -> Result<(), ()> { + //! ```compile_fail +diff --git a/tests/rustdoc-ui/no-run-flag.rs b/tests/rustdoc-ui/no-run-flag.rs +index 181730eb416..33fa85d7d9d 100644 +--- a/tests/rustdoc-ui/no-run-flag.rs ++++ b/tests/rustdoc-ui/no-run-flag.rs +@@ -4,6 +4,7 @@ + // compile-flags:-Z unstable-options --test --no-run --test-args=--test-threads=1 + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + /// ``` + /// let a = true; +diff --git a/tests/rustdoc-ui/nocapture-fail.rs b/tests/rustdoc-ui/nocapture-fail.rs +index 9a3fb592c63..9899183cdf6 100644 +--- a/tests/rustdoc-ui/nocapture-fail.rs ++++ b/tests/rustdoc-ui/nocapture-fail.rs +@@ -3,6 +3,7 @@ + // normalize-stderr-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test: "tests/rustdoc-ui" -> "$$DIR" + // normalize-stdout-test "finished in \d+\.\d+s" -> "finished in $$TIME" ++// ignore-stage1 + + /// ```compile_fail + /// fn foo() { +diff --git a/tests/run-make-fulldeps/doctests-keep-binaries/t.rs b/tests/run-make-fulldeps/doctests-keep-binaries/t.rs +index c38cf0a0b25..d1481fb04e9 100644 +--- a/tests/run-make-fulldeps/doctests-keep-binaries/t.rs ++++ b/tests/run-make-fulldeps/doctests-keep-binaries/t.rs +@@ -2,6 +2,7 @@ + /// ``` + /// t::foople(); + /// ``` ++// ignore-stage1 + pub fn foople() {} + + /// Flomble the florp +diff --git a/tests/run-make-fulldeps/issue-22131/foo.rs b/tests/run-make-fulldeps/issue-22131/foo.rs +index 33255d76879..56ffc4224e4 100644 +--- a/tests/run-make-fulldeps/issue-22131/foo.rs ++++ b/tests/run-make-fulldeps/issue-22131/foo.rs +@@ -1,5 +1,6 @@ + /// ```rust + /// assert_eq!(foo::foo(), 1); + /// ``` ++// ignore-stage1 + #[cfg(feature = "bar")] + pub fn foo() -> i32 { 1 } +diff --git a/tests/rustdoc/auto-traits.rs b/tests/rustdoc/auto-traits.rs +index 93d4bf2f656..b0eb5f1af7c 100644 +--- a/tests/rustdoc/auto-traits.rs ++++ b/tests/rustdoc/auto-traits.rs +@@ -1,4 +1,5 @@ + // aux-build:auto-traits.rs ++// ignore-stage1 + + #![feature(auto_traits)] + +diff --git a/tests/rustdoc/inline_cross/dyn_trait.rs b/tests/rustdoc/inline_cross/dyn_trait.rs +index 649d98f7139..82f88a4713c 100644 +--- a/tests/rustdoc/inline_cross/dyn_trait.rs ++++ b/tests/rustdoc/inline_cross/dyn_trait.rs +@@ -1,4 +1,5 @@ + #![crate_name = "user"] ++// ignore-stage1 + + // aux-crate:dyn_trait=dyn_trait.rs + // edition:2021 +diff --git a/tests/ui/abi/stack-probes-lto.rs b/tests/ui/abi/stack-probes-lto.rs +index 0dccb633df9..36e4d04ccaa 100644 +--- a/tests/ui/abi/stack-probes-lto.rs ++++ b/tests/ui/abi/stack-probes-lto.rs +@@ -13,6 +13,7 @@ + // ignore-fuchsia no exception handler registered for segfault + // compile-flags: -C lto + // no-prefer-dynamic ++// ignore-stage1 + // ignore-nto Crash analysis impossible at SIGSEGV in QNX Neutrino + + include!("stack-probes.rs"); +diff --git a/tests/ui/abi/stack-probes.rs b/tests/ui/abi/stack-probes.rs +index 8137c92304d..9f4edca3caf 100644 +--- a/tests/ui/abi/stack-probes.rs ++++ b/tests/ui/abi/stack-probes.rs +@@ -11,6 +11,7 @@ + // ignore-sgx no processes + // ignore-fuchsia no exception handler registered for segfault + // ignore-nto Crash analysis impossible at SIGSEGV in QNX Neutrino ++// ignore-stage1 + + use std::env; + use std::mem::MaybeUninit; +diff --git a/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs b/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs +index 5a6283e9f13..c036f7f03e6 100644 +--- a/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs ++++ b/tests/ui/array-slice-vec/subslice-patterns-const-eval-match.rs +@@ -1,7 +1,7 @@ + // Test that slice subslice patterns are correctly handled in const evaluation. + + // run-pass +- ++// ignore-stage1 + #[derive(PartialEq, Debug, Clone)] + struct N(u8); + +diff --git a/tests/ui/asm/x86_64/sym.rs b/tests/ui/asm/x86_64/sym.rs +index 93ef4f09062..6b076924bda 100644 +--- a/tests/ui/asm/x86_64/sym.rs ++++ b/tests/ui/asm/x86_64/sym.rs +@@ -2,6 +2,7 @@ + // only-linux + // needs-asm-support + // run-pass ++// ignore-stage1 + + #![feature(thread_local)] + +diff --git a/tests/ui/associated-type-bounds/fn-apit.rs b/tests/ui/associated-type-bounds/fn-apit.rs +index 3c9f511338f..e8fd5fc3c3e 100644 +--- a/tests/ui/associated-type-bounds/fn-apit.rs ++++ b/tests/ui/associated-type-bounds/fn-apit.rs +@@ -1,6 +1,6 @@ + // run-pass + // aux-build:fn-aux.rs +- ++// ignore-stage1 + #![allow(unused)] + #![feature(associated_type_bounds)] + +diff --git a/tests/ui/associated-type-bounds/fn-dyn-apit.rs b/tests/ui/associated-type-bounds/fn-dyn-apit.rs +index c4e8092c211..7c690f42846 100644 +--- a/tests/ui/associated-type-bounds/fn-dyn-apit.rs ++++ b/tests/ui/associated-type-bounds/fn-dyn-apit.rs +@@ -1,6 +1,7 @@ + // run-pass + // aux-build:fn-dyn-aux.rs + ++// ignore-stage1 + #![allow(unused)] + #![feature(associated_type_bounds)] + +diff --git a/tests/ui/associated-type-bounds/fn-wrap-apit.rs b/tests/ui/associated-type-bounds/fn-wrap-apit.rs +index 96df13e372a..b1df6e867f2 100644 +--- a/tests/ui/associated-type-bounds/fn-wrap-apit.rs ++++ b/tests/ui/associated-type-bounds/fn-wrap-apit.rs +@@ -1,6 +1,7 @@ + // run-pass + // aux-build:fn-aux.rs + ++// ignore-stage1 + #![feature(associated_type_bounds)] + #![allow(dead_code)] + +diff --git a/tests/ui/structs-enums/multiple-reprs.rs b/tests/ui/structs-enums/multiple-reprs.rs +index 4be503a0ef4..2cf0875fc5c 100644 +--- a/tests/ui/structs-enums/multiple-reprs.rs ++++ b/tests/ui/structs-enums/multiple-reprs.rs +@@ -1,4 +1,5 @@ + // run-pass ++// ignore-stage1 + + #![allow(dead_code)] + diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc index 9dceb904b6..12bc5c0ebf 100644 --- a/meta/recipes-devtools/rust/rust-source.inc +++ b/meta/recipes-devtools/rust/rust-source.inc @@ -6,6 +6,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n file://0001-Do-not-use-LFS64-on-linux-with-musl.patch;patchdir=${RUSTSRC} \ file://zlib-off64_t.patch;patchdir=${RUSTSRC} \ file://0001-musl-Define-SOCK_SEQPACKET-in-common-place.patch;patchdir=${RUSTSRC} \ + file://rust-oe-selftest.patch;patchdir=${RUSTSRC} \ " SRC_URI[rust.sha256sum] = "e533c903820b0c2ba10491b70105149d2243348f3b5e26bd7b6bdd022c7dbe75" diff --git a/meta/recipes-devtools/rust/rust_1.69.0.bb b/meta/recipes-devtools/rust/rust_1.69.0.bb index 83f9bec68a..25c9f86061 100644 --- a/meta/recipes-devtools/rust/rust_1.69.0.bb +++ b/meta/recipes-devtools/rust/rust_1.69.0.bb @@ -66,6 +66,7 @@ do_rust_setup_snapshot () { fi } addtask rust_setup_snapshot after do_unpack before do_configure +addtask do_test_compile after do_configure do_rust_gen_targets do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot" do_rust_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER" @@ -221,6 +222,12 @@ FILES:${PN} += "${libdir}/*.so" FILES:${PN}-dev = "" do_compile () { + rust_runx build --stage 2 +} + +do_test_compile[dirs] = "${B}" +do_test_compile () { + rust_runx build src/tools/remote-test-server --target "${RUST_TARGET_SYS}" } ALLOW_EMPTY:${PN} = "1"