c51828ae8b
The output is produced by printf from C code in these cases, and printf prints in text mode, which means `\n` will be printed as `\r\n` on Windows. In --bless mode the new output with `\r\n` will replace expected output in `tests/run-make/raw-dylib-*\output.txt` files, which use \n, always resulting in dirty files in the repo.
29 lines
1017 B
Makefile
29 lines
1017 B
Makefile
# Test the behavior of #[link(.., kind = "raw-dylib")] on windows-msvc
|
|
|
|
# only-windows
|
|
|
|
include ../tools.mk
|
|
|
|
all:
|
|
$(RUSTC) --crate-type lib --crate-name raw_dylib_test lib.rs
|
|
$(RUSTC) --crate-type bin driver.rs -L "$(TMPDIR)"
|
|
$(RUSTC) --crate-type bin --crate-name raw_dylib_test_bin lib.rs
|
|
$(call COMPILE_OBJ,"$(TMPDIR)"/extern_1.obj,extern_1.c)
|
|
$(call COMPILE_OBJ,"$(TMPDIR)"/extern_2.obj,extern_2.c)
|
|
ifdef IS_MSVC
|
|
$(CC) "$(TMPDIR)"/extern_1.obj -link -dll -out:"$(TMPDIR)"/extern_1.dll -noimplib
|
|
$(CC) "$(TMPDIR)"/extern_2.obj -link -dll -out:"$(TMPDIR)"/extern_2.dll -noimplib
|
|
else
|
|
$(CC) "$(TMPDIR)"/extern_1.obj -shared -o "$(TMPDIR)"/extern_1.dll
|
|
$(CC) "$(TMPDIR)"/extern_2.obj -shared -o "$(TMPDIR)"/extern_2.dll
|
|
endif
|
|
"$(TMPDIR)"/driver | tr -d '\r' > "$(TMPDIR)"/output.txt
|
|
"$(TMPDIR)"/raw_dylib_test_bin > "$(TMPDIR)"/output_bin.txt
|
|
|
|
ifdef RUSTC_BLESS_TEST
|
|
cp "$(TMPDIR)"/output.txt output.txt
|
|
else
|
|
$(DIFF) output.txt "$(TMPDIR)"/output.txt
|
|
$(DIFF) output.txt "$(TMPDIR)"/output_bin.txt
|
|
endif
|