[libcxx-dev] Should libc++ .fail.cpp tests use -verify?

Louis Dionne via libcxx-dev libcxx-dev at lists.llvm.org
Mon Jul 6 10:21:29 PDT 2020

> On Jul 1, 2020, at 14:01, Brian Cain <bcain at codeaurora.org> wrote:
>> -----Original Message-----
>> From: libcxx-dev <libcxx-dev-bounces at lists.llvm.org> On Behalf Of Mikhail
>> Maltsev via libcxx-dev
> ...
>> On 11/06/2020 21:26, Louis Dionne wrote:
> ...
>> This happens because in our case we are targeting bare-metal platforms and
>> the ${exec} substitution runs the provided command on a simulator. This
>> obviously fails when the command includes Unix shell constructs, such as I/O
>> redirections, pipes and shell built-ins (e.g. echo, !).
>> I propose to modify the set of substitutions as follows:
>> - add %{exec_sh} meaning "execute a shell command" (e.g. locally or on a
>> remote
>>   machine). Everything after %{exec_sh} is shell-quoted and passed to the
>>   corresponding script.
>> - add %{exec_bin} meaning "execute a target binary". The corresponding script
>>   accepts the binary and its command-line arguments.
>> - make %{exec} an alias for '%{exec_sh} %{exec_bin}'
>> Usage example:
>> // RUN: %{exec_sh} echo "123" \| %{exec_bin} %t.exe > %t.out
>> My prototype implementation worked fine for our use cases. Does this
>> approach look sensible to you? If it does, I will start working on a patch.

Do you have the full set of failing tests in that environment? I'd like to take a look at whether it's possible to change those tests to avoid using these constructs altogether. Furthermore, I have an incomplete patch (locally) that runs the tests in the internal Lit shell, which would also alleviate some of these issues. But ideally everything that comes after %{exec} would not require Unix shell capabilities.

I'm asking because I'd like to avoid introducing another substitution, if at all possible.


> It makes sense to me.  Louis' patch for fixing the executors for new-format hasn't yet landed on our downstream repo, so I haven't had a chance to try them yet.  I expect I'll encounter the same issues you are seeing and I look forward to trying out your patch.
> -Brian

More information about the libcxx-dev mailing list