Skip to content

Commit

Permalink
Rollup merge of rust-lang#47289 - etaoins:skip-linker-output-non-utf8…
Browse files Browse the repository at this point in the history
…-test-on-apple, r=kennytm

Skip linker-output-non-utf8 test on Apple

This test fails on APFS filesystems with the following error:

```shell
mkdir: /Users/ryan/Code/rust/build/x86_64-apple-darwin/test/run-make/linker-output-non-utf8.stage2-x86_64-apple-darwin/zzz�: Illegal byte sequence
```

The mkdir does succeed on an HFS+ volume mounted on the same system:
```shell
$ mkdir zzz$$'\xff'
$ ls
zzz47432\xff
```

This is due to APFS now requiring that all paths are valid UTF-8. As APFS will be the default filesystem for all new Darwin-based systems the most straightforward fix is to skip this test on Darwin as well as Windows.
  • Loading branch information
kennytm authored Jan 11, 2018
2 parents 213bbde + b69c320 commit 55d27c8
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/test/run-make/linker-output-non-utf8/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

# Make sure we don't ICE if the linker prints a non-UTF-8 error message.

ifdef IS_WINDOWS
# ignore windows
# Ignore Windows and Apple

# This does not work in its current form on windows, possibly due to
# gcc bugs or something about valid Windows paths. See issue #29151
# for more information.
all:
ifndef IS_WINDOWS

else
# This also does not work on Apple APFS due to the filesystem requiring
# valid UTF-8 paths.
ifneq ($(shell uname),Darwin)

# The zzz it to allow humans to tab complete or glob this thing.
bad_dir := $(TMPDIR)/zzz$$'\xff'
Expand All @@ -20,5 +21,12 @@ all:
mkdir $(bad_dir)
mv $(TMPDIR)/liblibrary.a $(bad_dir)
LIBRARY_PATH=$(bad_dir) $(RUSTC) exec.rs 2>&1 | $(CGREP) this_symbol_not_defined
else
all:

endif

else
all:

endif

0 comments on commit 55d27c8

Please sign in to comment.