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