xref: /llvm-project/lldb/test/API/commands/session/history/TestSessionHistory.py (revision 2238dcc39358353cac21df75c3c3286ab20b8f53)
185fbb08fSMed Ismail Bennani"""
285fbb08fSMed Ismail BennaniTest the session history command
385fbb08fSMed Ismail Bennani"""
485fbb08fSMed Ismail Bennani
585fbb08fSMed Ismail Bennani
685fbb08fSMed Ismail Bennaniimport lldb
785fbb08fSMed Ismail Bennanifrom lldbsuite.test.decorators import *
885fbb08fSMed Ismail Bennanifrom lldbsuite.test.lldbtest import *
985fbb08fSMed Ismail Bennanifrom lldbsuite.test import lldbutil
1085fbb08fSMed Ismail Bennani
1185fbb08fSMed Ismail Bennani
1285fbb08fSMed Ismail Bennaniclass SessionHistoryTestCase(TestBase):
1385fbb08fSMed Ismail Bennani    @no_debug_info_test
1485fbb08fSMed Ismail Bennani    def test_history(self):
15*2238dcc3SJonas Devlieghere        self.runCmd("session history --clear", inHistory=False)
16*2238dcc3SJonas Devlieghere        self.runCmd("breakpoint list", check=False, inHistory=True)  # 0
17*2238dcc3SJonas Devlieghere        self.runCmd("register read", check=False, inHistory=True)  # 1
18*2238dcc3SJonas Devlieghere        self.runCmd("apropos hello", check=False, inHistory=True)  # 2
19*2238dcc3SJonas Devlieghere        self.runCmd("memory write", check=False, inHistory=True)  # 3
20*2238dcc3SJonas Devlieghere        self.runCmd("log list", check=False, inHistory=True)  # 4
21*2238dcc3SJonas Devlieghere        self.runCmd("disassemble", check=False, inHistory=True)  # 5
22*2238dcc3SJonas Devlieghere        self.runCmd("expression 1", check=False, inHistory=True)  # 6
23*2238dcc3SJonas Devlieghere        self.runCmd("type summary list -w default", check=False, inHistory=True)  # 7
24*2238dcc3SJonas Devlieghere        self.runCmd("version", check=False, inHistory=True)  # 8
25*2238dcc3SJonas Devlieghere        self.runCmd("frame select 1", check=False, inHistory=True)  # 9
2685fbb08fSMed Ismail Bennani
2785fbb08fSMed Ismail Bennani        self.expect(
2885fbb08fSMed Ismail Bennani            "session history -s 3 -c 3",
2985fbb08fSMed Ismail Bennani            inHistory=True,
30*2238dcc3SJonas Devlieghere            substrs=["3: memory write", "4: log list", "5: disassemble"],
31*2238dcc3SJonas Devlieghere        )
3285fbb08fSMed Ismail Bennani
33*2238dcc3SJonas Devlieghere        self.expect(
34*2238dcc3SJonas Devlieghere            "session history -s 3 -e 3", inHistory=True, substrs=["3: memory write"]
35*2238dcc3SJonas Devlieghere        )
3685fbb08fSMed Ismail Bennani
3785fbb08fSMed Ismail Bennani        self.expect(
3885fbb08fSMed Ismail Bennani            "session history -s 6 -e 7",
3985fbb08fSMed Ismail Bennani            inHistory=True,
40*2238dcc3SJonas Devlieghere            substrs=["6: expression 1", "7: type summary list -w default"],
41*2238dcc3SJonas Devlieghere        )
4285fbb08fSMed Ismail Bennani
43*2238dcc3SJonas Devlieghere        self.expect(
44*2238dcc3SJonas Devlieghere            "session history -c 2",
45*2238dcc3SJonas Devlieghere            inHistory=True,
46*2238dcc3SJonas Devlieghere            substrs=["0: breakpoint list", "1: register read"],
47*2238dcc3SJonas Devlieghere        )
4885fbb08fSMed Ismail Bennani
49*2238dcc3SJonas Devlieghere        self.expect(
50*2238dcc3SJonas Devlieghere            "session history -e 3 -c 1", inHistory=True, substrs=["3: memory write"]
51*2238dcc3SJonas Devlieghere        )
5285fbb08fSMed Ismail Bennani
5385fbb08fSMed Ismail Bennani        self.expect(
5485fbb08fSMed Ismail Bennani            "session history -e 2",
5585fbb08fSMed Ismail Bennani            inHistory=True,
56*2238dcc3SJonas Devlieghere            substrs=["0: breakpoint list", "1: register read", "2: apropos hello"],
57*2238dcc3SJonas Devlieghere        )
5885fbb08fSMed Ismail Bennani
5985fbb08fSMed Ismail Bennani        self.expect(
6085fbb08fSMed Ismail Bennani            "session history -s 12",
6185fbb08fSMed Ismail Bennani            inHistory=True,
6285fbb08fSMed Ismail Bennani            substrs=[
63*2238dcc3SJonas Devlieghere                "12: session history -s 6 -e 7",
64*2238dcc3SJonas Devlieghere                "13: session history -c 2",
65*2238dcc3SJonas Devlieghere                "14: session history -e 3 -c 1",
66*2238dcc3SJonas Devlieghere                "15: session history -e 2",
67*2238dcc3SJonas Devlieghere                "16: session history -s 12",
68*2238dcc3SJonas Devlieghere            ],
69*2238dcc3SJonas Devlieghere        )
7085fbb08fSMed Ismail Bennani
7185fbb08fSMed Ismail Bennani        self.expect(
7285fbb08fSMed Ismail Bennani            "session history -s end -c 3",
7385fbb08fSMed Ismail Bennani            inHistory=True,
7485fbb08fSMed Ismail Bennani            substrs=[
75*2238dcc3SJonas Devlieghere                "15: session history -e 2",
76*2238dcc3SJonas Devlieghere                "16: session history -s 12",
77*2238dcc3SJonas Devlieghere                "17: session history -s end -c 3",
78*2238dcc3SJonas Devlieghere            ],
79*2238dcc3SJonas Devlieghere        )
8085fbb08fSMed Ismail Bennani
8185fbb08fSMed Ismail Bennani        self.expect(
8285fbb08fSMed Ismail Bennani            "session history -s end -e 15",
8385fbb08fSMed Ismail Bennani            inHistory=True,
8485fbb08fSMed Ismail Bennani            substrs=[
85*2238dcc3SJonas Devlieghere                "15: session history -e 2",
86*2238dcc3SJonas Devlieghere                "16: session history -s 12",
87*2238dcc3SJonas Devlieghere                "17: session history -s end -c 3",
88*2238dcc3SJonas Devlieghere                "session history -s end -e 15",
89*2238dcc3SJonas Devlieghere            ],
90*2238dcc3SJonas Devlieghere        )
9185fbb08fSMed Ismail Bennani
92*2238dcc3SJonas Devlieghere        self.expect(
93*2238dcc3SJonas Devlieghere            "session history -s 5 -c 1", inHistory=True, substrs=["5: disassemble"]
94*2238dcc3SJonas Devlieghere        )
9585fbb08fSMed Ismail Bennani
96*2238dcc3SJonas Devlieghere        self.expect(
97*2238dcc3SJonas Devlieghere            "session history -c 1 -s 5", inHistory=True, substrs=["5: disassemble"]
98*2238dcc3SJonas Devlieghere        )
9985fbb08fSMed Ismail Bennani
100*2238dcc3SJonas Devlieghere        self.expect(
101*2238dcc3SJonas Devlieghere            "session history -c 1 -e 3", inHistory=True, substrs=["3: memory write"]
102*2238dcc3SJonas Devlieghere        )
10385fbb08fSMed Ismail Bennani
10485fbb08fSMed Ismail Bennani        self.expect(
10585fbb08fSMed Ismail Bennani            "session history -c 1 -e 3 -s 5",
10685fbb08fSMed Ismail Bennani            error=True,
10785fbb08fSMed Ismail Bennani            inHistory=True,
108*2238dcc3SJonas Devlieghere            substrs=[
109*2238dcc3SJonas Devlieghere                "error: --count, --start-index and --end-index cannot be all specified in the same invocation"
110*2238dcc3SJonas Devlieghere            ],
111*2238dcc3SJonas Devlieghere        )
112