File indexing completed on 2024-05-12 04:38:19
0001 /* 0002 SPDX-FileCopyrightText: 2021 Igor Kushnir <igorkuo@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "bench_languagecontroller.h" 0008 0009 #include <ilanguagecontroller.h> 0010 #include <language/interfaces/ilanguagesupport.h> 0011 0012 #include <QString> 0013 #include <QTest> 0014 #include <QUrl> 0015 0016 void BenchLanguageController::benchLanguagesForUrlNoCache() 0017 { 0018 benchmarkLanguagesForUrl(); 0019 } 0020 0021 void BenchLanguageController::benchLanguagesForUrlNoCache_data() 0022 { 0023 matchingLanguagesForUrlTestData(); 0024 } 0025 0026 void BenchLanguageController::benchLanguagesForUrlFilledCache() 0027 { 0028 fillLanguageControllerMimeTypeCache(); 0029 benchmarkLanguagesForUrl(); 0030 } 0031 0032 void BenchLanguageController::benchLanguagesForUrlFilledCache_data() 0033 { 0034 matchingLanguagesForUrlTestData(); 0035 } 0036 0037 void BenchLanguageController::benchLanguagesForUrlNoMatchNoCache() 0038 { 0039 benchmarkLanguagesForUrlNoMatch(); 0040 } 0041 0042 void BenchLanguageController::benchLanguagesForUrlNoMatchNoCache_data() 0043 { 0044 nonmatchingLanguagesForUrlTestData(); 0045 } 0046 0047 void BenchLanguageController::benchLanguagesForUrlNoMatchFilledCache() 0048 { 0049 fillLanguageControllerMimeTypeCache(); 0050 benchmarkLanguagesForUrlNoMatch(); 0051 } 0052 0053 void BenchLanguageController::benchLanguagesForUrlNoMatchFilledCache_data() 0054 { 0055 nonmatchingLanguagesForUrlTestData(); 0056 } 0057 0058 void BenchLanguageController::benchmarkLanguagesForUrl() 0059 { 0060 QFETCH(QUrl, url); 0061 QFETCH(QString, languageName); 0062 0063 // Warm up and check correctness. 0064 const auto languages = m_subject->languagesForUrl(url); 0065 QCOMPARE(languages.size(), 1); 0066 QCOMPARE(languages.back()->name(), languageName); 0067 0068 QBENCHMARK { 0069 m_subject->languagesForUrl(url); 0070 } 0071 } 0072 0073 void BenchLanguageController::benchmarkLanguagesForUrlNoMatch() 0074 { 0075 QFETCH(QUrl, url); 0076 0077 // Warm up and check correctness. 0078 const auto languages = m_subject->languagesForUrl(url); 0079 QCOMPARE(languages.size(), 0); 0080 0081 QBENCHMARK { 0082 m_subject->languagesForUrl(url); 0083 } 0084 } 0085 0086 QTEST_MAIN(BenchLanguageController) 0087 0088 #include "moc_bench_languagecontroller.cpp"