[lldb][gnustep] Add basic test and infrastructure for GNUstep ObjC runtime
authorStefan Gränitz <stefan.graenitz@gmail.com>
Tue, 16 May 2023 13:22:49 +0000 (15:22 +0200)
committerStefan Gränitz <stefan.graenitz@gmail.com>
Wed, 17 May 2023 08:37:38 +0000 (10:37 +0200)
commit4241ac542d691289f08c3229cfc58641f5659ec7
tree9fc37fa64d2666860e679835e5e06ea75864a13e
parent704eb9938387d38c4289890872247121f5a9382d
[lldb][gnustep] Add basic test and infrastructure for GNUstep ObjC runtime

This patch adds test infrastructure to utilize the GNUstep runtime in the LLDB test suite and adds coverage for features that already work on Linux. These seem accidental in parts, but it's a good early baseline. On Windows nothing works yet. Please find the repository for the GNUstep ObjC runtime here: https://github.com/gnustep/libobjc2

GNUstep support is disabled by default. CMake configuration involves two variables:
* `LLDB_TEST_OBJC_GNUSTEP=On` enables GNUstep support in the test suite. It requires the libobjc2 shared library and headers to be found.
* `LLDB_TEST_OBJC_GNUSTEP=Off` disables GNUstep support in the test suite and resets associated cache values if necessary (default).
* `LLDB_TEST_OBJC_GNUSTEP_DIR` allows to pass a custom installation root.

Differential Revision: https://reviews.llvm.org/D146058
lldb/cmake/modules/FindGNUstepObjC.cmake [new file with mode: 0644]
lldb/test/CMakeLists.txt
lldb/test/Shell/Expr/objc-gnustep-print.m [new file with mode: 0644]
lldb/test/Shell/helper/build.py
lldb/test/Shell/helper/toolchain.py
lldb/test/Shell/lit.cfg.py
lldb/test/Shell/lit.site.cfg.py.in