From e9663873e520a7bccded78d01c6207cfdc825af1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Tue, 17 Feb 2015 15:52:45 +0100 Subject: [PATCH] TestOther: refactoring library testing --- test/testother.cpp | 84 +++++++++++++++++++++++++++++----------------- 1 file changed, 53 insertions(+), 31 deletions(-) diff --git a/test/testother.cpp b/test/testother.cpp index aae7e4457..fef5266a0 100644 --- a/test/testother.cpp +++ b/test/testother.cpp @@ -33,11 +33,7 @@ public: } private: - Settings settings_std; - void run() { - LOAD_LIB_2(settings_std.library, "std.cfg"); - TEST_CASE(emptyBrackets); TEST_CASE(zeroDiv1); @@ -167,7 +163,7 @@ private: TEST_CASE(integerOverflow); // #5895 - TEST_CASE(testReturnIgnoredReturnValue); + TEST_CASE(checkIgnoredReturnValue); TEST_CASE(redundantPointerOp); } @@ -4200,6 +4196,19 @@ private: } void duplicateExpression3() { + Settings settings; + const char xmldata[] = "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + ""; + tinyxml2::XMLDocument doc; + doc.Parse(xmldata, sizeof(xmldata)); + settings.library.load(doc); + check("void foo() {\n" " if (x() || x()) {}\n" "}"); @@ -4246,8 +4255,8 @@ private: ASSERT_EQUALS("", errout.str()); check("void foo() {\n" - " if ((strcmp(a, b) == 0) || (strcmp(a, b) == 0)) {}\n" - "}", "test.cpp", false, false, true, &settings_std, false); + " if ((mystrcmp(a, b) == 0) || (mystrcmp(a, b) == 0)) {}\n" + "}", "test.cpp", false, false, true, &settings, false); ASSERT_EQUALS("[test.cpp:2] -> [test.cpp:2]: (style) Same expression on both sides of '||'.\n", errout.str()); check("void GetValue() { return rand(); }\n" @@ -5914,54 +5923,67 @@ private: ASSERT_EQUALS("", errout.str()); } - void testReturnIgnoredReturnValue() { - check("void foo() {\n" - " strcmp(a, b);\n" - "}", "test.cpp", false, false, true, &settings_std); - ASSERT_EQUALS("[test.cpp:2]: (warning) Return value of function strcmp() is not used.\n", errout.str()); + void checkIgnoredReturnValue() { + Settings settings; + const char xmldata[] = "\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + ""; + tinyxml2::XMLDocument doc; + doc.Parse(xmldata, sizeof(xmldata)); + settings.library.load(doc); - check("bool strcmp(char* a, char* b);\n" // cppcheck sees a custom strcmp definition, but it returns a value. Assume it is the one specified in the library. + check("void foo() {\n" + " mystrcmp(a, b);\n" + "}", "test.cpp", false, false, true, &settings); + ASSERT_EQUALS("[test.cpp:2]: (warning) Return value of function mystrcmp() is not used.\n", errout.str()); + + check("bool mystrcmp(char* a, char* b);\n" // cppcheck sees a custom strcmp definition, but it returns a value. Assume it is the one specified in the library. "void foo() {\n" - " strcmp(a, b);\n" - "}", "test.cpp", false, false, true, &settings_std); - ASSERT_EQUALS("[test.cpp:3]: (warning) Return value of function strcmp() is not used.\n", errout.str()); + " mystrcmp(a, b);\n" + "}", "test.cpp", false, false, true, &settings); + ASSERT_EQUALS("[test.cpp:3]: (warning) Return value of function mystrcmp() is not used.\n", errout.str()); - check("void strcmp(char* a, char* b);\n" // cppcheck sees a custom strcmp definition which returns void! + check("void mystrcmp(char* a, char* b);\n" // cppcheck sees a custom strcmp definition which returns void! "void foo() {\n" - " strcmp(a, b);\n" - "}", "test.cpp", false, false, true, &settings_std); + " mystrcmp(a, b);\n" + "}", "test.cpp", false, false, true, &settings); ASSERT_EQUALS("", errout.str()); check("void foo() {\n" - " class strcmp { strcmp() {} };\n" // strcmp is a constructor definition here - "}", "test.cpp", false, false, true, &settings_std); + " class mystrcmp { mystrcmp() {} };\n" // strcmp is a constructor definition here + "}", "test.cpp", false, false, true, &settings); ASSERT_EQUALS("", errout.str()); check("void foo() {\n" - " return strcmp(a, b);\n" - "}", "test.cpp", false, false, true, &settings_std); + " return mystrcmp(a, b);\n" + "}", "test.cpp", false, false, true, &settings); ASSERT_EQUALS("", errout.str()); check("void foo() {\n" - " if(strcmp(a, b));\n" - "}", "test.cpp", false, false, true, &settings_std); + " if(mystrcmp(a, b));\n" + "}", "test.cpp", false, false, true, &settings); ASSERT_EQUALS("", errout.str()); check("void foo() {\n" - " bool b = strcmp(a, b);\n" - "}", "test.cpp", false, false, true, &settings_std); + " bool b = mystrcmp(a, b);\n" + "}", "test.cpp", false, false, true, &settings); ASSERT_EQUALS("", errout.str()); // #6194 check("void foo() {\n" - " std::ofstream log(logfile.c_str(), std::ios::out);\n" - "}", "test.cpp", false, false, true, &settings_std); + " MyStrCmp mystrcmp(x, y);\n" + "}", "test.cpp", false, false, true, &settings); ASSERT_EQUALS("", errout.str()); // #6197 check("void foo() {\n" - " DebugLog::getInstance().log(systemInfo.getSystemInfo());\n" - "}", "test.cpp", false, false, true, &settings_std); + " abc::def.mystrcmp(a,b);\n" + "}", "test.cpp", false, false, true, &settings); ASSERT_EQUALS("", errout.str()); // #6233