summaryrefslogtreecommitdiff
path: root/lldb/test/Shell/SymbolFile/PDB/pointers.test
AgeCommit message (Collapse)Author
2025-10-21[LLDB][PDB] Run `pointers.test` with both plugins (#163623)nerix
The `pointers.test` was only run with the DIA plugin. I made the following changes: - Remove the check for the function type. The types of the function are different in the plugins: ``` Native: Type{0x00010084} , size = 0, compiler_type = 0x00000209aff60060 int (int) __attribute__((thiscall)) DIA: Type{0x0000000a} , name = "f", decl = PointerTypeTest.cpp:8, compiler_type = 0x0000020bc22356c0 int (int) __attribute__((thiscall)) ``` In DIA, each function gets its own type with a name and decl. In the native plugin, only one unnamed type is created per signature. This matches DWARF. - The check for the `struct ST` fields was split, because the order of members and methods is swapped between the plugins. In DIA, the member is first and in the native plugin the method is first. We still check that both are in the struct. - The type names for the local variables are different. The native plugin includes <code>\`extern "C" main'::\`2'::ST</code> which I added as an allowed prefix. This comes from the mangled name of the struct `ST` - `.?AUST@?1??main@@9@`. - The location of local variables is different. DIA creates one static location (e.g. `DW_OP_breg6 ESI-52`) whereas the native plugin limits the location to the block (e.g. `[0x0040100d, 0x00401038): DW_OP_breg6 ESI-52`). This gets printed on a second line and the `location` starts with `0x00000000:` - DIA adds a decl for each parameter (and local variable). However, this information is not contained in the PDB. I'm not sure how DIA calculates this. It's often wrong and assumes variables are declared earlier. For example, in this test ([PointerTypeTest.cpp](https://github.com/llvm/llvm-project/blob/2b135b931338a57c38d9c4a34ffdd59877ba82d6/lldb/test/Shell/SymbolFile/PDB/Inputs/PointerTypeTest.cpp)), it assumes that all local variables of `main` are created on line 4. The native plugin doesn't include this, so I made the check optional.
2025-07-30[lldb] Remove %T from lit tests (#151343)Aiden Grossman
%T has been deprecated for about seven years, mostly because it is not unique to each test which can lead to races. This patch updates the few remaining tests in lldb that use %T to not use it (either directly using files or creating their own temp dir). The eventual goal is to remove support for %T from llvm-lit given few tests use it and it still has racey behavior. This patch errors on the side of creating new temp dirs even when not strictly necessary to avoid needing to update filenames inside filecheck matchers.
2024-11-12[lldb][test] Fix remote Shell tests failures on Windows host (#115716)Vladislav Dzhidzhoev
Since the remote Shell test execution feature was added, these tests should now be disabled on Windows target instead of Windows host. It should fix failures on https://lab.llvm.org/staging/#/builders/197/builds/76.
2022-07-13[LLDB] Fix pointers.test for AArch64/WindowsMuhammad Omair Javaid
pointers.test started failing again for AArch64 windows after D125509 This patch fixes the test to make it pass on AArch64 windows again. LLDB AArch64 Windows buildbot running at: https://lab.llvm.org/staging/#/builders/207
2022-06-29[LLDB] Fix PDB/pointers.test for 32bit Arm/WindowsMuhammad Omair Javaid
PDB/pointers.test was orignally written for 32bit x86 keeping in mind __cdecl and __stdcall calling conventions which does name mangling for example like adding "_" underscore before function name. This is only x86 specific but purpose of pointers.test is NOT to test calling convention. I am have made a few minor changes to this test which will make it pass when run on Windows/Arm platform. Reviewed By: mstorsjo Differential Revision: https://reviews.llvm.org/D128668
2019-10-09Re-land "[test] Split LLDB tests into API, Shell & Unit"Jonas Devlieghere
The original patch got reverted because it broke `check-lldb` on a clean build. This fixes that. llvm-svn: 374201
2019-10-09Revert [test] Split LLDB tests into API, Shell & UnitAdrian Prantl
as it appears to have broken check-lldb. This reverts r374184 (git commit 22314179f0660c172514b397060fd8f34b586e82) llvm-svn: 374187
2019-10-09[test] Split LLDB tests into API, Shell & UnitJonas Devlieghere
LLDB has three major testing strategies: unit tests, tests that exercise the SB API though dotest.py and what we currently call lit tests. The later is rather confusing as we're now using lit as the driver for all three types of tests. As most of this grew organically, the directory structure in the LLDB repository doesn't really make this clear. The 'lit' tests are part of the root and among these tests there's a Unit and Suite folder for the unit and dotest-tests. This layout makes it impossible to run just the lit tests. This patch changes the directory layout to match the 3 testing strategies, each with their own directory and their own configuration file. This means there are now 3 directories under lit with 3 corresponding targets: - API (check-lldb-api): Test exercising the SB API. - Shell (check-lldb-shell): Test exercising command line utilities. - Unit (check-lldb-unit): Unit tests. Finally, there's still the `check-lldb` target that runs all three test suites. Finally, this also renames the lit folder to `test` to match the LLVM repository layout. Differential revision: https://reviews.llvm.org/D68606 llvm-svn: 374184