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