From 1b8799e7ef968cb16fab855a2d423ed3e1c49e28 Mon Sep 17 00:00:00 2001 From: Reijo Tomperi Date: Fri, 16 Apr 2010 18:28:00 +0300 Subject: [PATCH] Add test cases for --template parsing --- test/testcppcheck.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/test/testcppcheck.cpp b/test/testcppcheck.cpp index b371cf1d2..e75dbf005 100644 --- a/test/testcppcheck.cpp +++ b/test/testcppcheck.cpp @@ -61,6 +61,7 @@ private: TEST_CASE(parseOutputtingArgs); TEST_CASE(parseOutputtingInvalidArgs); TEST_CASE(parseArgsAndCheck); + TEST_CASE(parseArgsAndCheckSettings); } bool argCheck(int argc, const char *argv[]) @@ -84,6 +85,57 @@ private: return result; } + bool argCheckReturnSettings(int argc, const char *argv[], Settings &settings) + { + errout.str(""); + output.str(""); + CppCheck cppCheck(*this); + cppCheck.addFile("file.cpp", "void foo(){}"); + bool result = cppCheck.parseFromArgs(argc, argv); + if (result) + settings = cppCheck.settings(); + + return result; + } + + void parseArgsAndCheckSettings() + { + { + const char *argv[] = {"cppcheck", "--template", "gcc"}; + Settings settings; + ASSERT_EQUALS(true, argCheckReturnSettings(3, argv, settings)); + ASSERT_EQUALS("{file}:{line}: {severity}: {message}", settings._outputFormat); + ASSERT_EQUALS("", errout.str()); + ASSERT_EQUALS("", output.str()); + } + + { + const char *argv[] = {"cppcheck", "--template", "vs"}; + Settings settings; + ASSERT_EQUALS(true, argCheckReturnSettings(3, argv, settings)); + ASSERT_EQUALS("{file}({line}): {severity}: {message}", settings._outputFormat); + ASSERT_EQUALS("", errout.str()); + ASSERT_EQUALS("", output.str()); + } + + { + const char *argv[] = {"cppcheck", "--template", "{file}<->{line}"}; + Settings settings; + ASSERT_EQUALS(true, argCheckReturnSettings(3, argv, settings)); + ASSERT_EQUALS("{file}<->{line}", settings._outputFormat); + ASSERT_EQUALS("", errout.str()); + ASSERT_EQUALS("", output.str()); + } + + { + const char *argv[] = {"cppcheck", "--template"}; + Settings settings; + ASSERT_EQUALS(false, argCheckReturnSettings(2, argv, settings)); + ASSERT_EQUALS("", errout.str()); + ASSERT_EQUALS("cppcheck: argument to '--template' is missing\n", output.str()); + } + } + void parseArgsAndCheck() { {