Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests/run-make: Move RUSTC_TEST_OP to tools.mk and use in more places #116509

Merged
merged 3 commits into from
Oct 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions tests/run-make/const_fn_mir/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,4 @@ include ../tools.mk

all:
$(RUSTC) main.rs --emit=mir -o "$(TMPDIR)"/dump.mir

ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/dump.mir dump.mir
else
$(DIFF) dump.mir "$(TMPDIR)"/dump.mir
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/dump.mir dump.mir
6 changes: 0 additions & 6 deletions tests/run-make/metadata-dep-info/Makefile
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
include ../tools.mk

ifdef RUSTC_BLESS_TEST
RUSTC_TEST_OP = cp
else
RUSTC_TEST_OP = $(DIFF)
endif

all:
$(RUSTC) --emit=metadata,dep-info --crate-type lib dash-separated.rs -C extra-filename=_something-extra
# Strip TMPDIR since it is a machine specific absolute path
Expand Down
10 changes: 2 additions & 8 deletions tests/run-make/overwrite-input/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,5 @@ include ../tools.mk
all:
$(RUSTC) main.rs -o main.rs 2> $(TMPDIR)/file.stderr || echo "failed successfully"
$(RUSTC) main.rs -o . 2> $(TMPDIR)/folder.stderr || echo "failed successfully"

ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/file.stderr file.stderr
cp "$(TMPDIR)"/folder.stderr folder.stderr
else
$(DIFF) file.stderr "$(TMPDIR)"/file.stderr
$(DIFF) folder.stderr "$(TMPDIR)"/folder.stderr
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/file.stderr file.stderr
$(RUSTC_TEST_OP) "$(TMPDIR)"/folder.stderr folder.stderr
12 changes: 2 additions & 10 deletions tests/run-make/raw-dylib-alt-calling-convention/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,9 @@ else
endif

"$(TMPDIR)"/driver > "$(TMPDIR)"/output.txt
ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/output.txt output.txt
else
$(DIFF) output.txt "$(TMPDIR)"/output.txt
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/output.txt output.txt

ifdef IS_MSVC
"$(TMPDIR)"/driver true > "$(TMPDIR)"/output.msvc.txt
ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/output.msvc.txt output.msvc.txt
else
$(DIFF) output.msvc.txt "$(TMPDIR)"/output.msvc.txt
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/output.msvc.txt output.msvc.txt
endif
7 changes: 1 addition & 6 deletions tests/run-make/raw-dylib-import-name-type/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,4 @@ else
$(CC) "$(TMPDIR)"/extern.obj extern.gnu.def --no-leading-underscore -shared -o "$(TMPDIR)"/extern.dll
endif
"$(TMPDIR)"/driver > "$(TMPDIR)"/output.txt

ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/output.txt output.txt
else
$(DIFF) output.txt "$(TMPDIR)"/output.txt
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/output.txt output.txt
7 changes: 1 addition & 6 deletions tests/run-make/raw-dylib-inline-cross-dylib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,4 @@ else
$(CC) "$(TMPDIR)"/extern_2.obj -shared -o "$(TMPDIR)"/extern_2.dll
endif
$(call RUN,driver) > "$(TMPDIR)"/output.txt

ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/output.txt output.txt
else
$(DIFF) output.txt "$(TMPDIR)"/output.txt
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/output.txt output.txt
7 changes: 1 addition & 6 deletions tests/run-make/raw-dylib-link-ordinal/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,4 @@ else
$(CC) "$(TMPDIR)"/exporter.obj exporter.def -shared -o "$(TMPDIR)"/exporter.dll
endif
"$(TMPDIR)"/driver > "$(TMPDIR)"/output.txt

ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/output.txt output.txt
else
$(DIFF) output.txt "$(TMPDIR)"/output.txt
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/output.txt output.txt
7 changes: 1 addition & 6 deletions tests/run-make/raw-dylib-stdcall-ordinal/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,4 @@ else
$(CC) "$(TMPDIR)"/exporter.obj exporter-gnu.def -shared -o "$(TMPDIR)"/exporter.dll
endif
"$(TMPDIR)"/driver > "$(TMPDIR)"/actual_output.txt

ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/actual_output.txt expected_output.txt
else
$(DIFF) expected_output.txt "$(TMPDIR)"/actual_output.txt
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/actual_output.txt expected_output.txt
6 changes: 0 additions & 6 deletions tests/run-make/silly-file-names/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,6 @@

include ../tools.mk

ifdef RUSTC_BLESS_TEST
RUSTC_TEST_OP = cp
else
RUSTC_TEST_OP = $(DIFF)
endif

all:
echo '"comes from a file with a name that begins with <"' > "$(TMPDIR)/<leading-lt"
echo '"comes from a file with a name that ends with >"' > "$(TMPDIR)/trailing-gt>"
Expand Down
22 changes: 22 additions & 0 deletions tests/run-make/tools.mk
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,28 @@ CGREP := "$(S)/src/etc/cat-and-grep.sh"
# diff with common flags for multi-platform diffs against text output
DIFF := diff -u --strip-trailing-cr

# With RUSTC_TEST_OP you can elegantly support blessing of run-make tests. Do
# like this in a Makefile recipe:
#
# "$(TMPDIR)"/your-test > "$(TMPDIR)"/your-test.run.stdout
# $(RUSTC_TEST_OP) "$(TMPDIR)"/your-test.run.stdout your-test.run.stdout
#
# When running the test normally with
#
# ./x test tests/run-make/your-test
#
# the actual output will be diffed against the expected output. When running in
# bless-mode with
#
# ./x test --bless tests/run-make/your-test
#
# the actual output will be blessed as the expected output.
ifdef RUSTC_BLESS_TEST
RUSTC_TEST_OP = cp
else
RUSTC_TEST_OP = $(DIFF)
endif

# Some of the Rust CI platforms use `/bin/dash` to run `shell` script in
# Makefiles. Other platforms, including many developer platforms, default to
# `/bin/bash`. (In many cases, `make` is actually using `/bin/sh`, but `sh`
Expand Down
11 changes: 2 additions & 9 deletions tests/run-make/unknown-mod-stdin/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,5 @@ include ../tools.mk

all:
echo 'mod unknown;' | $(RUSTC) --crate-type rlib - >$(TMPDIR)/unknown-mod.stdout 2>$(TMPDIR)/unknown-mod.stderr || echo "failed successfully"

# Bless like this: RUSTC_BLESS_TEST=1 ./x.py test tests/run-make/unknown-mod-stdin
ifdef RUSTC_BLESS_TEST
cp "$(TMPDIR)"/unknown-mod.stdout unknown-mod.stdout
cp "$(TMPDIR)"/unknown-mod.stderr unknown-mod.stderr
else
$(DIFF) unknown-mod.stdout "$(TMPDIR)"/unknown-mod.stdout
$(DIFF) unknown-mod.stderr "$(TMPDIR)"/unknown-mod.stderr
endif
$(RUSTC_TEST_OP) "$(TMPDIR)"/unknown-mod.stdout unknown-mod.stdout
$(RUSTC_TEST_OP) "$(TMPDIR)"/unknown-mod.stderr unknown-mod.stderr
Loading