diff --git a/Makefile b/Makefile
index fe2665a77..946755da0 100644
--- a/Makefile
+++ b/Makefile
@@ -278,6 +278,7 @@ TESTOBJ = test/fixture.o \
test/testboost.o \
test/testbufferoverrun.o \
test/testcharvar.o \
+ test/testcheck.o \
test/testclangimport.o \
test/testclass.o \
test/testcmdlineparser.o \
@@ -706,6 +707,9 @@ test/testbufferoverrun.o: test/testbufferoverrun.cpp externals/simplecpp/simplec
test/testcharvar.o: test/testcharvar.cpp lib/check.h lib/checkother.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcharvar.cpp
+test/testcheck.o: test/testcheck.cpp lib/check.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/standards.h lib/suppressions.h lib/utils.h test/fixture.h
+ $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcheck.cpp
+
test/testclangimport.o: test/testclangimport.cpp lib/check.h lib/clangimport.h lib/color.h lib/config.h lib/errorlogger.h lib/errortypes.h lib/importproject.h lib/library.h lib/mathlib.h lib/platform.h lib/settings.h lib/sourcelocation.h lib/standards.h lib/suppressions.h lib/symboldatabase.h lib/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h
$(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testclangimport.cpp
diff --git a/test/testcheck.cpp b/test/testcheck.cpp
new file mode 100644
index 000000000..8e5707124
--- /dev/null
+++ b/test/testcheck.cpp
@@ -0,0 +1,53 @@
+/*
+ * Cppcheck - A tool for static C/C++ code analysis
+ * Copyright (C) 2007-2023 Cppcheck team.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "check.h"
+#include "fixture.h"
+
+class TestCheck : public TestFixture {
+public:
+ TestCheck() : TestFixture("TestCheck") {}
+
+private:
+ void run() override {
+ TEST_CASE(instancesSorted);
+ TEST_CASE(classInfoFormat);
+ }
+
+ void instancesSorted() const {
+ for (std::list::const_iterator i = Check::instances().cbegin(); i != Check::instances().cend(); ++i) {
+ std::list::const_iterator j = i;
+ ++j;
+ if (j != Check::instances().cend()) {
+ ASSERT_EQUALS(true, (*i)->name() < (*j)->name());
+ }
+ }
+ }
+
+ void classInfoFormat() const {
+ for (std::list::const_iterator i = Check::instances().cbegin(); i != Check::instances().cend(); ++i) {
+ const std::string info = (*i)->classInfo();
+ if (!info.empty()) {
+ ASSERT('\n' != info[0]); // No \n in the beginning
+ ASSERT('\n' == info.back()); // \n at end
+ if (info.size() > 1)
+ ASSERT('\n' != info[info.length()-2]); // Only one \n at end
+ }
+ }
+ }
+};
diff --git a/test/testcppcheck.cpp b/test/testcppcheck.cpp
index 08b1adcbd..60726a425 100644
--- a/test/testcppcheck.cpp
+++ b/test/testcppcheck.cpp
@@ -16,7 +16,6 @@
* along with this program. If not, see .
*/
-#include "check.h"
#include "color.h"
#include "cppcheck.h"
#include "errorlogger.h"
@@ -45,33 +44,9 @@ private:
};
void run() override {
- TEST_CASE(instancesSorted);
- TEST_CASE(classInfoFormat);
TEST_CASE(getErrorMessages);
}
- void instancesSorted() const {
- for (std::list::const_iterator i = Check::instances().cbegin(); i != Check::instances().cend(); ++i) {
- std::list::const_iterator j = i;
- ++j;
- if (j != Check::instances().cend()) {
- ASSERT_EQUALS(true, (*i)->name() < (*j)->name());
- }
- }
- }
-
- void classInfoFormat() const {
- for (std::list::const_iterator i = Check::instances().cbegin(); i != Check::instances().cend(); ++i) {
- const std::string info = (*i)->classInfo();
- if (!info.empty()) {
- ASSERT('\n' != info[0]); // No \n in the beginning
- ASSERT('\n' == info.back()); // \n at end
- if (info.size() > 1)
- ASSERT('\n' != info[info.length()-2]); // Only one \n at end
- }
- }
- }
-
void getErrorMessages() const {
ErrorLogger2 errorLogger;
CppCheck::getErrorMessages(errorLogger);
diff --git a/test/testrunner.vcxproj b/test/testrunner.vcxproj
index 799035206..b0ed00c2f 100755
--- a/test/testrunner.vcxproj
+++ b/test/testrunner.vcxproj
@@ -72,6 +72,7 @@
+