rust/tests/run-make
2024-07-01 10:55:57 +02:00
..
a-b-a-linker-guard
alloc-no-oom-handling
alloc-no-rc
alloc-no-sync
allocator-shim-circular-deps rewrite allocator-shim-circular-deps to ui test 2024-06-18 14:25:59 -04:00
allow-warnings-cmdline-stability
archive-duplicate-names
arguments-non-c-like-enum Improve run-make-support library args API 2024-06-30 12:40:24 +02:00
artifact-incr-cache
artifact-incr-cache-no-obj
atomic-lock-free
bare-outfile
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
branch-protection-check-IBT (wip) Migrate branch-protection-check-IBT to rmake 2024-06-22 20:18:02 -04:00
c-dynamic-dylib
c-dynamic-rlib
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 Improve run-make-support library args API 2024-06-30 12:40:24 +02:00
c-link-to-rust-va-list-fn Improve run-make-support library args API 2024-06-30 12:40:24 +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 Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
cdylib-dylib-linkage
cdylib-fewer-symbols
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
compiler-builtins Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
compiler-lookup-paths
compiler-lookup-paths-2
compiler-rt-works-on-mingw
compressed-debuginfo Improve run-make-support API for assert* functions 2024-07-01 10:55:57 +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
core-no-oom-handling
crate-data-smoke
crate-hash-rustc-version
crate-name-priority rewrite crate-name-priority to rmake 2024-06-20 16:09:39 -04:00
cross-lang-lto
cross-lang-lto-clang
cross-lang-lto-pgo-smoketest
cross-lang-lto-riscv-abi
cross-lang-lto-upstream-rlibs
CURRENT_RUSTC_VERSION Rewrite and rename issue-26092 to rmake 2024-06-17 13:51:52 -04:00
debug-assertions rewrite emit-stack-sizes to rmake 2024-06-28 11:18:46 -04: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
dep-info-doesnt-run-much
dep-info-spaces
deref-impl-rustdoc-ice
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
dump-mono-stats
duplicate-output-flavors Migrate run-make/duplicate-output-flavors to rmake.rs 2024-06-16 11:46:02 +02:00
dylib-chain
emit
emit-named-files Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
emit-path-unhashed
emit-shared-files
emit-stack-sizes rewrite emit-stack-sizes to rmake 2024-06-28 11:18:46 -04:00
emit-to-stdout
env-dep-info
error-found-staticlib-instead-crate rewrite error-found-staticlib-instead-crate to rmake 2024-06-14 15:50:33 -04:00
error-writing-dependencies rewrite error-writing-dependencies to rmake 2024-06-19 16:43:22 -04:00
exit-code
export-executable-symbols
extern-diff-internal-name
extern-flag-disambiguates
extern-flag-fun rewrite incremental-session-fail to rmake 2024-06-17 13:01:15 -04:00
extern-flag-pathless
extern-flag-rename-transitive rewrite extern-flag-rename-transitive to rmake 2024-06-18 15:59:33 -04:00
extern-fn-explicit-align
extern-fn-generic
extern-fn-mangle
extern-fn-reachable
extern-fn-struct-passing-abi
extern-fn-with-extern-types
extern-fn-with-packed-struct
extern-fn-with-union
extern-multiple-copies
extern-multiple-copies2
extern-overrides-distribution rewrite extern-overrides-distribution to rmake 2024-06-18 16:30:26 -04:00
external-crate-panic-handle-no-lint
extra-filename-with-temp-outputs
fmt-write-bloat
forced-unwind-terminate-pof Rollup merge of #126644 - Oneirical:testla-coil, r=jieyouxu 2024-06-20 18:20:12 +02:00
foreign-double-unwind
foreign-exceptions
foreign-rust-exceptions
glibc-staticlib-args Improve run-make-support library args API 2024-06-30 12:40:24 +02:00
inaccessible-temp-dir Specify target for inaccessible-temp-dir rmake test 2024-06-20 06:44:47 -07:00
include_bytes_deps
incr-add-rust-src-component
incr-foreign-head-span
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 Migrate run-make/inline-always-many-cgu to rmake.rs 2024-06-22 12:35:58 +02:00
interdependent-c-libraries
intrinsic-unreachable
invalid-library Add ar command in run-make-support 2024-06-27 14:04:46 +02:00
invalid-so rewrite invalid-so to rmake 2024-06-25 14:45:49 -04:00
invalid-staticlib rewrite invalid-staticlib to rmake 2024-06-14 10:02:39 -04:00
issue-14698
issue-15460
issue-18943
issue-22131
issue-25581
issue-26006
issue-28595
issue-33329
issue-35164
issue-36710
issue-37839
issue-40535
issue-47384
issue-47551 Pass target to run-make issue-47551 2024-06-14 08:08:42 -07:00
issue-69368
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
issue-97463-abi-param-passing
issue-107094
issue-107495-archive-permissions Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
issue-109934-lto-debuginfo
issue-125484-used-dependencies
jobserver-error Avoid a couple of unnecessary EarlyDiagCtxt uses 2024-06-22 17:06:47 +00:00
libs-through-symlinks
libtest-json
libtest-junit
libtest-padding rewrite libtest-padding to rmake 2024-06-26 11:44:23 -04:00
libtest-thread-limit
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
link-dedup Rewrite and rename issue-26092 to rmake 2024-06-17 13:51:52 -04:00
link-framework
link-path-order
linkage-attr-on-static
llvm-ident
llvm-outputs
long-linker-command-lines
long-linker-command-lines-cmd-exe
longjmp-across-rust
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 rewrite lto-dylib-dep to rmake 2024-06-26 13:32:30 -04:00
lto-empty rewrite lto-empty to rmake 2024-06-25 14:27:43 -04:00
lto-linkage-used-attr
lto-no-link-whole-rlib
lto-readonly-lib make assert_stderr_contains print its contents on panic 2024-06-19 11:50:22 -04:00
lto-smoke
lto-smoke-c
macos-deployment-target
macos-fat-archive
manual-crate-name
manual-link
many-crates-but-no-match rewrite many-crates-but-no-match to rmake 2024-06-27 11:17:26 -04:00
metadata-dep-info
metadata-flag-frobs-symbols rewrite forced-unwind-terminate-pof to rmake 2024-06-19 14:39:09 -04:00
min-global-align
mingw-export-call-convention rewrite mingw-export-call-convention to rmake 2024-06-25 12:46:58 -04:00
mismatching-target-triples rewrite mismatching-target-triples to rmake 2024-06-21 15:46:34 -04:00
missing-crate-dependency
mixing-deps
mixing-formats Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
mixing-libs
msvc-opt-minsize
multiple-emits
native-link-modifier-bundle
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
no-alloc-shim
no-builtins-attribute
no-builtins-lto rewrite no-builtins-lto to rmake 2024-06-17 15:18:23 -04:00
no-cdylib-as-rdylib
no-duplicate-libs
no-input-file Avoid a couple of unnecessary EarlyDiagCtxt uses 2024-06-22 17:06:47 +00:00
no-intermediate-extras
non-pie-thread-local
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
obey-crate-type-flag
optimization-remarks-dir
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
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 Migrate run-make/override-aliased-flags to rmake.rs 2024-06-29 11:55:30 +02:00
overwrite-input rewrite overwrite-input to rmake 2024-06-26 13:11:46 -04:00
panic-abort-eh_frame
panic-impl-transitive
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
pass-linker-flags-flavor
pass-linker-flags-from-dep
pass-non-c-like-enum-to-c
pdb-alt-path rewrite mingw-export-call-convention to rmake 2024-06-25 12:46:58 -04:00
pdb-buildinfo-cl-cmd
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
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 rewrite pretty-print-to-file to rmake 2024-06-26 11:44:11 -04:00
pretty-print-with-dep-file rewrite pretty-print-with-dep-file to rmake 2024-06-26 10:39:45 -04:00
print-calling-conventions
print-cfg Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
print-check-cfg Improve run-make-support library args API 2024-06-30 12:40:24 +02:00
print-native-static-libs De-duplicate all consecutive native libs regardless of their options 2024-06-25 13:18:19 +02:00
print-target-list
print-to-output Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
proc-macro-init-order
profile
prune-link-args
raw-dylib-alt-calling-convention
raw-dylib-c
raw-dylib-cross-compilation rewrite used-cdylib-macos to rmake 2024-06-28 16:28:57 -04:00
raw-dylib-custom-dlltool
raw-dylib-import-name-type
raw-dylib-inline-cross-dylib
raw-dylib-link-ordinal
raw-dylib-stdcall-ordinal
raw-fn-pointer-opt-undefined-behavior rewrite and rename issue-20626 to rmake 2024-06-25 15:02:19 -04:00
reachable-extern-fn-available-lto
redundant-libs
relocation-model rewrite crate-name-priority to rmake 2024-06-20 16:09:39 -04:00
relro-levels Enable cross compilation on run-make/relro-levels 2024-06-22 19:44:51 -04:00
remap-path-prefix rmeta_contains functions for remap-path-prefix 2024-06-28 16:30:17 -04:00
remap-path-prefix-dwarf
repr128-dwarf Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
reproducible-build
reproducible-build-2
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 Improve run-make-support library args API 2024-06-30 12:40:24 +02:00
return-non-c-like-enum-from-c
rlib-chain
rlib-format-packed-bundled-libs
rlib-format-packed-bundled-libs-2
rlib-format-packed-bundled-libs-3
rmeta-preferred
run-in-tmpdir-self-test
rust-lld
rust-lld-by-default-beta-stable Add a run-make test that LLD is not being used by default on the x64 beta/stable channel 2024-06-29 10:10:59 +02:00
rust-lld-by-default-nightly Add a run-make test that LLD is not being used by default on the x64 beta/stable channel 2024-06-29 10:10:59 +02:00
rust-lld-custom-target
rustc-macro-dep-files
rustdoc-determinism
rustdoc-error-lines
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
rustdoc-output-path
rustdoc-scrape-examples-invalid-expr
rustdoc-scrape-examples-macros
rustdoc-scrape-examples-multiple
rustdoc-scrape-examples-ordering
rustdoc-scrape-examples-remap Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
rustdoc-scrape-examples-test
rustdoc-scrape-examples-whitespace
rustdoc-shared-flags
rustdoc-target-spec-json-path
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
rustdoc-with-output-option
rustdoc-with-short-out-dir-option
sanitizer-cdylib-link
sanitizer-dylib-link
sanitizer-staticlib-link
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
sepcomp-inlining
sepcomp-separate
share-generics-dylib
share-generics-export-again
short-ice Add set_backtrace_level helper function to run_make_support 2024-06-11 15:39:54 -04:00
silly-file-names
simd-ffi
split-debuginfo
stable-symbol-names
static-dylib-by-default
static-extern-type
static-pie Migrate static-pie scripts to rmake 2024-06-22 14:15:23 -04:00
static-unwinding
staticlib-blank-lib
staticlib-dylib-linkage
std-core-cycle
stdin-rustc
stdin-rustdoc
suspicious-library
symbol-mangling-hashed
symbol-visibility
symbols-include-type-name
symlinked-extern Add need-symlink directive to compiletest 2024-06-23 13:42:52 +00:00
symlinked-libraries Add need-symlink directive to compiletest 2024-06-23 13:42:52 +00:00
symlinked-rlib Add need-symlink directive to compiletest 2024-06-23 13:42:52 +00:00
sysroot-crates-are-unstable
target-cpu-native
target-specs
target-without-atomic-cas
test-benches
test-harness
textrel-on-minimal-lib Improve run-make-support library args API 2024-06-30 12:40:24 +02:00
thumb-none-cortex-m
thumb-none-qemu
track-path-dep-info
track-pgo-dep-info Remove //@ ignore-windows-gnu from tests that need the profiler 2024-06-14 13:31:46 +10:00
translation
type-mismatch-same-crate-name
unknown-mod-stdin rewrite unknown-mod-stdin to rmake 2024-06-28 16:28:24 -04:00
unstable-flag-required
use-suggestions-rust-2018 rewrite use-suggestions-rust-2018 to rmake 2024-06-26 12:04:35 -04:00
used Migrate run-make/used to rmake.rs 2024-06-17 00:23:28 +02:00
used-cdylib-macos rewrite used-cdylib-macos to rmake 2024-06-28 16:28:57 -04:00
volatile-intrinsics
wasm-abi
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
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
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
windows-binary-no-external-deps
windows-safeseh update run-make/windows-safeseh compiletest header 2024-06-28 20:32:31 +03:00
windows-spawn
windows-ws2_32 Implement fs wrapper for run_make_support 2024-06-11 09:53:31 -04:00
x86_64-fortanix-unknown-sgx-lvi
git_clone_sha1.sh
README.md
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.