File indexing completed on 2024-04-21 15:24:20

0001 /*
0002     SPDX-FileCopyrightText: 2012 Miha Čančula <miha@noughmad.eu>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef PHPUNITRUNJOB_H
0008 #define PHPUNITRUNJOB_H
0009 
0010 #include <QProcess>
0011 
0012 #include <outputview/outputjob.h>
0013 #include <interfaces/itestsuite.h>
0014 #include <interfaces/itestcontroller.h>
0015 #include <util/executecompositejob.h>
0016 
0017 class PhpUnitTestSuite;
0018 class KProcess;
0019 
0020 class PhpUnitRunJob : public KJob
0021 {
0022     Q_OBJECT
0023 public:
0024     PhpUnitRunJob(PhpUnitTestSuite* suite, const QStringList& cases, KDevelop::OutputJob::OutputJobVerbosity verbosity, QObject* parent = nullptr);
0025     void start() override;
0026 
0027 protected:
0028     bool doKill() override;
0029 
0030 private slots:
0031     void processFinished(KJob* job);
0032     void rowsInserted(const QModelIndex &parent, int startRow, int endRow);
0033 
0034 private:
0035     KProcess* m_process;
0036     PhpUnitTestSuite* m_suite;
0037     QStringList m_cases;
0038     KDevelop::TestResult m_result;
0039     KJob* m_job;
0040     KDevelop::OutputJob* m_outputJob;
0041     KDevelop::OutputJob::OutputJobVerbosity m_verbosity;
0042 };
0043 
0044 class UnprotectedExecuteCompositeJob : public KDevelop::ExecuteCompositeJob
0045 {
0046     Q_OBJECT
0047 public:
0048     using ExecuteCompositeJob::subjobs;
0049 };
0050 
0051 #endif // PHPUNITRUNJOB_H