199451b44SJordan Rupprechtimport lldb
299451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
399451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
499451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
599451b44SJordan Rupprecht
699451b44SJordan Rupprechtclass TestOrderedSet(TestBase):
799451b44SJordan Rupprecht
899451b44SJordan Rupprecht  def test_ordered_set(self):
999451b44SJordan Rupprecht    self.build()
10*9d5e95d0SJonas Devlieghere    self.run_tests()
11*9d5e95d0SJonas Devlieghere
12*9d5e95d0SJonas Devlieghere  @skipUnlessDarwin
13*9d5e95d0SJonas Devlieghere  def test_ordered_set_no_const(self):
14*9d5e95d0SJonas Devlieghere    disable_constant_classes = {
15*9d5e95d0SJonas Devlieghere        'CC':
16*9d5e95d0SJonas Devlieghere        'xcrun clang',  # FIXME: Remove when flags are available upstream.
17*9d5e95d0SJonas Devlieghere        'CFLAGS_EXTRAS':
18*9d5e95d0SJonas Devlieghere        '-fno-constant-nsnumber-literals ' +
19*9d5e95d0SJonas Devlieghere        '-fno-constant-nsarray-literals ' +
20*9d5e95d0SJonas Devlieghere        '-fno-constant-nsdictionary-literals'
21*9d5e95d0SJonas Devlieghere    }
22*9d5e95d0SJonas Devlieghere    self.build(dictionary=disable_constant_classes)
23*9d5e95d0SJonas Devlieghere    self.run_tests()
24*9d5e95d0SJonas Devlieghere
25*9d5e95d0SJonas Devlieghere  def run_tests(self):
2699451b44SJordan Rupprecht    src_file = "main.m"
2799451b44SJordan Rupprecht    src_file_spec = lldb.SBFileSpec(src_file)
2899451b44SJordan Rupprecht    (target, process, thread, main_breakpoint) = lldbutil.run_to_source_breakpoint(self,
2999451b44SJordan Rupprecht          "break here", src_file_spec, exe_name = "a.out")
3099451b44SJordan Rupprecht    frame = thread.GetSelectedFrame()
3199451b44SJordan Rupprecht    self.expect("expr -d run -- orderedSet", substrs=["3 elements"])
3299451b44SJordan Rupprecht    self.expect("expr -d run -- *orderedSet", substrs=["(int)1", "(int)2", "(int)3"])
33