File indexing completed on 2025-02-02 14:22:23
0001 /* 0002 SPDX-FileCopyrightText: 2016 Volker Krause <vkrause@kde.org> 0003 SPDX-FileCopyrightText: 2021 Igor Kushnir <igorkuo@gmail.com> 0004 0005 SPDX-License-Identifier: MIT 0006 */ 0007 0008 #include "repository_test_base.h" 0009 #include "test-config.h" 0010 0011 #include <KSyntaxHighlighting/Definition> 0012 #include <KSyntaxHighlighting/Repository> 0013 0014 #include <QTest> 0015 0016 class RepositoryBenchmark : public RepositoryTestBase 0017 { 0018 Q_OBJECT 0019 private Q_SLOTS: 0020 void benchmarkRepositoryLoad() 0021 { 0022 QBENCHMARK { 0023 KSyntaxHighlighting::Repository repo; 0024 initRepositorySearchPaths(repo); 0025 } 0026 } 0027 0028 void benchmarkDefinitionByExtension_data() 0029 { 0030 definitionByExtensionTestData(); 0031 } 0032 0033 void benchmarkDefinitionByExtension() 0034 { 0035 QFETCH(QString, fileName); 0036 QFETCH(QString, definitionName); 0037 0038 // Warm up and check correctness. 0039 definitionByExtensionTest(fileName, definitionName); 0040 if (QTest::currentTestFailed()) 0041 return; 0042 0043 QBENCHMARK { 0044 m_repo.definitionForFileName(fileName); 0045 } 0046 } 0047 0048 void benchmarkDefinitionsForFileName_data() 0049 { 0050 definitionsForFileNameTestData(); 0051 } 0052 0053 void benchmarkDefinitionsForFileName() 0054 { 0055 QFETCH(QString, fileName); 0056 QFETCH(QStringList, definitionNames); 0057 0058 // Warm up and check correctness. 0059 definitionsForFileNameTest(fileName, definitionNames); 0060 if (QTest::currentTestFailed()) 0061 return; 0062 0063 QBENCHMARK { 0064 m_repo.definitionsForFileName(fileName); 0065 } 0066 } 0067 0068 void benchmarkDefinitionForMimeType_data() 0069 { 0070 definitionForMimeTypeTestData(); 0071 } 0072 0073 void benchmarkDefinitionForMimeType() 0074 { 0075 QFETCH(QString, mimeTypeName); 0076 QFETCH(QString, definitionName); 0077 0078 // Warm up and check correctness. 0079 definitionForMimeTypeTest(mimeTypeName, definitionName); 0080 if (QTest::currentTestFailed()) 0081 return; 0082 0083 QBENCHMARK { 0084 m_repo.definitionForMimeType(mimeTypeName); 0085 } 0086 } 0087 0088 void benchmarkDefinitionsForMimeType_data() 0089 { 0090 definitionsForMimeTypeTestData(); 0091 } 0092 0093 void benchmarkDefinitionsForMimeType() 0094 { 0095 QFETCH(QString, mimeTypeName); 0096 QFETCH(QStringList, definitionNames); 0097 0098 // Warm up and check correctness. 0099 definitionsForMimeTypeTest(mimeTypeName, definitionNames); 0100 if (QTest::currentTestFailed()) 0101 return; 0102 0103 QBENCHMARK { 0104 m_repo.definitionsForMimeType(mimeTypeName); 0105 } 0106 } 0107 }; 0108 0109 QTEST_GUILESS_MAIN(RepositoryBenchmark) 0110 0111 #include "repository_benchmark.moc"