rust/tests/run-make
Matthias Krüger d762ef1d0c
Rollup merge of #126223 - jieyouxu:rmake-run-in-tmpdir-self-test, r=Kobzol
run-make: add `run_in_tmpdir` self-test

Add a basic sanity test for `run_in_tmpdir` to make sure that files (including read-only files) and directories created inside the "scratch" tmpdir are removed after the closure returns.

r? ghost (while i run a try job)

try-job: x86_64-msvc
2024-06-10 21:12:28 +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
allow-non-lint-warnings-cmdline Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10: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
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
box-struct-no-segfault Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
branch-protection-check-IBT
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 Address review comments 2024-06-07 14:07:02 +02:00
c-link-to-rust-staticlib Remove unnecessary functions and the last mention of TMPDIR from run-make-support 2024-06-08 13:10:55 +02: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
c-static-rlib
c-unwind-abi-catch-lib-panic
c-unwind-abi-catch-panic
cat-and-grep-sanity-check
cdylib Remove unnecessary functions and the last mention of TMPDIR from run-make-support 2024-06-08 13:10:55 +02:00
cdylib-dylib-linkage
cdylib-fewer-symbols
codegen-options-parsing
comment-section
compile-stdin Migrate run-make/compile-stdin to rmake.rs 2024-05-27 11:37:27 +02:00
compiler-builtins Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
compiler-lookup-paths
compiler-lookup-paths-2 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
compiler-rt-works-on-mingw
compressed-debuginfo
const_fn_mir Remove Rvalue::CheckedBinaryOp 2024-05-17 20:33:02 -07:00
const-prop-lint Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02: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
crate-name-priority
cross-lang-lto
cross-lang-lto-clang Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
cross-lang-lto-pgo-smoketest Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
cross-lang-lto-riscv-abi Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
cross-lang-lto-upstream-rlibs Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
CURRENT_RUSTC_VERSION Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
debug-assertions Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
debugger-visualizer-dep-info
dep-graph
dep-info Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
dep-info-doesnt-run-much
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 Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
doctests-runtool Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
dump-ice-to-disk
dump-mono-stats
duplicate-output-flavors
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 Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
emit-path-unhashed
emit-shared-files
emit-stack-sizes Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
emit-to-stdout
env-dep-info
error-found-staticlib-instead-crate
error-writing-dependencies
exit-code Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
export-executable-symbols
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
extern-flag-pathless
extern-flag-rename-transitive
extern-fn-explicit-align Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
extern-fn-generic
extern-fn-mangle
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
extern-fn-with-packed-struct
extern-fn-with-union
extern-multiple-copies Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
extern-multiple-copies2
extern-overrides-distribution
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
fmt-write-bloat
forced-unwind-terminate-pof
foreign-double-unwind
foreign-exceptions
foreign-rust-exceptions
glibc-staticlib-args
inaccessible-temp-dir
include_bytes_deps
incr-add-rust-src-component
incr-foreign-head-span
incr-prev-body-beyond-eof Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
incremental-debugger-visualizer
incremental-session-fail
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
invalid-so
invalid-staticlib
issue-10971-temps-dir
issue-14698
issue-15460
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
issue-26006 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-26092
issue-28595
issue-33329
issue-35164
issue-36710
issue-37839 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-40535
issue-47384
issue-47551 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-51671
issue-64153
issue-68794-textrel-on-minimal-lib
issue-69368 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
issue-83045
issue-83112-incr-test-moved-file
issue-84395-lto-embed-bitcode
issue-85019-moved-src-dir
issue-85401-static-mir
issue-88756-default-output rustdoc: Add support for --remap-path-prefix 2024-06-09 10:34:54 -07:00
issue-97463-abi-param-passing
issue-107094
issue-107495-archive-permissions Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
issue-109934-lto-debuginfo
issue-125484-used-dependencies Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
jobserver-error
libs-through-symlinks
libtest-json
libtest-junit
libtest-padding Stabilize the runtime of libtest-padding 2024-05-24 21:23:12 -04:00
libtest-thread-limit
link-arg Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
link-args-order
link-cfg
link-dedup
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
llvm-ident
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
ls-metadata
lto-dylib-dep
lto-empty
lto-linkage-used-attr
lto-no-link-whole-rlib
lto-readonly-lib
lto-smoke Rewrite simple-rlib to rmake 2024-05-28 11:41:53 -04:00
lto-smoke-c
macos-deployment-target
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
many-crates-but-no-match Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
metadata-dep-info
metadata-flag-frobs-symbols Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
min-global-align
mingw-export-call-convention
mismatching-target-triples
missing-crate-dependency
mixing-deps Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
mixing-formats Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
mixing-libs Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
msvc-opt-minsize
multiple-emits
native-link-modifier-bundle
native-link-modifier-verbatim-linker Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
native-link-modifier-verbatim-rustc
native-link-modifier-whole-archive Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
no-alloc-shim
no-builtins-attribute
no-builtins-lto
no-cdylib-as-rdylib
no-duplicate-libs
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 Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
non-unicode-in-incremental-dir Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02: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
optimization-remarks-dir
optimization-remarks-dir-pgo
output-filename-conflicts-with-directory
output-filename-overwrites-input
output-type-permutations
output-with-hyphens
override-aliased-flags
overwrite-input
panic-abort-eh_frame
panic-impl-transitive Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
pass-linker-flags
pass-linker-flags-flavor
pass-linker-flags-from-dep
pass-non-c-like-enum-to-c Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pdb-alt-path
pdb-buildinfo-cl-cmd Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pgo-branch-weights Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pgo-gen
pgo-gen-lto
pgo-gen-no-imp-symbols
pgo-indirect-call-promotion Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pgo-use Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pointer-auth-link-with-c Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
prefer-dylib
prefer-rlib
pretty-print-to-file Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
pretty-print-with-dep-file
print-calling-conventions
print-cfg Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02: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
print-to-output Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02:00
proc-macro-init-order Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
profile
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
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
relocation-model
relro-levels
remap-path-prefix
remap-path-prefix-dwarf
repr128-dwarf Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02: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 Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
resolve-rename Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02: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
rlib-format-packed-bundled-libs-2
rlib-format-packed-bundled-libs-3
rmeta-preferred
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
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
rustdoc-map-file Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02: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 Migrate runmake tests away from custom commands and command_output 2024-06-08 19:36:31 +02: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 Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02: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 Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
rustdoc-themes Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
rustdoc-verify-output-files Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
rustdoc-with-out-dir-option Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
rustdoc-with-output-option Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
rustdoc-with-short-out-dir-option Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
sanitizer-cdylib-link
sanitizer-dylib-link
sanitizer-staticlib-link
separate-link
separate-link-fail
sepcomp-cci-copies
sepcomp-inlining
sepcomp-separate
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
silly-file-names
simd-ffi
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
static-extern-type
static-pie
static-unwinding Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
staticlib-blank-lib
staticlib-dylib-linkage
std-core-cycle
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
symlinked-extern Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
symlinked-libraries
symlinked-rlib
sysroot-crates-are-unstable
target-cpu-native Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
target-specs
target-without-atomic-cas
test-benches
test-harness Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
thumb-none-cortex-m
thumb-none-qemu
track-path-dep-info
track-pgo-dep-info
translation
type-mismatch-same-crate-name Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
unknown-mod-stdin
unstable-flag-required
use-suggestions-rust-2018 Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
used
used-cdylib-macos Make more of the test suite run on Mac Catalyst 2024-05-28 12:31:33 +02:00
volatile-intrinsics
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 Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
wasm-custom-sections-opt Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
wasm-exceptions-nostd Run rustfmt on tests/run-make/. 2024-05-31 21:30:08 +10:00
wasm-export-all-symbols Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
wasm-import-module Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
wasm-override-linker
wasm-panic-small Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
wasm-spurious-import Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
wasm-stringify-ints-small Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
wasm-symbols-different-module Remove unnecessary functions and the last mention of TMPDIR from run-make-support 2024-06-08 13:10:55 +02:00
wasm-symbols-not-exported Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
wasm-symbols-not-imported Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02:00
weird-output-filenames
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 Remove all usages of tmp_dir from tests 2024-06-07 11:12:24 +02: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

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.