File indexing completed on 2024-05-12 04:39:14
0001 /* 0002 SPDX-FileCopyrightText: 2016 Milian Wolff <mail@milianw.de> 0003 0004 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include "bench_duchain.h" 0008 0009 #include <QLoggingCategory> 0010 #include <QTest> 0011 0012 #include <tests/autotestshell.h> 0013 #include <tests/testcore.h> 0014 #include <tests/testfile.h> 0015 #include <language/duchain/duchainlock.h> 0016 #include <language/duchain/duchain.h> 0017 0018 using namespace KDevelop; 0019 0020 BenchDUChain::BenchDUChain() 0021 { 0022 } 0023 0024 BenchDUChain::~BenchDUChain() 0025 { 0026 } 0027 0028 void BenchDUChain::initTestCase() 0029 { 0030 QLoggingCategory::setFilterRules(QStringLiteral("*.debug=false\ndefault.debug=true\nkdevelop.plugins.clang.debug=true\n")); 0031 QVERIFY(qputenv("KDEV_CLANG_DISPLAY_DIAGS", "1")); 0032 0033 AutoTestShell::init({QStringLiteral("kdevclangsupport")}); 0034 TestCore::initialize(Core::NoUi); 0035 } 0036 0037 void BenchDUChain::cleanupTestCase() 0038 { 0039 TestCore::shutdown(); 0040 } 0041 0042 void BenchDUChain::benchDUChainBuilder() 0043 { 0044 QBENCHMARK_ONCE { 0045 TestFile file( 0046 "#include <vector>\n" 0047 "#include <map>\n" 0048 "#include <set>\n" 0049 "#include <algorithm>\n" 0050 "#include <functional>\n" 0051 "#include <limits>\n" 0052 "#include <bitset>\n" 0053 "#include <iostream>\n" 0054 "#include <string>\n" 0055 "#include <mutex>\n", QStringLiteral("cpp")); 0056 file.parse(TopDUContext::AllDeclarationsContextsAndUses); 0057 QVERIFY(file.waitForParsed(60000)); 0058 0059 DUChainReadLocker lock; 0060 auto top = file.topContext(); 0061 QVERIFY(top); 0062 } 0063 } 0064 0065 QTEST_MAIN(BenchDUChain) 0066 0067 #include "moc_bench_duchain.cpp"