File indexing completed on 2024-05-12 04:40:08
0001 /* 0002 SPDX-FileCopyrightText: 2016 Aetf <aetf@unlimitedcodeworks.xyz> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef LLDBTEST_H 0008 #define LLDBTEST_H 0009 0010 #include <QObject> 0011 0012 class IExecutePlugin; 0013 0014 namespace KDevelop { 0015 class BreakpointModel; 0016 class TestCore; 0017 class Variable; 0018 class VariableCollection; 0019 } 0020 0021 namespace KDevMI { namespace LLDB { 0022 0023 class LldbTest : public QObject 0024 { 0025 Q_OBJECT 0026 private Q_SLOTS: 0027 void initTestCase(); 0028 void cleanupTestCase(); 0029 0030 void init(); 0031 void cleanup(); 0032 0033 void testStdout(); 0034 void testEnvironmentSet(); 0035 0036 void testBreakpoint(); 0037 void testBreakOnStart(); 0038 void testDisableBreakpoint(); 0039 void testChangeLocationBreakpoint(); 0040 void testDeleteBreakpoint(); 0041 void testPendingBreakpoint(); 0042 void testUpdateBreakpoint(); 0043 void testIgnoreHitsBreakpoint(); 0044 void testConditionBreakpoint(); 0045 void testBreakOnWriteBreakpoint(); 0046 void testBreakOnWriteWithConditionBreakpoint(); 0047 void testBreakOnReadBreakpoint(); 0048 void testBreakOnReadBreakpoint2(); 0049 void testBreakOnAccessBreakpoint(); 0050 void testInsertBreakpointWhileRunning(); 0051 void testInsertBreakpointWhileRunningMultiple(); 0052 void testInsertBreakpointFunctionName(); 0053 void testManualBreakpoint(); 0054 void testInsertAndRemoveBreakpointWhileRunning(); 0055 void testPickupManuallyInsertedBreakpoint(); 0056 void testPickupManuallyInsertedBreakpointOnlyOnce(); 0057 void testBreakpointWithSpaceInPath(); 0058 void testBreakpointDisabledOnStart(); 0059 void testMultipleLocationsBreakpoint(); 0060 void testMultipleBreakpoint(); 0061 void testRegularExpressionBreakpoint(); 0062 void testChangeBreakpointWhileRunning(); 0063 0064 void testCatchpoint(); 0065 0066 void testShowStepInSource(); 0067 0068 void testStack(); 0069 void testStackFetchMore(); 0070 void testStackDeactivateAndActive(); 0071 void testStackSwitchThread(); 0072 0073 void testAttach(); 0074 void testRemoteDebugging(); 0075 0076 void testCoreFile(); 0077 0078 void testVariablesLocals(); 0079 void testVariablesLocalsStruct(); 0080 void testVariablesWatches(); 0081 void testVariablesWatchesQuotes(); 0082 void testVariablesWatchesTwoSessions(); 0083 void testVariablesStopDebugger(); 0084 void testVariablesStartSecondSession(); 0085 void testVariablesSwitchFrame(); 0086 void testVariablesQuicklySwitchFrame(); 0087 void testSwitchFrameLldbConsole(); 0088 0089 void testSegfaultDebugee(); 0090 0091 void testCommandOrderFastStepping(); 0092 0093 void testRunLldbScript(); 0094 0095 void testBug301287(); 0096 0097 void testDebugInExternalTerminal(); 0098 0099 void testSpecialPath(); 0100 0101 void testEnvironmentCd(); 0102 0103 private: 0104 // convenient access methods 0105 KDevelop::BreakpointModel *breakpoints(); 0106 0107 KDevelop::VariableCollection *variableCollection(); 0108 KDevelop::Variable *watchVariableAt(int i); 0109 QModelIndex localVariableIndexAt(int i, int col = 0); 0110 0111 private: 0112 KDevelop::TestCore *m_core; 0113 IExecutePlugin *m_iface; 0114 0115 QString m_debugeeFileName; 0116 }; 0117 0118 } // end of namespace LLDB 0119 } // end of namespace KDevMI 0120 0121 #endif // LLDBTEST_H