aboutsummaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py')
-rw-r--r--packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py210
1 files changed, 119 insertions, 91 deletions
diff --git a/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py b/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
index 6fcdc37465db..dd97a9ab5977 100644
--- a/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
+++ b/packages/Python/lldbsuite/test/functionalities/data-formatter/data-formatter-stl/libcxx/list/TestDataFormatterLibcxxList.py
@@ -5,13 +5,15 @@ Test lldb data formatter subsystem.
from __future__ import print_function
-
-import os, time, re
+import os
+import time
+import re
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
+
class LibcxxListDataFormatterTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
@@ -21,31 +23,38 @@ class LibcxxListDataFormatterTestCase(TestBase):
TestBase.setUp(self)
# Find the line number to break at.
self.line = line_number('main.cpp', '// Set break point at this line.')
- self.line2 = line_number('main.cpp', '// Set second break point at this line.')
- self.line3 = line_number('main.cpp', '// Set third break point at this line.')
- self.line4 = line_number('main.cpp', '// Set fourth break point at this line.')
+ self.line2 = line_number('main.cpp',
+ '// Set second break point at this line.')
+ self.line3 = line_number('main.cpp',
+ '// Set third break point at this line.')
+ self.line4 = line_number('main.cpp',
+ '// Set fourth break point at this line.')
@skipIf(compiler="gcc")
- @skipIfWindows # libc++ not ported to Windows yet
- @expectedFailureAll(oslist=["macosx"], bugnumber="rdar://25499635")
+ @skipIfWindows # libc++ not ported to Windows yet
def test_with_run_command(self):
"""Test that that file and class static variables display correctly."""
self.build()
self.runCmd("file a.out", CURRENT_EXECUTABLE_SET)
-
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line, num_expected_locations=-1)
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line2, num_expected_locations=-1)
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line3, num_expected_locations=-1)
- lldbutil.run_break_set_by_file_and_line (self, "main.cpp", self.line4, num_expected_locations=-1)
+
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.cpp", self.line, num_expected_locations=-1)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.cpp", self.line2, num_expected_locations=-1)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.cpp", self.line3, num_expected_locations=-1)
+ lldbutil.run_break_set_by_file_and_line(
+ self, "main.cpp", self.line4, num_expected_locations=-1)
self.runCmd("run", RUN_SUCCEEDED)
- lldbutil.skip_if_library_missing(self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
+ lldbutil.skip_if_library_missing(
+ self, self.target(), lldbutil.PrintableRegex("libc\+\+"))
# The stop reason of the thread should be breakpoint.
self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped',
- 'stop reason = breakpoint'])
+ substrs=['stopped',
+ 'stop reason = breakpoint'])
# This is the function to remove the custom formats in order to have a
# clean slate for the next test case.
@@ -54,135 +63,154 @@ class LibcxxListDataFormatterTestCase(TestBase):
self.runCmd('type summary clear', check=False)
self.runCmd('type filter clear', check=False)
self.runCmd('type synth clear', check=False)
- self.runCmd("settings set target.max-children-count 256", check=False)
+ self.runCmd(
+ "settings set target.max-children-count 256",
+ check=False)
# Execute the cleanup function during test case tear down.
self.addTearDownHook(cleanup)
self.runCmd("frame variable numbers_list --show-types")
- self.runCmd("type summary add std::int_list std::string_list int_list string_list --summary-string \"list has ${svar%#} items\" -e")
+ self.runCmd(
+ "type summary add std::int_list std::string_list int_list string_list --summary-string \"list has ${svar%#} items\" -e")
self.runCmd("type format add -f hex int")
self.expect("frame variable numbers_list --raw", matching=False,
- substrs = ['list has 0 items',
- '{}'])
+ substrs=['list has 0 items',
+ '{}'])
self.expect("frame variable numbers_list",
- substrs = ['list has 0 items',
- '{}'])
+ substrs=['list has 0 items',
+ '{}'])
self.expect("p numbers_list",
- substrs = ['list has 0 items',
- '{}'])
+ substrs=['list has 0 items',
+ '{}'])
self.runCmd("n")
self.expect("frame variable numbers_list",
- substrs = ['list has 1 items',
- '[0] = ',
- '0x12345678'])
+ substrs=['list has 1 items',
+ '[0] = ',
+ '0x12345678'])
- self.runCmd("n");self.runCmd("n");self.runCmd("n");
+ self.runCmd("n")
+ self.runCmd("n")
+ self.runCmd("n")
self.expect("frame variable numbers_list",
- substrs = ['list has 4 items',
- '[0] = ',
- '0x12345678',
- '[1] =',
- '0x11223344',
- '[2] =',
- '0xbeeffeed',
- '[3] =',
- '0x00abba00'])
-
- self.runCmd("n");self.runCmd("n");
+ substrs=['list has 4 items',
+ '[0] = ',
+ '0x12345678',
+ '[1] =',
+ '0x11223344',
+ '[2] =',
+ '0xbeeffeed',
+ '[3] =',
+ '0x00abba00'])
+
+ self.runCmd("n")
+ self.runCmd("n")
self.expect("frame variable numbers_list",
- substrs = ['list has 6 items',
- '[0] = ',
- '0x12345678',
- '0x11223344',
- '0xbeeffeed',
- '0x00abba00',
- '[4] =',
- '0x0abcdef0',
- '[5] =',
- '0x0cab0cab'])
+ substrs=['list has 6 items',
+ '[0] = ',
+ '0x12345678',
+ '0x11223344',
+ '0xbeeffeed',
+ '0x00abba00',
+ '[4] =',
+ '0x0abcdef0',
+ '[5] =',
+ '0x0cab0cab'])
self.expect("p numbers_list",
- substrs = ['list has 6 items',
- '[0] = ',
- '0x12345678',
- '0x11223344',
- '0xbeeffeed',
- '0x00abba00',
- '[4] =',
- '0x0abcdef0',
- '[5] =',
- '0x0cab0cab'])
+ substrs=['list has 6 items',
+ '[0] = ',
+ '0x12345678',
+ '0x11223344',
+ '0xbeeffeed',
+ '0x00abba00',
+ '[4] =',
+ '0x0abcdef0',
+ '[5] =',
+ '0x0cab0cab'])
# check access-by-index
self.expect("frame variable numbers_list[0]",
- substrs = ['0x12345678']);
+ substrs=['0x12345678'])
self.expect("frame variable numbers_list[1]",
- substrs = ['0x11223344']);
+ substrs=['0x11223344'])
self.runCmd("n")
-
+
self.expect("frame variable numbers_list",
- substrs = ['list has 0 items',
- '{}'])
+ substrs=['list has 0 items',
+ '{}'])
+
+ self.runCmd("n")
+ self.runCmd("n")
+ self.runCmd("n")
+ self.runCmd("n")
- self.runCmd("n");self.runCmd("n");self.runCmd("n");self.runCmd("n");
-
self.expect("frame variable numbers_list",
- substrs = ['list has 4 items',
- '[0] = ', '1',
- '[1] = ', '2',
- '[2] = ', '3',
- '[3] = ', '4'])
+ substrs=['list has 4 items',
+ '[0] = ', '1',
+ '[1] = ', '2',
+ '[2] = ', '3',
+ '[3] = ', '4'])
# check that MightHaveChildren() gets it right
- self.assertTrue(self.frame().FindVariable("numbers_list").MightHaveChildren(), "numbers_list.MightHaveChildren() says False for non empty!")
+ self.assertTrue(
+ self.frame().FindVariable("numbers_list").MightHaveChildren(),
+ "numbers_list.MightHaveChildren() says False for non empty!")
self.runCmd("type format delete int")
self.runCmd("c")
self.expect("frame variable text_list",
- substrs = ['list has 3 items',
- '[0]', 'goofy',
- '[1]', 'is',
- '[2]', 'smart'])
+ substrs=['list has 3 items',
+ '[0]', 'goofy',
+ '[1]', 'is',
+ '[2]', 'smart'])
# check that MightHaveChildren() gets it right
- self.assertTrue(self.frame().FindVariable("text_list").MightHaveChildren(), "text_list.MightHaveChildren() says False for non empty!")
+ self.assertTrue(
+ self.frame().FindVariable("text_list").MightHaveChildren(),
+ "text_list.MightHaveChildren() says False for non empty!")
self.expect("p text_list",
- substrs = ['list has 3 items',
- '\"goofy\"',
- '\"is\"',
- '\"smart\"'])
-
+ substrs=['list has 3 items',
+ '\"goofy\"',
+ '\"is\"',
+ '\"smart\"'])
+
self.runCmd("n")
# check access-by-index
self.expect("frame variable text_list[0]",
- substrs = ['goofy']);
+ substrs=['goofy'])
self.expect("frame variable text_list[3]",
- substrs = ['!!!']);
-
+ substrs=['!!!'])
+
self.runCmd("continue")
-
+
# check that the list provider correctly updates if elements move
countingList = self.frame().FindVariable("countingList")
countingList.SetPreferDynamicValue(True)
countingList.SetPreferSyntheticValue(True)
-
- self.assertTrue(countingList.GetChildAtIndex(0).GetValueAsUnsigned(0) == 3141, "list[0] == 3141")
- self.assertTrue(countingList.GetChildAtIndex(1).GetValueAsUnsigned(0) == 3141, "list[1] == 3141")
-
+
+ self.assertTrue(countingList.GetChildAtIndex(
+ 0).GetValueAsUnsigned(0) == 3141, "list[0] == 3141")
+ self.assertTrue(countingList.GetChildAtIndex(
+ 1).GetValueAsUnsigned(0) == 3141, "list[1] == 3141")
+
self.runCmd("continue")
- self.assertTrue(countingList.GetChildAtIndex(0).GetValueAsUnsigned(0) == 3141, "uniqued list[0] == 3141")
- self.assertTrue(countingList.GetChildAtIndex(1).GetValueAsUnsigned(0) == 3142, "uniqued list[1] == 3142")
+ self.assertTrue(
+ countingList.GetChildAtIndex(0).GetValueAsUnsigned(0) == 3141,
+ "uniqued list[0] == 3141")
+ self.assertTrue(
+ countingList.GetChildAtIndex(1).GetValueAsUnsigned(0) == 3142,
+ "uniqued list[1] == 3142")