nridge added a comment. This patch is a spinoff from my call hierarchy work (which I haven't posted for review yet, though I posted a draft at D89296 <https://reviews.llvm.org/D89296>).
I'd like to be able to write tests where I can: - specify the contents of multiple header and source files, which may have `#include` relationships among them - index the files - create an AST for one or more of these files - run operations that require an AST + the index and make assertions about their results. The `TestWorkspace` utility in this patch is my attempt to allow writing tests of this form without a lot of boilerplate. I also use it in one existing test, `BackgroundIndexTest.RelationsMultiFile`, though this use is not the most interesting as it does not involve ASTs. There is a more interesting use in D89298 <https://reviews.llvm.org/D89298> for writing a call hierarchy test that does use ASTs. I am seeking guidance on the following: - Is this a useful utility to have? I've certainly found it useful for writing call hierarchy tests. - Is it OK that it depends on `BackgroundIndex`? In principle, it should be possible to make the same interface work with `FileIndex` under the hood, but I haven't figured out how. (Specifically, I haven't figured out how to get `FileIndex` to resolve `#include`s, because you can't pass a `MockFS` to it the way you can to `BackgroundIndex`.) - If we keep the dependency on `BackgroundIndex`, is it OK to move the related dependencies (like `MemoryShardStorage`) to a header, so that `TestWorkspace` itself can live in a header and tests from different files (not just `BackgroundIndexTest.cpp`) can use it? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D89297/new/ https://reviews.llvm.org/D89297 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits