xref: /llvm-project/lldb/test/API/commands/thread/select/TestThreadSelect.py (revision 405194257506685ca11848fbaff79c4333c18c3b)
19010cef2SRaphael Isemannimport lldb
29010cef2SRaphael Isemannfrom lldbsuite.test.lldbtest import *
39010cef2SRaphael Isemannfrom lldbsuite.test import lldbutil
49010cef2SRaphael Isemannfrom lldbsuite.test.decorators import *
59010cef2SRaphael Isemann
69010cef2SRaphael Isemann
72238dcc3SJonas Devlieghereclass TestCase(TestBase):
89010cef2SRaphael Isemann    def test_invalid_arg(self):
99010cef2SRaphael Isemann        self.build()
109010cef2SRaphael Isemann
112238dcc3SJonas Devlieghere        lldbutil.run_to_source_breakpoint(
122238dcc3SJonas Devlieghere            self, "// break here", lldb.SBFileSpec("main.cpp")
132238dcc3SJonas Devlieghere        )
149010cef2SRaphael Isemann
152238dcc3SJonas Devlieghere        self.expect(
162238dcc3SJonas Devlieghere            "thread select 0x1ffffffff",
172238dcc3SJonas Devlieghere            error=True,
182238dcc3SJonas Devlieghere            startstr="error: Invalid thread index '0x1ffffffff'",
192238dcc3SJonas Devlieghere        )
20*40519425SMichael Christensen        self.expect(
21*40519425SMichael Christensen            "thread select -t 0x1ffffffff",
22*40519425SMichael Christensen            error=True,
23*40519425SMichael Christensen            startstr="error: Invalid thread ID",
24*40519425SMichael Christensen        )
25*40519425SMichael Christensen        self.expect(
26*40519425SMichael Christensen            "thread select 1 2 3",
27*40519425SMichael Christensen            error=True,
28*40519425SMichael Christensen            startstr="error: 'thread select' takes exactly one thread index argument, or a thread ID option:",
29*40519425SMichael Christensen        )
30*40519425SMichael Christensen        self.expect(
31*40519425SMichael Christensen            "thread select -t 1234 1",
32*40519425SMichael Christensen            error=True,
33*40519425SMichael Christensen            startstr="error: 'thread select' cannot take both a thread ID option and a thread index argument:",
34*40519425SMichael Christensen        )
359010cef2SRaphael Isemann        # Parses but not a valid thread id.
362238dcc3SJonas Devlieghere        self.expect(
372238dcc3SJonas Devlieghere            "thread select 0xffffffff",
382238dcc3SJonas Devlieghere            error=True,
39*40519425SMichael Christensen            startstr="error: Invalid thread index #0xffffffff.",
40*40519425SMichael Christensen        )
41*40519425SMichael Christensen        self.expect(
42*40519425SMichael Christensen            "thread select -t 0xffffffff",
43*40519425SMichael Christensen            error=True,
44*40519425SMichael Christensen            startstr="error: Invalid thread ID",
45*40519425SMichael Christensen        )
46*40519425SMichael Christensen
47*40519425SMichael Christensen    def test_thread_select_tid(self):
48*40519425SMichael Christensen        self.build()
49*40519425SMichael Christensen
50*40519425SMichael Christensen        lldbutil.run_to_source_breakpoint(
51*40519425SMichael Christensen            self, "// break here", lldb.SBFileSpec("main.cpp")
52*40519425SMichael Christensen        )
53*40519425SMichael Christensen        self.runCmd(
54*40519425SMichael Christensen            "thread select -t %d" % self.thread().GetThreadID(),
552238dcc3SJonas Devlieghere        )
56