[PATCH] D150856: [lit] Add %{for-each-file} substitution

Joel E. Denny via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 25 14:54:47 PDT 2023

jdenny added a comment.

In D150856#4436942 <https://reviews.llvm.org/D150856#4436942>, @jhenderson wrote:

> I've been watching on the discussion a bit over the last few days, and soemthing along these lines is what I'm inclined to think would make sense.

In D150856#4442045 <https://reviews.llvm.org/D150856#4442045>, @Endill wrote:

> That's an excellent suggestion!

Great, we're converging!

> Is any aspect of it a real lit API?

Not that I'm aware of.  Someone would have to implement it.  Until then, the external/split-file python ideas that you and @jhenderson are discussing seem like a reasonable direction for the C++ DR testing.  I don't yet understand what your `%lit-generate-directives` does, but I don't have time to investigate right now.

A few more thoughts on the `PYTHON:` directive in case someone pursues it....

I imagine it could eventually replace some other existing and proposed lit features as well.  Lit's existing `%if x` could become `PYTHON: if lit.features('x'):`.  Python functions could replace parameterized substitutions (discussed in the DEFINE/REDEFINE documentation <https://llvm.org/docs/TestingGuide.html#substitutions>) and function-like substitutions (which I started working on previously <https://reviews.llvm.org/D133172>).  In general, I think using python instead of lit features in this way would lower the learning curve for lit users, increase the flexibility, and lower the maintenance burden for lit developers.

Also, if `RUN: cmd` is treated as an alias for `PYTHON: lit.run(cmd_escaped_for_python)`, then it should be easier to annotate existing lit tests with `PYTHON: if cond:` directives and similar.

  rG LLVM Github Monorepo



More information about the llvm-commits mailing list