Files
rust/tests/run-make
bors 3f43b1a636 Auto merge of #135034 - Noratrieb:strip-correctly, r=jieyouxu
Pass objcopy args for stripping on OSX

When `-Cstrip` was changed in #131405 to use the bundled rust-objcopy instead of /usr/bin/strip on OSX, strip-like arguments were preserved.

But strip and objcopy are, while being the same binary, different, they have different defaults depending on which binary they are. Notably, strip strips everything by default, and objcopy doesn't strip anything by default.

Additionally, `-S` actually means `--strip-all`, so debuginfo stripped everything and symbols didn't strip anything.

We now correctly pass `--strip-debug` and `--strip-all`.

fixes #135028

try-job: aarch64-apple
try-job: dist-aarch64-apple
2025-01-03 17:20:39 +00:00
..
2024-06-07 11:12:04 +02:00
2024-05-09 13:29:46 -04:00
2024-07-17 13:34:18 +00:00
2024-08-15 15:44:29 +02:00
2024-07-17 13:34:18 +00:00
2024-08-15 15:44:29 +02:00
2024-07-17 13:34:18 +00:00
2024-07-29 14:33:54 -04:00
2024-09-05 08:43:38 +00:00
2024-07-29 08:26:52 +10:00
2024-06-25 14:27:43 -04:00
2024-05-28 11:41:53 -04:00
2024-07-18 09:28:30 -04:00
2024-07-17 13:34:18 +00:00
2024-07-17 13:34:18 +00:00
2024-07-17 13:34:18 +00:00
2024-07-29 08:26:52 +10:00
2024-07-29 08:26:52 +10:00
2024-07-29 08:26:52 +10:00
2024-07-17 13:34:18 +00:00
2024-11-22 11:12:15 -08:00
2024-08-15 15:44:29 +02:00
2024-08-15 15:44:29 +02:00
2024-09-05 08:43:38 +00:00
2024-09-05 08:43:38 +00:00
2024-11-30 16:29:49 +08:00
2024-08-03 13:02:32 +00:00
2024-07-29 08:26:52 +10: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.

Formatting

Note that files under tests/ are not formatted by ./x fmt, use rustfmt tests/path/to/file.rs to format a specific file if desired.