No longer able to run lit tests within a sub-tool

As of r313998, this workflow no longer works:

cd
./bin/llvm-lit /llvm/tools/clang/test/CoverageMapping

I get:

llvm-lit: /Users/vk/src/llvm.org-coverage-braces/llvm/tools/clang/test/lit.cfg.py:97: note: using clang: ‘/Volumes/Builds/llvm.org-coverage-braces-RA/bin/clang’
llvm-lit: /Users/vk/src/llvm.org-coverage-braces/llvm/utils/lit/lit/TestingConfig.py:101: fatal: unable to parse config file ‘/Users/vk/src/llvm.org-coverage-braces/llvm/tools/clang/test/lit.cfg.py’, traceback: Traceback (most recent call last):
File “/Users/vk/src/llvm.org-coverage-braces/llvm/utils/lit/lit/TestingConfig.py”, line 88, in load_from_path
exec(compile(data, path, ‘exec’), cfg_globals, None)
File “/Users/vk/src/llvm.org-coverage-braces/llvm/tools/clang/test/lit.cfg.py”, line 128, in
config.substitutions.append( (‘%clang_func_map’, ’ ’ + lit.util.which(‘clang-func-mapping’, config.environment[‘PATH’]) + ’ ') )
TypeError: cannot concatenate ‘str’ and ‘NoneType’ objects

However, this still works when running tests within llvm:

./bin/llvm-lit /llvm/test/tools/llvm-cov

I’d appreciate any help in getting this working again.

thanks,
vedant

Looking, thanks for the report.

This works for me. Can you run “which clang-func-mapping” and also add a line to clang/test/lit.cfg.py to print the value of config.environment[‘PATH’]?

Ah, the problem goes away once I build clang-func-mapping.

I stripped some stuff out, but here’s pretty much what clang/test/lit.cfg.py says my PATH is:

** PATH **: /Volumes/Builds/llvm.org-coverage-braces-RA/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

I wonder how this ever worked before, when I didn’t have clang-func-mapping built.

Anyway, thanks for your help!

vedant

Ah, the problem goes away once I build clang-func-mapping.

I stripped some stuff out, but here's pretty much what clang/test/lit.cfg.py says my PATH is:

** PATH **: /Volumes/Builds/llvm.org-coverage-braces-RA/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

I wonder how this ever worked before, when I didn't have clang-func-mapping built.

Oh, this might be an issue with r313975, which I picked up when rebasing things this morning.

vedant

Yea at first I was worried that maybe I changed the semantics of how it looked in PATH, and you had clang-func-mapping in your PATH somewhere before but now lit was building a different PATH. But I looked at that change and it wasn’t even creating that substitution before. So it looks like that CL is indeed the problem.

Fixed r314013