aboutsummaryrefslogtreecommitdiff
path: root/lldb/test/API/python_api
diff options
context:
space:
mode:
authorDave Lee <davelee.com@gmail.com>2025-09-03 12:15:20 -0700
committerGitHub <noreply@github.com>2025-09-03 12:15:20 -0700
commit9d9a714f794b3e7ceb1d8d84a7137eb47eba06f0 (patch)
tree70da09c55a336c36d87cc61afd06760a0850fbf9 /lldb/test/API/python_api
parentd7a08c5a806fa3f59ef61d6a89ca9fff07555906 (diff)
downloadllvm-9d9a714f794b3e7ceb1d8d84a7137eb47eba06f0.zip
llvm-9d9a714f794b3e7ceb1d8d84a7137eb47eba06f0.tar.gz
llvm-9d9a714f794b3e7ceb1d8d84a7137eb47eba06f0.tar.bz2
Revert "[lldb] Add Pythonic API to SBStructuredData extension (#155061)" (#156728)
Reverts #155061 (and #156721) which caused Crashlog shell tests to break.
Diffstat (limited to 'lldb/test/API/python_api')
-rw-r--r--lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py124
1 files changed, 26 insertions, 98 deletions
diff --git a/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py b/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py
index 275ac03..99f88d3 100644
--- a/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py
+++ b/lldb/test/API/python_api/sbstructureddata/TestStructuredDataAPI.py
@@ -48,11 +48,10 @@ class TestStructuredDataAPI(TestBase):
s.Clear()
error = example.GetDescription(s)
self.assertSuccess(error, "GetDescription works")
- # Ensure str() doesn't raise an exception.
- self.assertTrue(str(example))
if not "key_float" in s.GetData():
self.fail("FAILED: could not find key_float in description output")
+ dict_struct = lldb.SBStructuredData()
dict_struct = example.GetValueForKey("key_dict")
# Tests for dictionary data type
@@ -114,26 +113,21 @@ class TestStructuredDataAPI(TestBase):
self.assertSuccess(example.SetFromJSON("1"))
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeInteger)
self.assertEqual(example.GetIntegerValue(), 1)
- self.assertEqual(int(example), 1)
self.assertSuccess(example.SetFromJSON("4.19"))
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeFloat)
self.assertEqual(example.GetFloatValue(), 4.19)
- self.assertEqual(float(example), 4.19)
self.assertSuccess(example.SetFromJSON('"Bonjour, 123!"'))
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeString)
self.assertEqual(example.GetStringValue(42), "Bonjour, 123!")
- self.assertEqual(str(example), "Bonjour, 123!")
self.assertSuccess(example.SetFromJSON("true"))
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeBoolean)
self.assertTrue(example.GetBooleanValue())
- self.assertTrue(example)
self.assertSuccess(example.SetFromJSON("null"))
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeNull)
- self.assertFalse(example)
example = lldb.SBStructuredData()
example.SetUnsignedIntegerValue(1)
@@ -193,35 +187,38 @@ class TestStructuredDataAPI(TestBase):
self.assertEqual(sb_data, example_arr)
def invalid_struct_test(self, example):
+ invalid_struct = lldb.SBStructuredData()
invalid_struct = example.GetValueForKey("invalid_key")
if invalid_struct.IsValid():
self.fail("An invalid object should have been returned")
# Check Type API
- if invalid_struct.GetType() != lldb.eStructuredDataTypeInvalid:
+ if not invalid_struct.GetType() == lldb.eStructuredDataTypeInvalid:
self.fail("Wrong type returned: " + str(invalid_struct.GetType()))
def dictionary_struct_test(self, example):
# Check API returning a valid SBStructuredData of 'dictionary' type
+ dict_struct = lldb.SBStructuredData()
dict_struct = example.GetValueForKey("key_dict")
if not dict_struct.IsValid():
self.fail("A valid object should have been returned")
# Check Type API
- if dict_struct.GetType() != lldb.eStructuredDataTypeDictionary:
+ if not dict_struct.GetType() == lldb.eStructuredDataTypeDictionary:
self.fail("Wrong type returned: " + str(dict_struct.GetType()))
# Check Size API for 'dictionary' type
- if dict_struct.GetSize() != 6:
+ if not dict_struct.GetSize() == 6:
self.fail("Wrong no of elements returned: " + str(dict_struct.GetSize()))
def string_struct_test(self, dict_struct):
+ string_struct = lldb.SBStructuredData()
string_struct = dict_struct.GetValueForKey("key_string")
if not string_struct.IsValid():
self.fail("A valid object should have been returned")
# Check Type API
- if string_struct.GetType() != lldb.eStructuredDataTypeString:
+ if not string_struct.GetType() == lldb.eStructuredDataTypeString:
self.fail("Wrong type returned: " + str(string_struct.GetType()))
# Check API returning 'string' value
@@ -241,17 +238,18 @@ class TestStructuredDataAPI(TestBase):
# Check a valid SBStructuredData containing an unsigned integer.
# We intentionally make this larger than what an int64_t can hold but
# still small enough to fit a uint64_t
+ uint_struct = lldb.SBStructuredData()
uint_struct = dict_struct.GetValueForKey("key_uint")
if not uint_struct.IsValid():
self.fail("A valid object should have been returned")
# Check Type API
- if uint_struct.GetType() != lldb.eStructuredDataTypeInteger:
+ if not uint_struct.GetType() == lldb.eStructuredDataTypeInteger:
self.fail("Wrong type returned: " + str(uint_struct.GetType()))
# Check API returning unsigned integer value
output = uint_struct.GetUnsignedIntegerValue()
- if output != 0xFFFFFFFF00000000:
+ if not output == 0xFFFFFFFF00000000:
self.fail("wrong output: " + str(output))
# Calling wrong API on a SBStructuredData
@@ -264,17 +262,18 @@ class TestStructuredDataAPI(TestBase):
# Check a valid SBStructuredData containing an signed integer.
# We intentionally make this smaller than what an uint64_t can hold but
# still small enough to fit a int64_t
+ sint_struct = lldb.SBStructuredData()
sint_struct = dict_struct.GetValueForKey("key_sint")
if not sint_struct.IsValid():
self.fail("A valid object should have been returned")
# Check Type API
- if sint_struct.GetType() != lldb.eStructuredDataTypeSignedInteger:
+ if not sint_struct.GetType() == lldb.eStructuredDataTypeSignedInteger:
self.fail("Wrong type returned: " + str(sint_struct.GetType()))
# Check API returning signed integer value
output = sint_struct.GetSignedIntegerValue()
- if output != -42:
+ if not output == -42:
self.fail("wrong output: " + str(output))
# Calling wrong API on a SBStructuredData
@@ -284,26 +283,28 @@ class TestStructuredDataAPI(TestBase):
self.fail("Valid string " + output + " returned for an integer object")
def double_struct_test(self, dict_struct):
+ floating_point_struct = lldb.SBStructuredData()
floating_point_struct = dict_struct.GetValueForKey("key_float")
if not floating_point_struct.IsValid():
self.fail("A valid object should have been returned")
# Check Type API
- if floating_point_struct.GetType() != lldb.eStructuredDataTypeFloat:
+ if not floating_point_struct.GetType() == lldb.eStructuredDataTypeFloat:
self.fail("Wrong type returned: " + str(floating_point_struct.GetType()))
# Check API returning 'double' value
output = floating_point_struct.GetFloatValue()
- if output != 2.99:
+ if not output == 2.99:
self.fail("wrong output: " + str(output))
def bool_struct_test(self, dict_struct):
+ bool_struct = lldb.SBStructuredData()
bool_struct = dict_struct.GetValueForKey("key_bool")
if not bool_struct.IsValid():
self.fail("A valid object should have been returned")
# Check Type API
- if bool_struct.GetType() != lldb.eStructuredDataTypeBoolean:
+ if not bool_struct.GetType() == lldb.eStructuredDataTypeBoolean:
self.fail("Wrong type returned: " + str(bool_struct.GetType()))
# Check API returning 'bool' value
@@ -313,16 +314,17 @@ class TestStructuredDataAPI(TestBase):
def array_struct_test(self, dict_struct):
# Check API returning a valid SBStructuredData of 'array' type
+ array_struct = lldb.SBStructuredData()
array_struct = dict_struct.GetValueForKey("key_array")
if not array_struct.IsValid():
self.fail("A valid object should have been returned")
# Check Type API
- if array_struct.GetType() != lldb.eStructuredDataTypeArray:
+ if not array_struct.GetType() == lldb.eStructuredDataTypeArray:
self.fail("Wrong type returned: " + str(array_struct.GetType()))
# Check Size API for 'array' type
- if array_struct.GetSize() != 2:
+ if not array_struct.GetSize() == 2:
self.fail("Wrong no of elements returned: " + str(array_struct.GetSize()))
# Check API returning a valid SBStructuredData for different 'array'
@@ -330,91 +332,17 @@ class TestStructuredDataAPI(TestBase):
string_struct = array_struct.GetItemAtIndex(0)
if not string_struct.IsValid():
self.fail("A valid object should have been returned")
- if string_struct.GetType() != lldb.eStructuredDataTypeString:
+ if not string_struct.GetType() == lldb.eStructuredDataTypeString:
self.fail("Wrong type returned: " + str(string_struct.GetType()))
output = string_struct.GetStringValue(5)
- if output != "23":
+ if not output == "23":
self.fail("wrong output: " + str(output))
string_struct = array_struct.GetItemAtIndex(1)
if not string_struct.IsValid():
self.fail("A valid object should have been returned")
- if string_struct.GetType() != lldb.eStructuredDataTypeString:
+ if not string_struct.GetType() == lldb.eStructuredDataTypeString:
self.fail("Wrong type returned: " + str(string_struct.GetType()))
output = string_struct.GetStringValue(5)
- if output != "arr":
+ if not output == "arr":
self.fail("wrong output: " + str(output))
-
- def test_round_trip_scalars(self):
- for original in (0, 11, -1, 0.0, 4.5, -0.25, True, False):
- constructor = type(original)
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(original))
- round_tripped = constructor(data)
- self.assertEqual(round_tripped, original)
-
- def test_dynamic(self):
- for original in (0, 11, -1, 0.0, 4.5, -0.25, "", "dirk", True, False):
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(original))
- self.assertEqual(data.dynamic, original)
-
- def test_round_trip_int(self):
- for original in (0, 11, -1):
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(original))
- self.assertEqual(int(data), int(original))
-
- def test_round_trip_float(self):
- for original in (0, 11, -1, 0.0, 4.5, -0.25):
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(original))
- self.assertEqual(float(data), float(original))
-
- def test_round_trip_bool(self):
- for original in (0, 11, -1, 0.0, 4.5, -0.25, "0.0", "4.5", "-0.25"):
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(original))
- self.assertEqual(bool(data), bool(original))
-
- for original in ([], {}, [1], {1: 1}):
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(original))
- self.assertEqual(bool(data), bool(original))
-
- def test_assert_false(self):
- self.assertFalse(lldb.SBStructuredData())
- for original in ("0", "0.0", '""', "[]", "{}"):
- data = lldb.SBStructuredData()
- data.SetFromJSON(original)
- self.assertFalse(data)
-
- def test_iterate_array(self):
- array = [0, 1, 2]
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(array))
- for value in data:
- self.assertEqual(value, array.pop(0))
-
- def test_iterate_dictionary(self):
- dictionary = {"0": 0, "1": 1, "2": 2}
- keys = set(dictionary.keys())
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(dictionary))
- for key in data:
- self.assertIn(key, keys)
- keys.remove(key)
-
- def test_getitem_array(self):
- array = [1, 2, 3]
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(array))
- for i in range(len(array)):
- self.assertEqual(data[i], array[i])
-
- def test_getitem_dictionary(self):
- dictionary = {"one": 1, "two": 2, "three": 3}
- data = lldb.SBStructuredData()
- data.SetFromJSON(json.dumps(dictionary))
- for key in dictionary:
- self.assertEqual(data[key], dictionary[key])