rust/tests/run-make
Matthias Krüger 520118b4f8
Rollup merge of #126707 - ferrocene:hoverbear/fix-inaccessible-temp-dir, r=jieyouxu
Pass target to inaccessible-temp-dir rmake test

This PR circles back to do the target specific changes in `inaccessible-temp-dir` from https://github.com/rust-lang/rust/pull/126355. Specifically, this repairs the test on `riscv64gc-unknown-linux-gnu`. (The failure can be viewed in https://github.com/rust-lang/rust/pull/126641 -> https://github.com/rust-lang/rust/actions/runs/9571149616/job/26387537888?pr=126641)

We removed this change from https://github.com/rust-lang/rust/pull/126355 to avoid a merge conflict with https://github.com/rust-lang/rust/pull/126279. (...and, because I hoped that would fix the test instead, but it did not.)

## Testing

> [!NOTE]
> `riscv64gc-unknown-linux-gnu` is a [**Tier 2 with Host Tools** platform](https://doc.rust-lang.org/beta/rustc/platform-support.html), all tests may not necessarily pass! This PR is specifically about the `inaccessible-temp-dir` rmake test.

You can test out the job locally:

```sh
DEPLOY=1 ./src/ci/docker/run.sh riscv64gc-gnu
```

`DEPLOY=1` helps reproduce the CI's environment and also avoids the chance of a `llvm-c/BitReader.h` error (detailed in https://github.com/rust-lang/rust/issues/85424 and https://github.com/rust-lang/rust/issues/56650).

<details>

<summary>tests/run-make/inaccessible-temp-dir failure</summary>

```bash
---- [run-make] tests/run-make/inaccessible-temp-dir stdout ----
---- [run-make] tests/run-make/inaccessible-temp-dir stdout ----

error: rmake recipe failed to complete
status: exit status: 1
command: cd "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake_out" && env -u RUSTFLAGS AR="riscv64-linux-gnu-ar" CC="riscv64-linux-gnu-gcc" CC_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fPIC -march=rv64gc -mabi=lp64d" CXX="riscv64-linux-gnu-g++" CXX_DEFAULT_FLAGS="-ffunction-sections -fdata-sections -fPIC -march=rv64gc -mabi=lp64d" HOST_RPATH_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools-bin:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" LD_LIB_PATH_ENVVAR="LD_LIBRARY_PATH" LLVM_BIN_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/bin" LLVM_COMPONENTS="aarch64 aarch64asmparser aarch64codegen aarch64desc aarch64disassembler aarch64info aarch64utils aggressiveinstcombine all all-targets analysis arm armasmparser armcodegen armdesc armdisassembler arminfo armutils asmparser asmprinter avr avrasmparser avrcodegen avrdesc avrdisassembler avrinfo binaryformat bitreader bitstreamreader bitwriter bpf bpfasmparser bpfcodegen bpfdesc bpfdisassembler bpfinfo cfguard codegen codegentypes core coroutines coverage csky cskyasmparser cskycodegen cskydesc cskydisassembler cskyinfo debuginfobtf debuginfocodeview debuginfodwarf debuginfogsym debuginfologicalview debuginfomsf debuginfopdb demangle dlltooldriver dwarflinker dwarflinkerclassic dwarflinkerparallel dwp engine executionengine extensions filecheck frontenddriver frontendhlsl frontendoffloading frontendopenacc frontendopenmp fuzzercli fuzzmutate globalisel hexagon hexagonasmparser hexagoncodegen hexagondesc hexagondisassembler hexagoninfo hipstdpar instcombine instrumentation interfacestub interpreter ipo irprinter irreader jitlink libdriver lineeditor linker loongarch loongarchasmparser loongarchcodegen loongarchdesc loongarchdisassembler loongarchinfo lto m68k m68kasmparser m68kcodegen m68kdesc m68kdisassembler m68kinfo mc mca mcdisassembler mcjit mcparser mips mipsasmparser mipscodegen mipsdesc mipsdisassembler mipsinfo mirparser msp430 msp430asmparser msp430codegen msp430desc msp430disassembler msp430info native nativecodegen nvptx nvptxcodegen nvptxdesc nvptxinfo objcarcopts objcopy object objectyaml option orcdebugging orcjit orcshared orctargetprocess passes powerpc powerpcasmparser powerpccodegen powerpcdesc powerpcdisassembler powerpcinfo profiledata remarks riscv riscvasmparser riscvcodegen riscvdesc riscvdisassembler riscvinfo riscvtargetmca runtimedyld scalaropts selectiondag sparc sparcasmparser sparccodegen sparcdesc sparcdisassembler sparcinfo support symbolize systemz systemzasmparser systemzcodegen systemzdesc systemzdisassembler systemzinfo tablegen target targetparser textapi textapibinaryreader transformutils vectorize webassembly webassemblyasmparser webassemblycodegen webassemblydesc webassemblydisassembler webassemblyinfo webassemblyutils windowsdriver windowsmanifest x86 x86asmparser x86codegen x86desc x86disassembler x86info x86targetmca xray" LLVM_FILECHECK="/checkout/obj/build/x86_64-unknown-linux-gnu/llvm/build/bin/FileCheck" PYTHON="/usr/bin/python3" REMOTE_TEST_CLIENT="/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/remote-test-client" RUSTC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" RUSTC_LINKER="riscv64-linux-gnu-gcc" RUSTDOC="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustdoc" RUST_BUILD_STAGE="stage2-riscv64gc-unknown-linux-gnu" SOURCE_ROOT="/checkout" TARGET="riscv64gc-unknown-linux-gnu" TARGET_RPATH_DIR="/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/riscv64gc-unknown-linux-gnu/lib" TARGET_RPATH_ENV="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake"
stdout: none
--- stderr -------------------------------
command unexpectedly succeeded at line 33
Command { cmd: LD_LIBRARY_PATH="/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake_out:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-bootstrap-tools/x86_64-unknown-linux-gnu/release/deps:/checkout/obj/build/x86_64-unknown-linux-gnu/stage0/lib:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2-tools-bin:/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/run-make/inaccessible-temp-dir/inaccessible-temp-dir/rmake_out" "program.rs" "-Ztemps-dir=inaccessible/tmp", stdin: None, drop_bomb: DropBomb { command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc", defused: true, armed_line: 30 } }
output status: `exit status: 0`
=== STDOUT ===

=== STDERR ===
```

</details>
2024-06-21 09:12:36 +02:00
..
a-b-a-linker-guard Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
alloc-no-oom-handling Do not use relative paths to Rust source root in run-make tests 2024-06-06 19:16:53 +02:00
alloc-no-rc Do not use relative paths to Rust source root in run-make tests 2024-06-06 19:16:53 +02:00
alloc-no-sync Do not use relative paths to Rust source root in run-make tests 2024-06-06 19:16:53 +02:00
allocator-shim-circular-deps rewrite allocator-shim-circular-deps to ui test 2024-06-18 14:25:59 -04:00
allow-warnings-cmdline-stability Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
archive-duplicate-names correct comments 2024-05-08 21:44:57 -04:00
arguments-non-c-like-enum Remove unnecessary functions and the last mention of TMPDIR from run-make-support 2024-06-08 13:10:55 +02:00
artifact-incr-cache Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
artifact-incr-cache-no-obj Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
atomic-lock-free Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
bare-outfile Fix bare-outfile test 2024-06-07 11:12:04 +02:00
bin-emit-no-symbols use llvm_readobj in run-make test instead of nm 2024-06-18 14:57:00 -04:00
box-struct-no-segfault Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
branch-protection-check-IBT Add GNU Property Note 2023-05-05 18:32:20 +00:00
c-dynamic-dylib Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
c-dynamic-rlib Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
c-link-to-rust-dylib Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
c-link-to-rust-staticlib Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
c-link-to-rust-va-list-fn Remove unnecessary functions and the last mention of TMPDIR from run-make-support 2024-06-08 13:10:55 +02:00
c-static-dylib correct comments 2024-05-08 21:44:57 -04:00
c-static-rlib correct comments 2024-05-08 21:44:57 -04:00
c-unwind-abi-catch-lib-panic Update Makefiles with explanatory comments 2024-05-07 22:12:36 -04:00
c-unwind-abi-catch-panic Update Makefiles with explanatory comments 2024-05-07 22:12:36 -04:00
cat-and-grep-sanity-check add FIXME 2024-05-09 13:29:46 -04:00
cdylib Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
cdylib-dylib-linkage correct comments 2024-05-08 21:44:57 -04:00
cdylib-fewer-symbols Update Makefiles with explanatory comments 2024-05-07 22:12:36 -04:00
clear-error-blank-output Rewrite and rename issue-26092 to rmake 2024-06-17 13:51:52 -04:00
codegen-options-parsing Migrate run-make/codegen-options-parsing to rmake.rs 2024-06-14 13:59:44 +02:00
comment-section Migrate run-make/comment-section to rmake.rs 2024-06-19 15:55:57 -04:00
compile-stdin Migrate run-make/compile-stdin to rmake.rs 2024-05-27 11:37:27 +02:00
compiler-builtins Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
compiler-lookup-paths Update Makefiles with explanatory comments 2024-05-07 22:12:36 -04:00
compiler-lookup-paths-2 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
compiler-rt-works-on-mingw Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
compressed-debuginfo Migrate run-make/compressed-debuginfo to rmake.rs 2024-06-18 21:32:24 +02:00
const_fn_mir Add missing test annotation 2024-06-17 11:15:59 +02:00
const-prop-lint Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
core-no-fp-fmt-parse Do not use relative paths to Rust source root in run-make tests 2024-06-06 19:16:53 +02:00
core-no-oom-handling Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
crate-data-smoke Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
crate-hash-rustc-version Remove support for alias -Z symbol-mangling-version 2023-11-02 18:41:33 +11:00
crate-name-priority ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
cross-lang-lto Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
cross-lang-lto-clang Rename needs-matching-clang to needs-force-clang-based-tests 2024-06-11 16:45:51 +10:00
cross-lang-lto-pgo-smoketest Rename needs-matching-clang to needs-force-clang-based-tests 2024-06-11 16:45:51 +10:00
cross-lang-lto-riscv-abi Rename needs-matching-clang to needs-force-clang-based-tests 2024-06-11 16:45:51 +10:00
cross-lang-lto-upstream-rlibs Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
CURRENT_RUSTC_VERSION Rewrite and rename issue-26092 to rmake 2024-06-17 13:51:52 -04:00
debug-assertions Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
debugger-visualizer-dep-info rewrite debugger-visualizer-dep-info to rmake 2024-06-18 16:05:56 -04:00
dep-graph Migrate run-make/dep-graph to rmake.rs 2024-06-15 17:34:43 +02:00
dep-info Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
dep-info-doesnt-run-much Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
dep-info-spaces Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
deref-impl-rustdoc-ice Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
doctests-keep-binaries Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
doctests-runtool Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
dump-ice-to-disk Use YYYY-MM-DDTHH_MM_SS as datetime format for ICE dump files 2023-10-17 17:31:47 +00:00
dump-mono-stats move tools.mk to run-make 2023-03-30 07:58:50 -05:00
duplicate-output-flavors Migrate run-make/duplicate-output-flavors to rmake.rs 2024-06-16 11:46:02 +02:00
dylib-chain Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
emit Auto merge of #125383 - Oneirical:bundle-them-up, r=jieyouxu 2024-06-03 18:35:54 +00:00
emit-named-files Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
emit-path-unhashed Fix tests 2023-09-10 15:50:48 +00:00
emit-shared-files move tools.mk to run-make 2023-03-30 07:58:50 -05:00
emit-stack-sizes Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
emit-to-stdout Bless run-make tests 2023-11-24 19:15:52 +01:00
env-dep-info move tools.mk to run-make 2023-03-30 07:58:50 -05:00
error-found-staticlib-instead-crate rewrite error-found-staticlib-instead-crate to rmake 2024-06-14 15:50:33 -04:00
error-writing-dependencies Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
exit-code Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
export-executable-symbols [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
extern-diff-internal-name Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
extern-flag-disambiguates Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
extern-flag-fun rewrite incremental-session-fail to rmake 2024-06-17 13:01:15 -04:00
extern-flag-pathless Verify that all crate sources are in sync 2023-07-19 14:47:05 +00:00
extern-flag-rename-transitive rewrite extern-flag-rename-transitive to rmake 2024-06-18 15:59:33 -04:00
extern-fn-explicit-align Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
extern-fn-generic ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
extern-fn-mangle ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
extern-fn-reachable Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
extern-fn-struct-passing-abi Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
extern-fn-with-extern-types ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
extern-fn-with-packed-struct ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
extern-fn-with-union ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
extern-multiple-copies Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
extern-multiple-copies2 ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
extern-overrides-distribution rewrite extern-overrides-distribution to rmake 2024-06-18 16:30:26 -04:00
external-crate-panic-handle-no-lint Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
extra-filename-with-temp-outputs ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
fmt-write-bloat Auto merge of #109770 - jyn514:run-make-fulldeps, r=Mark-Simulacrum 2023-04-03 01:34:05 +00:00
forced-unwind-terminate-pof Rollup merge of #126644 - Oneirical:testla-coil, r=jieyouxu 2024-06-20 18:20:12 +02:00
foreign-double-unwind Add needs-unwind annotations to tests that need stack unwinding 2023-05-02 12:07:55 +00:00
foreign-exceptions Add needs-unwind annotations to tests that need stack unwinding 2023-05-02 12:07:55 +00:00
foreign-rust-exceptions Add needs-unwind annotations to tests that need stack unwinding 2023-05-02 12:07:55 +00:00
glibc-staticlib-args Migrate run-make/glibc-staticlib-args to rmake.rs 2024-06-19 13:57:55 +02:00
inaccessible-temp-dir Specify target for inaccessible-temp-dir rmake test 2024-06-20 06:44:47 -07:00
include_bytes_deps Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
incr-add-rust-src-component ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
incr-foreign-head-span Validate crate name in CLI option --extern 2023-09-20 18:50:40 +02:00
incr-prev-body-beyond-eof Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
incremental-debugger-visualizer rewrite incremental-session-fail to rmake 2024-06-17 13:01:15 -04:00
incremental-session-fail rewrite incremental-session-fail to rmake 2024-06-17 13:01:15 -04:00
inline-always-many-cgu Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
interdependent-c-libraries Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
intrinsic-unreachable Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
invalid-library Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
invalid-so move tools.mk to run-make 2023-03-30 07:58:50 -05:00
invalid-staticlib rewrite invalid-staticlib to rmake 2024-06-14 10:02:39 -04:00
issue-14698 Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
issue-15460 ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
issue-18943 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-20626 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-22131 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-25581 ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
issue-26006 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-28595 ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
issue-33329 Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
issue-35164 Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
issue-36710 ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
issue-37839 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-40535 Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
issue-47384 move tools.mk to run-make 2023-03-30 07:58:50 -05:00
issue-47551 Pass target to run-make issue-47551 2024-06-14 08:08:42 -07:00
issue-68794-textrel-on-minimal-lib ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
issue-69368 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-83045 Fix symbol conflict diagnostic mistakenly being shown instead of missing crate diagnostic 2023-05-23 07:37:16 +00:00
issue-83112-incr-test-moved-file move tools.mk to run-make 2023-03-30 07:58:50 -05:00
issue-84395-lto-embed-bitcode Rename needs-matching-clang to needs-force-clang-based-tests 2024-06-11 16:45:51 +10:00
issue-85019-moved-src-dir move tools.mk to run-make 2023-03-30 07:58:50 -05:00
issue-85401-static-mir move tools.mk to run-make 2023-03-30 07:58:50 -05:00
issue-88756-default-output rustdoc: Add support for --remap-path-prefix 2024-06-09 10:34:54 -07:00
issue-97463-abi-param-passing ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
issue-107094 Make commit-date pattern more specific in test for issue 107094 2023-04-17 18:53:52 +02:00
issue-107495-archive-permissions Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
issue-109934-lto-debuginfo debuginfo: split method declaration and definition 2023-05-03 15:52:31 -07:00
issue-125484-used-dependencies Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
jobserver-error Print a backtrace in const eval if interrupted 2024-03-17 11:55:20 -04:00
libs-through-symlinks ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
libtest-json Change default panic handler message format. 2023-07-29 11:42:50 +02:00
libtest-junit Add needs-unwind annotations to a couple of tests 2024-03-25 14:19:07 +00:00
libtest-padding Stabilize the runtime of libtest-padding 2024-05-24 21:23:12 -04:00
libtest-thread-limit Auto merge of #109770 - jyn514:run-make-fulldeps, r=Mark-Simulacrum 2023-04-03 01:34:05 +00:00
link-arg Rewrite and rename issue-26092 to rmake 2024-06-17 13:51:52 -04:00
link-args-order make assert_stderr_contains print its contents on panic 2024-06-19 11:50:22 -04:00
link-cfg ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
link-dedup Rewrite and rename issue-26092 to rmake 2024-06-17 13:51:52 -04:00
link-framework Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
link-path-order Fix up a few more tests 2024-05-20 11:13:10 -04:00
linkage-attr-on-static ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
llvm-ident Support .comment section like GCC/Clang (!llvm.ident) 2023-07-21 22:01:50 +02:00
llvm-outputs migrate tests/run-make/llvm-outputs to use rmake.rs 2024-06-10 05:30:58 -04:00
long-linker-command-lines Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
long-linker-command-lines-cmd-exe Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
longjmp-across-rust ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
ls-metadata Rewrite lto-readonly-lib to rmake 2024-06-18 12:55:44 -04:00
lto-avoid-object-duplication rewrite no-builtins-lto to rmake 2024-06-17 15:18:23 -04:00
lto-dylib-dep ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
lto-empty ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
lto-linkage-used-attr Update the minimum external LLVM to 17 2024-03-17 10:11:04 -07:00
lto-no-link-whole-rlib ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
lto-readonly-lib make assert_stderr_contains print its contents on panic 2024-06-19 11:50:22 -04:00
lto-smoke Rewrite simple-rlib to rmake 2024-05-28 11:41:53 -04:00
lto-smoke-c ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
macos-deployment-target Raise minimum supported macOS to 10.12 2023-09-23 19:14:25 -05:00
macos-fat-archive Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
manual-crate-name Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
manual-link ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
many-crates-but-no-match Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
metadata-dep-info tests/run-make: Move RUSTC_TEST_OP to tools.mk 2023-10-07 08:30:40 +02:00
metadata-flag-frobs-symbols rewrite forced-unwind-terminate-pof to rmake 2024-06-19 14:39:09 -04:00
min-global-align Forbid implementing Freeze even if the trait is stabilized 2024-02-29 14:10:29 +00:00
mingw-export-call-convention Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
mismatching-target-triples Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
missing-crate-dependency Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
mixing-deps Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
mixing-formats Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
mixing-libs Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
msvc-opt-minsize ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
multiple-emits Migrate run-make/multiple-emits to rmake.rs 2024-06-11 14:09:38 +02:00
native-link-modifier-bundle move tools.mk to run-make 2023-03-30 07:58:50 -05:00
native-link-modifier-verbatim-linker rewrite native-link-modifier-linker to rmake 2024-06-17 14:45:19 -04:00
native-link-modifier-verbatim-rustc rewrite native-link-modifier-linker to rmake 2024-06-17 14:45:19 -04:00
native-link-modifier-whole-archive Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
no-alloc-shim Ignore test on MSVC for now 2023-05-11 14:47:56 +00:00
no-builtins-attribute Add the no-builtins attribute to functions when no_builtins is applied at the crate level. 2023-07-18 22:15:47 +08:00
no-builtins-lto rewrite no-builtins-lto to rmake 2024-06-17 15:18:23 -04:00
no-cdylib-as-rdylib port no-cdylib-as-rdylib test 2024-05-14 17:02:20 -04:00
no-duplicate-libs ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
no-input-file Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
no-intermediate-extras Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
non-pie-thread-local Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
non-unicode-env Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
non-unicode-in-incremental-dir Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
notify-all-emit-artifacts Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
obey-crate-type-flag ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
optimization-remarks-dir Add rustc option to output LLVM optimization remarks to YAML files 2023-07-02 13:41:36 +02:00
optimization-remarks-dir-pgo Remove //@ ignore-windows-gnu from tests that need the profiler 2024-06-14 13:31:46 +10:00
output-filename-conflicts-with-directory rewrite native-link-modifier-linker to rmake 2024-06-17 14:45:19 -04:00
output-filename-overwrites-input rewrite output-filename-overwrites-input to rmake 2024-06-14 16:21:55 -04:00
output-type-permutations ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
output-with-hyphens Add new test_while_readonly helper function to run-make-support 2024-06-17 14:37:49 -04:00
override-aliased-flags ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
overwrite-input Bless run-make tests 2023-11-24 19:15:52 +01:00
panic-abort-eh_frame Run AbortUnwindingCalls after generator transform 2023-08-18 13:51:42 +01:00
panic-impl-transitive Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
parallel-rustc-no-overwrite Add new test_while_readonly helper function to run-make-support 2024-06-17 14:37:49 -04:00
pass-linker-flags Enable link-arg link kind inside of #[link] attribute 2023-11-30 08:26:13 -08:00
pass-linker-flags-flavor Enable link-arg link kind inside of #[link] attribute 2023-11-30 08:26:13 -08:00
pass-linker-flags-from-dep Enable link-arg link kind inside of #[link] attribute 2023-11-30 08:26:13 -08:00
pass-non-c-like-enum-to-c Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pdb-alt-path Make pdb-alt-path test more unwind-friendly for i686-pc-windows-msvc 2024-03-14 11:03:15 +01:00
pdb-buildinfo-cl-cmd Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pgo-branch-weights Remove //@ ignore-windows-gnu from tests that need the profiler 2024-06-14 13:31:46 +10:00
pgo-gen Remove //@ ignore-windows-gnu from tests that need the profiler 2024-06-14 13:31:46 +10:00
pgo-gen-lto Remove //@ ignore-windows-gnu from tests that need the profiler 2024-06-14 13:31:46 +10:00
pgo-gen-no-imp-symbols Use -Zno-profiler-runtime instead of //@ needs-profiler-support 2024-06-14 13:31:46 +10:00
pgo-indirect-call-promotion Remove //@ ignore-windows-gnu from tests that need the profiler 2024-06-14 13:31:46 +10:00
pgo-use Remove //@ ignore-windows-gnu from tests that need the profiler 2024-06-14 13:31:46 +10:00
pointer-auth-link-with-c Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
prefer-dylib Use fs_wrapper in run-make/prefer-dylib 2024-06-12 11:46:05 +02:00
prefer-rlib Remove unused import in run-make/prefer-dylib/rmake.rs 2024-06-12 11:44:33 +02:00
pretty-print-to-file Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pretty-print-with-dep-file Fix missing dependency file with -Zunpretty 2023-08-04 20:13:40 +02:00
print-calling-conventions move tools.mk to run-make 2023-03-30 07:58:50 -05:00
print-cfg Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
print-check-cfg Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
print-native-static-libs Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
print-target-list Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
print-to-output Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
proc-macro-init-order Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
profile ignore-cross-compile remaining tests that run binaries 2023-08-30 13:45:57 +02:00
prune-link-args Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
raw-dylib-alt-calling-convention Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
raw-dylib-c Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
raw-dylib-cross-compilation Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
raw-dylib-custom-dlltool Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
raw-dylib-import-name-type Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
raw-dylib-inline-cross-dylib Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
raw-dylib-link-ordinal Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
raw-dylib-stdcall-ordinal tests/run-make: Use RUSTC_TEST_OP in more places 2023-10-07 08:30:40 +02:00
reachable-extern-fn-available-lto Remove unnecessary functions and the last mention of TMPDIR from run-make-support 2024-06-08 13:10:55 +02:00
redundant-libs ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
relocation-model ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
relro-levels sess: stabilize relro-level 2024-03-12 13:40:40 +00:00
remap-path-prefix Replace RemapFileNameExt::for_codegen with explicit calls 2024-03-28 18:47:26 +01:00
remap-path-prefix-dwarf Adjust tests for MacOS having different -Csplit-debuginfo default 2023-10-17 10:11:31 +02:00
repr128-dwarf Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
reproducible-build Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
reproducible-build-2 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
reset-codegen-1 Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
resolve-rename Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
return-non-c-like-enum Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
return-non-c-like-enum-from-c Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
rlib-chain Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
rlib-format-packed-bundled-libs move tools.mk to run-make 2023-03-30 07:58:50 -05:00
rlib-format-packed-bundled-libs-2 move tools.mk to run-make 2023-03-30 07:58:50 -05:00
rlib-format-packed-bundled-libs-3 stabilize combining +bundle and +whole-archive link modifiers 2023-08-15 15:51:18 -05:00
rmeta-preferred Rewrite rmeta-rpass test to work with the new check for all crate sources being in sync 2023-07-19 14:47:06 +00:00
run-in-tmpdir-self-test run-make: add run_in_tmpdir self-test 2024-06-10 10:46:36 +00:00
rust-lld Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
rust-lld-by-default Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
rust-lld-custom-target Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
rustc-macro-dep-files Improve print_tts by changing tokenstream::Spacing. 2023-12-11 09:19:09 +11:00
rustdoc-determinism Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
rustdoc-error-lines Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
rustdoc-io-error Ignore arm targets as well for run-make/rustdoc-io-error tests 2024-06-20 14:06:37 +02:00
rustdoc-map-file tests/run-make: update tests to use new API 2024-06-11 09:14:28 +00:00
rustdoc-output-path Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
rustdoc-scrape-examples-invalid-expr Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
rustdoc-scrape-examples-macros tests/run-make: update tests to use new API 2024-06-11 09:14:28 +00:00
rustdoc-scrape-examples-multiple Migrate run-make/rustdoc-scrape-examples-multiple to rmake.rs 2024-05-21 12:11:17 +02:00
rustdoc-scrape-examples-ordering Migrate run-make/rustdoc-scrape-examples-test to new rmake.rs 2024-05-19 15:02:30 +02:00
rustdoc-scrape-examples-remap Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
rustdoc-scrape-examples-test Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
rustdoc-scrape-examples-whitespace Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
rustdoc-shared-flags Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
rustdoc-target-spec-json-path Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
rustdoc-test-args Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
rustdoc-themes Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
rustdoc-verify-output-files Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
rustdoc-with-out-dir-option tests/run-make: update tests to use new API 2024-06-11 09:14:28 +00:00
rustdoc-with-output-option tests/run-make: update tests to use new API 2024-06-11 09:14:28 +00:00
rustdoc-with-short-out-dir-option tests/run-make: update tests to use new API 2024-06-11 09:14:28 +00:00
sanitizer-cdylib-link Enable address sanitizer for MSVC targets using INFERASANLIBS linker flag 2024-01-03 10:00:15 -08:00
sanitizer-dylib-link Enable address sanitizer for MSVC targets using INFERASANLIBS linker flag 2024-01-03 10:00:15 -08:00
sanitizer-staticlib-link Enable address sanitizer for MSVC targets using INFERASANLIBS linker flag 2024-01-03 10:00:15 -08:00
separate-link rewrite allocator-shim-circular-deps to ui test 2024-06-18 14:25:59 -04:00
separate-link-fail rewrite separate-link-fail to rmake.rs 2024-06-17 15:59:39 -04:00
sepcomp-cci-copies Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
sepcomp-inlining Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
sepcomp-separate Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
share-generics-dylib Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
share-generics-export-again rewrite issue64319 and rename 2024-05-17 11:49:20 -04:00
short-ice Add set_backtrace_level helper function to run_make_support 2024-06-11 15:39:54 -04:00
silly-file-names tests/run-make: Move RUSTC_TEST_OP to tools.mk 2023-10-07 08:30:40 +02:00
simd-ffi Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
split-debuginfo Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
stable-symbol-names Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
static-dylib-by-default ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
static-extern-type ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
static-pie Fix broken test 2024-04-16 21:13:21 -04:00
static-unwinding Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
staticlib-blank-lib Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
staticlib-dylib-linkage Ignore test when cross compiling 2023-04-27 18:22:06 +00:00
std-core-cycle ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
stdin-rustc Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
stdin-rustdoc Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
suspicious-library Remove unnecessary functions and the last mention of TMPDIR from run-make-support 2024-06-08 13:10:55 +02:00
symbol-mangling-hashed Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
symbol-visibility Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
symbols-include-type-name Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
symlinked-extern port symlinked-libraries to rmake 2024-06-12 09:44:21 -04:00
symlinked-libraries Add blank lines after module-level // comments. 2024-06-20 09:23:20 +10:00
symlinked-rlib port symlinked-libraries to rmake 2024-06-12 09:44:21 -04:00
sysroot-crates-are-unstable Apply changes to fix python linting errors 2023-06-16 20:56:01 -04:00
target-cpu-native Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
target-specs Update data layouts in custom target tests for LLVM 18 2024-01-31 15:15:59 +01:00
target-without-atomic-cas Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
test-benches Add needs-unwind annotations to tests that need stack unwinding 2023-05-02 12:07:55 +00:00
test-harness Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
thumb-none-cortex-m move tools.mk to run-make 2023-03-30 07:58:50 -05:00
thumb-none-qemu move tools.mk to run-make 2023-03-30 07:58:50 -05:00
track-path-dep-info move tools.mk to run-make 2023-03-30 07:58:50 -05:00
track-pgo-dep-info Remove //@ ignore-windows-gnu from tests that need the profiler 2024-06-14 13:31:46 +10:00
translation Fix tests/run-make-translation when download-rustc is enabled 2023-04-19 00:39:20 -05:00
type-mismatch-same-crate-name Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
unknown-mod-stdin Bless run-make tests 2023-11-24 19:15:52 +01:00
unstable-flag-required move tools.mk to run-make 2023-03-30 07:58:50 -05:00
use-suggestions-rust-2018 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
used Migrate run-make/used to rmake.rs 2024-06-17 00:23:28 +02:00
used-cdylib-macos Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
volatile-intrinsics ignore failing cross-compiled run-make tests 2023-03-30 08:46:31 -05:00
wasm-abi Remove unnecessary functions and the last mention of TMPDIR from run-make-support 2024-06-08 13:10:55 +02:00
wasm-custom-section Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-custom-sections-opt Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-exceptions-nostd Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
wasm-export-all-symbols Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-import-module Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-override-linker Rename needs-matching-clang to needs-force-clang-based-tests 2024-06-11 16:45:51 +10:00
wasm-panic-small Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-spurious-import Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-stringify-ints-small Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-symbols-different-module Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-symbols-not-exported Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
wasm-symbols-not-imported Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
weird-output-filenames Move almost all run-make-fulldeps to run-make 2023-03-30 07:34:55 -05:00
windows-binary-no-external-deps Fix windows test 2024-06-08 15:40:43 +02:00
windows-safeseh Convert run-make/windows-safeseh to rmake 2024-05-29 13:14:19 +00:00
windows-spawn Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
windows-ws2_32 Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
x86_64-fortanix-unknown-sgx-lvi Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
git_clone_sha1.sh
README.md run-make: add some basic docs about the test suite's setup 2024-06-08 18:16:49 +00:00
tools.mk Add synchronization library to run-make flags 2024-02-25 22:28:30 -03:00

The run-make test suite

The run-make test suite contains tests which are the most flexible out of all the rust-lang/rust test suites. run-make tests can basically contain arbitrary code, and are supported by the run_make_support library.

Infrastructure

There are two kinds of run-make tests:

  1. The new rmake.rs version: this allows run-make tests to be written in Rust (with rmake.rs as the main test file).
  2. The legacy Makefile version: this is what run-make tests were written with before support for rmake.rs was introduced.

The implementation for collecting and building the rmake.rs recipes (or Makefiles) are in src/tools/compiletest/src/runtest.rs, in run_rmake_v2_test and run_rmake_legacy_test.

Rust-based run-make tests: rmake.rs

The setup for the rmake.rs version is a 3-stage process:

  1. First, we build the run_make_support library in bootstrap as a tool lib.

  2. Then, we compile the rmake.rs "recipe" linking the support library and its dependencies in, and provide a bunch of env vars. We setup a directory structure within build/<target>/test/run-make/

    <test-name>/
        rmake.exe              # recipe binary
        rmake_out/             # sources from test sources copied over
    

    and copy non-rmake.rs input support files over to rmake_out/. The support library is made available as an extern prelude.

  3. Finally, we run the recipe binary and set rmake_out/ as the working directory.