In Windows, the expansion of globs is not perform by the shell, and
might happen or not in each process. Seems that some versions of `test`
(like the one used in CI) do their own expansion. Since the test is
testing for the inexistence of a file, the asterisk ends up in the
process argv, then the expansion happen, which finds no files, and test
fails saying that -f needs an argument. This doesn't happen in Unix
because the asterisk is not expanded in process.
Quoting or other tricks were defeated by lit own parsing of the
commands.
The solution involves using Python own globbing to find out if there's a
file that matches the glob or not.
Rewrite the shell to be more clever so it is amenable to porting to
Windows. Use env not rather than not env to permit the lit environment
handling to take over for Windows.
...and remove the option. This is ~technically~ CLI-breaking because
Swift 5 shipped this as a hidden driver option, but it wouldn't have
/done/ anything in Swift 5, so I think it's okay to remove.
Note that if a parseable interface (.swiftinterface) and a binary
interface (.swiftmodule) are both present, the binary one will still
be preferred. This just /allows/ parseable interfaces to be used.
rdar://problem/36885834