[lldb/API] Fix SBStructuredData support any JSON type (#101929)
This patch loosen the parsing requirement to allow parsing not only JSON dictionaries but also valid JSON type (integer, float, string, bool, array, null). Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
This commit is contained in:
committed by
GitHub
parent
04e7eaf91f
commit
585523750e
@@ -110,6 +110,37 @@ class TestStructuredDataAPI(TestBase):
|
||||
self.assertTrue(my_random_class)
|
||||
self.assertEqual(my_random_class.payload, MyRandomClass.payload)
|
||||
|
||||
example = lldb.SBStructuredData()
|
||||
self.assertSuccess(example.SetFromJSON("1"))
|
||||
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeInteger)
|
||||
self.assertEqual(example.GetIntegerValue(), 1)
|
||||
|
||||
self.assertSuccess(example.SetFromJSON("4.19"))
|
||||
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeFloat)
|
||||
self.assertEqual(example.GetFloatValue(), 4.19)
|
||||
|
||||
self.assertSuccess(example.SetFromJSON('"Bonjour, 123!"'))
|
||||
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeString)
|
||||
self.assertEqual(example.GetStringValue(42), "Bonjour, 123!")
|
||||
|
||||
self.assertSuccess(example.SetFromJSON("true"))
|
||||
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeBoolean)
|
||||
self.assertTrue(example.GetBooleanValue())
|
||||
|
||||
self.assertSuccess(example.SetFromJSON("null"))
|
||||
self.assertEqual(example.GetType(), lldb.eStructuredDataTypeNull)
|
||||
|
||||
example_arr = [1, 2.3, "4", {"5": False}]
|
||||
arr_str = json.dumps(example_arr)
|
||||
s.Clear()
|
||||
s.Print(arr_str)
|
||||
self.assertSuccess(example.SetFromJSON(s))
|
||||
|
||||
s.Clear()
|
||||
self.assertSuccess(example.GetAsJSON(s))
|
||||
sb_data = json.loads(s.GetData())
|
||||
self.assertEqual(sb_data, example_arr)
|
||||
|
||||
def invalid_struct_test(self, example):
|
||||
invalid_struct = lldb.SBStructuredData()
|
||||
invalid_struct = example.GetValueForKey("invalid_key")
|
||||
|
||||
Reference in New Issue
Block a user