Jordan Rupprecht 99451b4453 [lldb][test] Remove symlink for API tests.
Summary: Moves lldbsuite tests to lldb/test/API.

This is a largely mechanical change, moved with the following steps:

```
rm lldb/test/API/testcases
mkdir -p lldb/test/API/{test_runner/test,tools/lldb-{server,vscode}}
mv lldb/packages/Python/lldbsuite/test/test_runner/test lldb/test/API/test_runner
for d in $(find lldb/packages/Python/lldbsuite/test/* -maxdepth 0 -type d | egrep -v "make|plugins|test_runner|tools"); do mv $d lldb/test/API; done
for d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-vscode -maxdepth 1 -mindepth 1 | grep -v ".py"); do mv $d lldb/test/API/tools/lldb-vscode; done
for d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-server -maxdepth 1 -mindepth 1 | egrep -v "gdbremote_testcase.py|lldbgdbserverutils.py|socket_packet_pump.py"); do mv $d lldb/test/API/tools/lldb-server; done
```

lldb/packages/Python/lldbsuite/__init__.py and lldb/test/API/lit.cfg.py were also updated with the new directory structure.

Reviewers: labath, JDevlieghere

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D71151
2020-02-11 10:03:53 -08:00

118 lines
3.5 KiB
Python

import lldb
class jasSynthProvider:
def __init__(self, valobj, dict):
self.valobj = valobj
def num_children(self):
return 2
def get_child_at_index(self, index):
child = None
if index == 0:
child = self.valobj.GetChildMemberWithName('A')
if index == 1:
child = self.valobj.CreateValueFromExpression('X', '(int)1')
return child
def get_child_index(self, name):
if name == 'A':
return 0
if name == 'X':
return 1
return None
def ccc_summary(sbvalue, internal_dict):
sbvalue = sbvalue.GetNonSyntheticValue()
# This tests that the SBValue.GetNonSyntheticValue() actually returns a
# non-synthetic value. If it does not, then sbvalue.GetChildMemberWithName("a")
# in the following statement will call the 'get_child_index' method of the
# synthetic child provider CCCSynthProvider below (which raises an
# exception).
return "CCC object with leading value " + \
str(sbvalue.GetChildMemberWithName("a"))
class CCCSynthProvider(object):
def __init__(self, sbvalue, internal_dict):
self._sbvalue = sbvalue
def num_children(self):
return 3
def get_child_index(self, name):
raise RuntimeError("I don't want to be called!")
def get_child_at_index(self, index):
if index == 0:
return self._sbvalue.GetChildMemberWithName("a")
if index == 1:
return self._sbvalue.GetChildMemberWithName("b")
if index == 2:
return self._sbvalue.GetChildMemberWithName("c")
def empty1_summary(sbvalue, internal_dict):
return "I am an empty Empty1"
class Empty1SynthProvider(object):
def __init__(self, sbvalue, internal_dict):
self._sbvalue = sbvalue
def num_children(self):
return 0
def get_child_at_index(self, index):
return None
def empty2_summary(sbvalue, internal_dict):
return "I am an empty Empty2"
class Empty2SynthProvider(object):
def __init__(self, sbvalue, internal_dict):
self._sbvalue = sbvalue
def num_children(self):
return 0
def get_child_at_index(self, index):
return None
def __lldb_init_module(debugger, dict):
debugger.CreateCategory("JASSynth").AddTypeSynthetic(
lldb.SBTypeNameSpecifier("JustAStruct"),
lldb.SBTypeSynthetic.CreateWithClassName("synth.jasSynthProvider"))
cat = debugger.CreateCategory("CCCSynth")
cat.AddTypeSynthetic(
lldb.SBTypeNameSpecifier("CCC"),
lldb.SBTypeSynthetic.CreateWithClassName("synth.CCCSynthProvider",
lldb.eTypeOptionCascade))
cat.AddTypeSummary(
lldb.SBTypeNameSpecifier("CCC"),
lldb.SBTypeSummary.CreateWithFunctionName("synth.ccc_summary",
lldb.eTypeOptionCascade))
cat.AddTypeSynthetic(
lldb.SBTypeNameSpecifier("Empty1"),
lldb.SBTypeSynthetic.CreateWithClassName("synth.Empty1SynthProvider"))
cat.AddTypeSummary(
lldb.SBTypeNameSpecifier("Empty1"),
lldb.SBTypeSummary.CreateWithFunctionName("synth.empty1_summary"))
cat.AddTypeSynthetic(
lldb.SBTypeNameSpecifier("Empty2"),
lldb.SBTypeSynthetic.CreateWithClassName("synth.Empty2SynthProvider"))
cat.AddTypeSummary(
lldb.SBTypeNameSpecifier("Empty2"),
lldb.SBTypeSummary.CreateWithFunctionName(
"synth.empty2_summary",
lldb.eTypeOptionHideEmptyAggregates))