new format and LIBCXX*_EXECUTOR, LIBCXX_TARGET_INFO

Louis,

When the switch to the new test format landed on our downstream repo, it seemed as if the LIBCXX_EXECUTOR and LIBCXX_TARGET_INFO cmake arguments were being ignored. I can see a couple of apply/reverts and some fixes to executor behavior, so I expect that in general the use case for executors is already considered. But maybe not being set via cmake? That said, our downstream system that takes upstream commits will consider applying them out-of-order, so I’m not certain I have all of the fixes yet. I’ll continue to dig deeper, but I just wanted to take a step back and try to understand if the new format is intended to work like this or if there’s another way.

The local config generated by cmake looks like this:

projects/libcxx/test/lit.site.cfg

30:config.executor = “PrefixExecutor([”/bin/bash", “/path/to/target/test/wrapper.sh”],LocalExecutor())"

projects/libcxx/test/lit.site.cfg

25:config.target_info = “libcxx.quic.custom_target_info.CustomTargetInfo”

… and the comment still gets emitted:

llvm-lit: /local/mnt/workspace/mc/llvm-project/libcxx/utils/libcxx/test/config.py:193: note: Using executor: ‘PrefixExecutor(["/bin/bash", “/path/to/target/test/wrapper.sh”],LocalExecutor())’

… but then I see

: ‘EXECUTED AS’; /usr/bin/python /src/llvm-project/libcxx/utils/run.py --codesign_identity “” --dependencies /build/projects/libcxx/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/Output/random_shuffle.cxx1z.pass.cpp.tmp.exe --env LIBCXX_SRC_ROOT=/src/llvm-project/libcxx --execdir /build/projects/libcxx/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/Output/random_shuffle.cxx1z.pass.cpp.tmp.execdir – /build/projects/libcxx/test/libcxx/algorithms/alg.modifying.operations/alg.random.shuffle/Output/random_shuffle.cxx1z.pass.cpp.tmp.exe

If it’s just an oversight, I can provide a fix once I figure it out. I just wanted to double check whether or not we want these cmake definitions to work in the future.

-Brian

Hi,

We’ll need to add a mechanism for arbitrary executors to be specified in the new format. Basically, the old format of specifying the executor as a Python string that gets eval’d won’t work anymore — instead you’ll specify the script to run directly.

I’ll work on a fix tomorrow.

Louis

Omitted +libcxx-dev list by accident w/reply.