From 960e8bb4ea7178e2c192ca4e8bf15951657fd075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20St=C3=B6neberg?= Date: Sun, 8 Oct 2023 11:29:52 +0200 Subject: [PATCH] testrunner: got rid of some redundant preprocessing code / added some missing asserts (#5521) This consolidates the stray invocations of preprocessing. --- Makefile | 28 ++++++++++----------- test/helpers.cpp | 31 +++++++++++++++++++++++ test/helpers.h | 3 +++ test/testastutils.cpp | 5 ++-- test/testbufferoverrun.cpp | 18 +++++--------- test/testclass.cpp | 18 ++++---------- test/testcondition.cpp | 26 +++++++------------- test/testincompletestatement.cpp | 18 +++++--------- test/testleakautovar.cpp | 18 +++++--------- test/testnullpointer.cpp | 18 +++++--------- test/testother.cpp | 22 ++++++----------- test/testsimplifytypedef.cpp | 13 +++------- test/testsimplifyusing.cpp | 12 +++------ test/testsizeof.cpp | 18 +++++--------- test/teststring.cpp | 18 +++++--------- test/testtokenize.cpp | 25 ++++++------------- test/testunusedprivfunc.cpp | 21 +++++----------- test/testunusedvar.cpp | 42 +++++++++----------------------- test/testvalueflow.cpp | 16 +++++------- 19 files changed, 145 insertions(+), 225 deletions(-) diff --git a/Makefile b/Makefile index d6aa7e937..dbd82d5db 100644 --- a/Makefile +++ b/Makefile @@ -709,7 +709,7 @@ test/testbool.o: test/testbool.cpp lib/check.h lib/checkbool.h lib/color.h lib/c test/testboost.o: test/testboost.cpp lib/check.h lib/checkboost.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/testboost.cpp -test/testbufferoverrun.o: test/testbufferoverrun.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkbufferoverrun.h lib/color.h lib/config.h lib/ctu.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 +test/testbufferoverrun.o: test/testbufferoverrun.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkbufferoverrun.h lib/color.h lib/config.h lib/ctu.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testbufferoverrun.cpp 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 @@ -721,7 +721,7 @@ test/testcheck.o: test/testcheck.cpp lib/check.h lib/color.h lib/config.h lib/er 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 -test/testclass.o: test/testclass.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkclass.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/preprocessor.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 +test/testclass.o: test/testclass.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkclass.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/preprocessor.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testclass.cpp test/testcmdlineparser.o: test/testcmdlineparser.cpp cli/cmdlinelogger.h cli/cmdlineparser.h cli/cppcheckexecutor.h 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/templatesimplifier.h lib/timer.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h test/redirect.h @@ -730,7 +730,7 @@ test/testcmdlineparser.o: test/testcmdlineparser.cpp cli/cmdlinelogger.h cli/cmd test/testcolor.o: test/testcolor.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/testcolor.cpp -test/testcondition.o: test/testcondition.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkcondition.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/preprocessor.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 +test/testcondition.o: test/testcondition.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkcondition.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/preprocessor.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testcondition.cpp test/testconstructors.o: test/testconstructors.cpp lib/check.h lib/checkclass.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 @@ -757,7 +757,7 @@ test/testgarbage.o: test/testgarbage.cpp externals/simplecpp/simplecpp.h lib/che test/testimportproject.o: test/testimportproject.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/testimportproject.cpp -test/testincompletestatement.o: test/testincompletestatement.cpp externals/simplecpp/simplecpp.h 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 +test/testincompletestatement.o: test/testincompletestatement.cpp externals/simplecpp/simplecpp.h 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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testincompletestatement.cpp test/testinternal.o: test/testinternal.cpp lib/check.h lib/checkinternal.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 @@ -766,7 +766,7 @@ test/testinternal.o: test/testinternal.cpp lib/check.h lib/checkinternal.h lib/c test/testio.o: test/testio.cpp lib/check.h lib/checkio.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/testio.cpp -test/testleakautovar.o: test/testleakautovar.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkleakautovar.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 +test/testleakautovar.o: test/testleakautovar.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkleakautovar.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testleakautovar.cpp test/testlibrary.o: test/testlibrary.cpp externals/tinyxml2/tinyxml2.h 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/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h @@ -778,13 +778,13 @@ test/testmathlib.o: test/testmathlib.cpp lib/check.h lib/color.h lib/config.h li test/testmemleak.o: test/testmemleak.cpp lib/check.h lib/checkmemoryleak.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/testmemleak.cpp -test/testnullpointer.o: test/testnullpointer.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checknullpointer.h lib/color.h lib/config.h lib/ctu.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 +test/testnullpointer.o: test/testnullpointer.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checknullpointer.h lib/color.h lib/config.h lib/ctu.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testnullpointer.cpp test/testoptions.o: test/testoptions.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 test/options.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testoptions.cpp -test/testother.o: test/testother.cpp externals/simplecpp/simplecpp.h 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/preprocessor.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 +test/testother.o: test/testother.cpp externals/simplecpp/simplecpp.h 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/preprocessor.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testother.cpp test/testpath.o: test/testpath.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/path.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 test/helpers.h @@ -814,22 +814,22 @@ test/testsimplifytemplate.o: test/testsimplifytemplate.cpp lib/check.h lib/color test/testsimplifytokens.o: test/testsimplifytokens.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/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/testsimplifytokens.cpp -test/testsimplifytypedef.o: test/testsimplifytypedef.cpp externals/simplecpp/simplecpp.h 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/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h +test/testsimplifytypedef.o: test/testsimplifytypedef.cpp externals/simplecpp/simplecpp.h 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/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsimplifytypedef.cpp -test/testsimplifyusing.o: test/testsimplifyusing.cpp externals/simplecpp/simplecpp.h 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/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h +test/testsimplifyusing.o: test/testsimplifyusing.cpp externals/simplecpp/simplecpp.h 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/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsimplifyusing.cpp test/testsingleexecutor.o: test/testsingleexecutor.cpp cli/executor.h cli/singleexecutor.h lib/analyzerinfo.h lib/check.h lib/color.h lib/config.h lib/cppcheck.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/timer.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h test/redirect.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsingleexecutor.cpp -test/testsizeof.o: test/testsizeof.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checksizeof.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 +test/testsizeof.o: test/testsizeof.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checksizeof.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testsizeof.cpp test/teststl.o: test/teststl.cpp lib/check.h lib/checkstl.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/teststl.cpp -test/teststring.o: test/teststring.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkstring.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 +test/teststring.o: test/teststring.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkstring.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/teststring.cpp test/testsummaries.o: test/testsummaries.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/summaries.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 @@ -868,10 +868,10 @@ test/testuninitvar.o: test/testuninitvar.cpp lib/check.h lib/checkuninitvar.h li test/testunusedfunctions.o: test/testunusedfunctions.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkunusedfunctions.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/preprocessor.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testunusedfunctions.cpp -test/testunusedprivfunc.o: test/testunusedprivfunc.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkclass.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 +test/testunusedprivfunc.o: test/testunusedprivfunc.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkclass.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testunusedprivfunc.cpp -test/testunusedvar.o: test/testunusedvar.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkunusedvar.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/preprocessor.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 +test/testunusedvar.o: test/testunusedvar.cpp externals/simplecpp/simplecpp.h lib/check.h lib/checkunusedvar.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/preprocessor.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 test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testunusedvar.cpp test/testutils.o: test/testutils.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 @@ -880,7 +880,7 @@ test/testutils.o: test/testutils.cpp lib/check.h lib/color.h lib/config.h lib/er test/testvaarg.o: test/testvaarg.cpp lib/check.h lib/checkvaarg.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/testvaarg.cpp -test/testvalueflow.o: test/testvalueflow.cpp externals/simplecpp/simplecpp.h 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/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h +test/testvalueflow.o: test/testvalueflow.cpp externals/simplecpp/simplecpp.h 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/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h test/helpers.h $(CXX) ${INCLUDE_FOR_TEST} $(CPPFLAGS) $(CXXFLAGS) -c -o $@ test/testvalueflow.cpp test/testvarid.o: test/testvarid.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/templatesimplifier.h lib/token.h lib/tokenize.h lib/tokenlist.h lib/utils.h lib/vfvalue.h test/fixture.h diff --git a/test/helpers.cpp b/test/helpers.cpp index 2e1e42c0a..8834870d7 100644 --- a/test/helpers.cpp +++ b/test/helpers.cpp @@ -137,3 +137,34 @@ std::string PreprocessorHelper::getcode(Preprocessor &preprocessor, const std::s return ret; } + +void PreprocessorHelper::preprocess(const char code[], std::vector &files, Tokenizer& tokenizer) +{ + // Raw Tokens.. + std::istringstream istr(code); + const simplecpp::TokenList tokens1(istr, files, files[0]); + + // Preprocess.. + simplecpp::TokenList tokens2(files); + std::map filedata; + simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + + // Tokenizer.. + tokenizer.createTokens(std::move(tokens2)); +} + +void PreprocessorHelper::preprocess(Preprocessor &preprocessor, const char code[], std::vector &files, Tokenizer& tokenizer) +{ + std::istringstream istr(code); + const simplecpp::TokenList tokens1(istr, files, files[0]); + + // Preprocess.. + simplecpp::TokenList tokens2(files); + std::map filedata; + simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + + // Tokenizer.. + tokenizer.createTokens(std::move(tokens2)); + + preprocessor.setDirectives(tokens1); +} diff --git a/test/helpers.h b/test/helpers.h index cdca26f90..36f53c357 100644 --- a/test/helpers.h +++ b/test/helpers.h @@ -90,6 +90,9 @@ public: * @param inlineSuppression the inline suppressions */ static std::string getcode(Preprocessor &preprocessor, const std::string &filedata, const std::string &cfg, const std::string &filename, Suppressions *inlineSuppression = nullptr); + + static void preprocess(const char code[], std::vector &files, Tokenizer& tokenizer); + static void preprocess(Preprocessor &preprocessor, const char code[], std::vector &files, Tokenizer& tokenizer); }; namespace cppcheck { diff --git a/test/testastutils.cpp b/test/testastutils.cpp index 7046c2fc5..50a6aa36a 100644 --- a/test/testastutils.cpp +++ b/test/testastutils.cpp @@ -173,14 +173,13 @@ private: ASSERT_EQUALS(true, isReturnScope("void positiveTokenOffset() { return; }", 7)); } -#define isSameExpression(code, tokStr1, tokStr2) isSameExpression_(code, tokStr1, tokStr2, __FILE__, __LINE__) - bool isSameExpression_(const char code[], const char tokStr1[], const char tokStr2[], const char* file, int line) { +#define isSameExpression(...) isSameExpression_(__FILE__, __LINE__, __VA_ARGS__) + bool isSameExpression_(const char* file, int line, const char code[], const char tokStr1[], const char tokStr2[]) { const Settings settings; Library library; Tokenizer tokenizer(&settings, this); std::istringstream istr(code); ASSERT_LOC(tokenizer.tokenize(istr, "test.cpp"), file, line); - tokenizer.simplifyTokens1(""); const Token * const tok1 = Token::findsimplematch(tokenizer.tokens(), tokStr1, strlen(tokStr1)); const Token * const tok2 = Token::findsimplematch(tok1->next(), tokStr2, strlen(tokStr2)); return (isSameExpression)(false, false, tok1, tok2, library, false, true, nullptr); diff --git a/test/testbufferoverrun.cpp b/test/testbufferoverrun.cpp index 30f985f97..d4d03dc0f 100644 --- a/test/testbufferoverrun.cpp +++ b/test/testbufferoverrun.cpp @@ -21,6 +21,7 @@ #include "checkbufferoverrun.h" #include "ctu.h" #include "errortypes.h" +#include "helpers.h" #include "standards.h" #include "platform.h" #include "settings.h" @@ -71,7 +72,8 @@ private: runChecks(tokenizer, this); } - void checkP(const char code[], const char* filename = "test.cpp") +#define checkP(...) checkP_(__FILE__, __LINE__, __VA_ARGS__) + void checkP_(const char* file, int line, const char code[], const char* filename = "test.cpp") { // Clear the error buffer.. errout.str(""); @@ -79,20 +81,12 @@ private: const Settings settings = settingsBuilder(settings0).severity(Severity::performance) .c(Standards::CLatest).cpp(Standards::CPPLatest).certainty(Certainty::inconclusive).build(); - // Raw tokens.. std::vector files(1, filename); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&settings, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenizer.. - Tokenizer tokenizer(&settings, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check for buffer overruns.. runChecks(tokenizer, this); diff --git a/test/testclass.cpp b/test/testclass.cpp index 8ee7462b6..1f3962c40 100644 --- a/test/testclass.cpp +++ b/test/testclass.cpp @@ -19,6 +19,7 @@ #include "check.h" #include "checkclass.h" #include "errortypes.h" +#include "helpers.h" #include "preprocessor.h" #include "settings.h" #include "fixture.h" @@ -8409,26 +8410,17 @@ private: ASSERT_EQUALS("", errout.str()); } - #define checkUselessOverride(code) checkUselessOverride_(code, __FILE__, __LINE__) - void checkUselessOverride_(const char code[], const char* file, int line) { + #define checkUselessOverride(...) checkUselessOverride_(__FILE__, __LINE__, __VA_ARGS__) + void checkUselessOverride_(const char* file, int line, const char code[]) { // Clear the error log errout.str(""); const Settings settings = settingsBuilder().severity(Severity::style).build(); - // Raw tokens.. std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); - - // Tokenize.. Tokenizer tokenizer(&settings, this); - tokenizer.createTokens(std::move(tokens2)); + PreprocessorHelper::preprocess(code, files, tokenizer); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check.. diff --git a/test/testcondition.cpp b/test/testcondition.cpp index ae9dfdb7a..888bc29cb 100644 --- a/test/testcondition.cpp +++ b/test/testcondition.cpp @@ -18,6 +18,7 @@ #include "checkcondition.h" #include "errortypes.h" +#include "helpers.h" #include "library.h" #include "platform.h" #include "preprocessor.h" @@ -127,35 +128,26 @@ private: TEST_CASE(knownConditionIncrementLoop); // #9808 } - void check(const char code[], const Settings &settings, const char* filename = "test.cpp") { +#define check(...) check_(__FILE__, __LINE__, __VA_ARGS__) + void check_(const char* file, int line, const char code[], const Settings &settings, const char* filename = "test.cpp") { // Clear the error buffer.. errout.str(""); - // Raw tokens.. - std::vector files(1, filename); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); - Preprocessor preprocessor(settings); - preprocessor.setDirectives(tokens1); + std::vector files(1, filename); + Tokenizer tokenizer(&settings, this, &preprocessor); + PreprocessorHelper::preprocess(preprocessor, code, files, tokenizer); // Tokenizer.. - Tokenizer tokenizer(&settings, this, &preprocessor); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Run checks.. runChecks(tokenizer, this); } - void check(const char code[], const char* filename = "test.cpp", bool inconclusive = false) { + void check_(const char* file, int line, const char code[], const char* filename = "test.cpp", bool inconclusive = false) { const Settings settings = settingsBuilder(settings0).certainty(Certainty::inconclusive, inconclusive).build(); - check(code, settings, filename); + check_(file, line, code, settings, filename); } void assignAndCompare() { diff --git a/test/testincompletestatement.cpp b/test/testincompletestatement.cpp index c1b50772b..51cf3702c 100644 --- a/test/testincompletestatement.cpp +++ b/test/testincompletestatement.cpp @@ -18,6 +18,7 @@ #include "checkother.h" #include "errortypes.h" +#include "helpers.h" #include "settings.h" #include "fixture.h" #include "tokenize.h" @@ -37,26 +38,19 @@ public: private: const Settings settings = settingsBuilder().severity(Severity::warning).build(); - void check(const char code[], bool inconclusive = false) { +#define check(...) check_(__FILE__, __LINE__, __VA_ARGS__) + void check_(const char* file, int line, const char code[], bool inconclusive = false) { // Clear the error buffer.. errout.str(""); const Settings settings1 = settingsBuilder(settings).certainty(Certainty::inconclusive, inconclusive).build(); - // Raw tokens.. std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&settings1, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenize.. - Tokenizer tokenizer(&settings1, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check for incomplete statements.. CheckOther checkOther(&tokenizer, &settings1, this); diff --git a/test/testleakautovar.cpp b/test/testleakautovar.cpp index b07ca4fbf..167a7bf95 100644 --- a/test/testleakautovar.cpp +++ b/test/testleakautovar.cpp @@ -19,6 +19,7 @@ #include "checkleakautovar.h" #include "errortypes.h" +#include "helpers.h" #include "library.h" #include "settings.h" #include "fixture.h" @@ -2837,24 +2838,17 @@ public: private: const Settings settings = settingsBuilder().library("std.cfg").checkLibrary().build(); - void checkP(const char code[], bool cpp = false) { +#define checkP(...) checkP_(__FILE__, __LINE__, __VA_ARGS__) + void checkP_(const char* file, int line, const char code[], bool cpp = false) { // Clear the error buffer.. errout.str(""); - // Raw tokens.. std::vector files(1, cpp?"test.cpp":"test.c"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&settings, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenizer.. - Tokenizer tokenizer(&settings, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check for leaks.. runChecks(tokenizer, this); diff --git a/test/testnullpointer.cpp b/test/testnullpointer.cpp index 2c116825e..f6e886c62 100644 --- a/test/testnullpointer.cpp +++ b/test/testnullpointer.cpp @@ -20,6 +20,7 @@ #include "checknullpointer.h" #include "ctu.h" #include "errortypes.h" +#include "helpers.h" #include "library.h" #include "settings.h" #include "fixture.h" @@ -192,26 +193,19 @@ private: runChecks(tokenizer, this); } - void checkP(const char code[]) { +#define checkP(...) checkP_(__FILE__, __LINE__, __VA_ARGS__) + void checkP_(const char* file, int line, const char code[]) { // Clear the error buffer.. errout.str(""); const Settings settings1 = settingsBuilder(settings).certainty(Certainty::inconclusive, false).build(); - // Raw tokens.. std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&settings1, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenizer.. - Tokenizer tokenizer(&settings1, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check for null pointer dereferences.. runChecks(tokenizer, this); diff --git a/test/testother.cpp b/test/testother.cpp index 31802bb12..1802800bb 100644 --- a/test/testother.cpp +++ b/test/testother.cpp @@ -18,6 +18,7 @@ #include "checkother.h" #include "errortypes.h" +#include "helpers.h" #include "library.h" #include "platform.h" #include "preprocessor.h" @@ -330,7 +331,8 @@ private: check_(file, line, code, "test.cpp", true, true, false, s); } - void checkP(const char code[], const char *filename = "test.cpp") { +#define checkP(...) checkP_(__FILE__, __LINE__, __VA_ARGS__) + void checkP_(const char* file, int line, const char code[], const char *filename = "test.cpp") { // Clear the error buffer.. errout.str(""); @@ -343,23 +345,13 @@ private: settings->standards.cpp = Standards::CPPLatest; settings->certainty.enable(Certainty::inconclusive); - // Raw tokens.. - std::vector files(1, filename); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); - Preprocessor preprocessor(*settings); - preprocessor.setDirectives(tokens1); + std::vector files(1, filename); + Tokenizer tokenizer(settings, this, &preprocessor); + PreprocessorHelper::preprocess(preprocessor, code, files, tokenizer); // Tokenizer.. - Tokenizer tokenizer(settings, this, &preprocessor); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check.. runChecks(tokenizer, this); diff --git a/test/testsimplifytypedef.cpp b/test/testsimplifytypedef.cpp index efc9f0b44..6d65d2d34 100644 --- a/test/testsimplifytypedef.cpp +++ b/test/testsimplifytypedef.cpp @@ -18,6 +18,7 @@ #include "errortypes.h" +#include "helpers.h" #include "platform.h" #include "settings.h" #include "fixture.h" @@ -263,19 +264,11 @@ private: // Clear the error buffer.. errout.str(""); - // Raw tokens.. std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&settings0, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenize.. - Tokenizer tokenizer(&settings0, this); - tokenizer.createTokens(std::move(tokens2)); tokenizer.createLinks(); tokenizer.simplifyTypedef(); diff --git a/test/testsimplifyusing.cpp b/test/testsimplifyusing.cpp index 33d3cb7bb..f4d3e6363 100644 --- a/test/testsimplifyusing.cpp +++ b/test/testsimplifyusing.cpp @@ -18,6 +18,7 @@ #include "errortypes.h" +#include "helpers.h" #include "platform.h" #include "settings.h" #include "fixture.h" @@ -106,15 +107,8 @@ private: Tokenizer tokenizer(&settings, this); if (preprocess) { - std::vector files{ "test.cpp" }; - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); - - tokenizer.createTokens(std::move(tokens2)); + std::vector files(1, "test.cpp"); + PreprocessorHelper::preprocess(code, files, tokenizer); } std::istringstream istr(code); diff --git a/test/testsizeof.cpp b/test/testsizeof.cpp index e35c0d153..e71ff8d5d 100644 --- a/test/testsizeof.cpp +++ b/test/testsizeof.cpp @@ -18,6 +18,7 @@ #include "checksizeof.h" #include "errortypes.h" +#include "helpers.h" #include "settings.h" #include "fixture.h" #include "tokenize.h" @@ -65,24 +66,17 @@ private: runChecks(tokenizer, this); } - void checkP(const char code[]) { +#define checkP(...) checkP_(__FILE__, __LINE__, __VA_ARGS__) + void checkP_(const char* file, int line, const char code[]) { // Clear the error buffer.. errout.str(""); - // Raw tokens.. std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&settings, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenize.. - Tokenizer tokenizer(&settings, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check... runChecks(tokenizer, this); diff --git a/test/teststring.cpp b/test/teststring.cpp index 0ef106007..57a8232d2 100644 --- a/test/teststring.cpp +++ b/test/teststring.cpp @@ -19,6 +19,7 @@ #include "checkstring.h" #include "errortypes.h" +#include "helpers.h" #include "settings.h" #include "fixture.h" #include "tokenize.h" @@ -62,24 +63,17 @@ private: TEST_CASE(deadStrcmp); } - void check(const char code[], const char filename[] = "test.cpp") { +#define check(...) check_(__FILE__, __LINE__, __VA_ARGS__) + void check_(const char* file, int line, const char code[], const char filename[] = "test.cpp") { // Clear the error buffer.. errout.str(""); - // Raw tokens.. std::vector files(1, filename); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&settings, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenize.. - Tokenizer tokenizer(&settings, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check char variable usage.. runChecks(tokenizer, this); diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 3ac55383a..e235a0b76 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -7595,29 +7595,20 @@ private: } } - std::string checkHeaders(const char code[], bool checkHeadersFlag) { +#define checkHdrs(...) checkHdrs_(__FILE__, __LINE__, __VA_ARGS__) + std::string checkHdrs_(const char* file, int line, const char code[], bool checkHeadersFlag) { // Clear the error buffer.. errout.str(""); const Settings settings = settingsBuilder().checkHeaders(checkHeadersFlag).build(); - // Raw tokens.. - std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); - Preprocessor preprocessor(settings0); - preprocessor.setDirectives(tokens1); + std::vector files(1, "test.cpp"); + Tokenizer tokenizer(&settings, this); + PreprocessorHelper::preprocess(preprocessor, code, files, tokenizer); // Tokenizer.. - Tokenizer tokenizer(&settings, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); return tokenizer.tokens()->stringifyList(); } @@ -7638,14 +7629,14 @@ private: "4: void g ( int x ) ;\n" "5: } ;\n" "4: void A :: g ( int x ) { a = 2 ; }\n", - checkHeaders(code, true)); + checkHdrs(code, true)); ASSERT_EQUALS("\n\n##file 1\n\n" "1:\n" "|\n" "4:\n" "5: ;\n", - checkHeaders(code, false)); + checkHdrs(code, false)); } void removeExtraTemplateKeywords() { diff --git a/test/testunusedprivfunc.cpp b/test/testunusedprivfunc.cpp index d3b56339f..8ecdc804f 100644 --- a/test/testunusedprivfunc.cpp +++ b/test/testunusedprivfunc.cpp @@ -18,6 +18,7 @@ #include "checkclass.h" #include "errortypes.h" +#include "helpers.h" #include "platform.h" #include "settings.h" #include "fixture.h" @@ -89,35 +90,25 @@ private: TEST_CASE(maybeUnused); } - - void check(const char code[], cppcheck::Platform::Type platform = cppcheck::Platform::Type::Native) { +#define check(...) check_(__FILE__, __LINE__, __VA_ARGS__) + void check_(const char* file, int line, const char code[], cppcheck::Platform::Type platform = cppcheck::Platform::Type::Native) { // Clear the error buffer.. errout.str(""); const Settings settings1 = settingsBuilder(settings).platform(platform).build(); - // Raw tokens.. std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&settings1, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenize.. - Tokenizer tokenizer(&settings1, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check for unused private functions.. CheckClass checkClass(&tokenizer, &settings1, this); checkClass.privateFunctions(); } - - void test1() { check("class Fred\n" "{\n" diff --git a/test/testunusedvar.cpp b/test/testunusedvar.cpp index ff6110afc..81ba99a54 100644 --- a/test/testunusedvar.cpp +++ b/test/testunusedvar.cpp @@ -18,6 +18,7 @@ #include "checkunusedvar.h" #include "errortypes.h" +#include "helpers.h" #include "preprocessor.h" #include "settings.h" #include "fixture.h" @@ -277,55 +278,36 @@ private: (checkUnusedVar.checkStructMemberUsage)(); } - void checkStructMemberUsageP(const char code[]) { +#define checkStructMemberUsageP(...) checkStructMemberUsageP_(__FILE__, __LINE__, __VA_ARGS__) + void checkStructMemberUsageP_(const char* file, int line, const char code[]) { // Clear the error buffer.. errout.str(""); - // Raw tokens.. std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); - Preprocessor preprocessor(settings); - preprocessor.setDirectives(tokens1); + Tokenizer tokenizer(&settings, this, &preprocessor); + PreprocessorHelper::preprocess(preprocessor, code, files, tokenizer); // Tokenizer.. - Tokenizer tokenizer(&settings, this, &preprocessor); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check for unused variables.. CheckUnusedVar checkUnusedVar(&tokenizer, &settings, this); (checkUnusedVar.checkStructMemberUsage)(); } - - void checkFunctionVariableUsageP(const char code[], const char* filename = "test.cpp") { +#define checkFunctionVariableUsageP(...) checkFunctionVariableUsageP_(__FILE__, __LINE__, __VA_ARGS__) + void checkFunctionVariableUsageP_(const char* file, int line, const char code[], const char* filename = "test.cpp") { // Clear the error buffer.. errout.str(""); - // Raw tokens.. - std::vector files(1, filename); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - // Preprocess.. - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); - Preprocessor preprocessor(settings); - preprocessor.setDirectives(tokens1); + std::vector files(1, filename); + Tokenizer tokenizer(&settings, this, &preprocessor); + PreprocessorHelper::preprocess(preprocessor, code, files, tokenizer); // Tokenizer.. - Tokenizer tokenizer(&settings, this, &preprocessor); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); // Check for unused variables.. CheckUnusedVar checkUnusedVar(&tokenizer, &settings, this); diff --git a/test/testvalueflow.cpp b/test/testvalueflow.cpp index b0ad19d3d..a718c97f3 100644 --- a/test/testvalueflow.cpp +++ b/test/testvalueflow.cpp @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +#include "helpers.h" #include "library.h" #include "mathlib.h" #include "platform.h" @@ -486,22 +487,17 @@ private: return false; } - void bailout(const char code[]) { +#define bailout(...) bailout_(__FILE__, __LINE__, __VA_ARGS__) + void bailout_(const char* file, int line, const char code[]) { const Settings s = settingsBuilder().debugwarnings().build(); errout.str(""); std::vector files(1, "test.cpp"); - std::istringstream istr(code); - const simplecpp::TokenList tokens1(istr, files, files[0]); - - simplecpp::TokenList tokens2(files); - std::map filedata; - simplecpp::preprocess(tokens2, tokens1, files, filedata, simplecpp::DUI()); + Tokenizer tokenizer(&s, this); + PreprocessorHelper::preprocess(code, files, tokenizer); // Tokenize.. - Tokenizer tokenizer(&s, this); - tokenizer.createTokens(std::move(tokens2)); - tokenizer.simplifyTokens1(""); + ASSERT_LOC(tokenizer.simplifyTokens1(""), file, line); } #define tokenValues(...) tokenValues_(__FILE__, __LINE__, __VA_ARGS__)