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