1 /* 2 SPDX-FileCopyrightText: 2014 Benjamin Kaiser <benjaminjkaiser@gmail.com> 3 4 SPDX-License-Identifier: MIT 5 */ 6 7 #ifndef PY_DUCHAINBENCH_H 8 #define PY_DUCHAINBENCH_H 9 10 #include <QObject> 11 #include <QTemporaryDir> 12 #include "ast.h" 13 #include <serialization/indexedstring.h> 14 #include <language/duchain/topducontext.h> 15 #include <tests/testfile.h> 16 17 namespace KDevelop { 18 class TopDUContext; 19 class ReferencedTopDUContext; 20 } 21 22 using namespace KDevelop; 23 24 class DUChainBench : public QObject 25 { 26 Q_OBJECT 27 public: 28 explicit DUChainBench(QObject* parent = nullptr); 29 void initShell(); 30 ~DUChainBench() override; 31 32 KDevelop::ReferencedTopDUContext parse(const QString& code); 33 34 Python::CodeAst::Ptr m_ast; 35 36 private slots: 37 void benchSimpleStatements(); 38 void benchSimpleStatements_data(); 39 40 private: 41 QList<KDevelop::TestFile*> createdFiles; 42 QDir testDir; 43 QTemporaryDir testDirOwner; 44 }; 45 46 #endif // DUCHAINBENCH_H 47