Removed preprocessor directives from tests that aren't preprocessed before being tokenized.

This commit is contained in:
PKEuS 2012-07-07 11:21:08 -07:00
parent 5262ba16d9
commit 43c060b630
7 changed files with 63 additions and 122 deletions

View File

@ -958,12 +958,11 @@ private:
} }
void array_index_22() { void array_index_22() {
check("#include <cstring>\n" check("int main() {\n"
"int main() {\n"
" size_t indices[2];\n" " size_t indices[2];\n"
" int b = indices[2];\n" " int b = indices[2];\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:4]: (error) Array 'indices[2]' accessed at index 2, which is out of bounds\n", errout.str()); ASSERT_EQUALS("[test.cpp:3]: (error) Array 'indices[2]' accessed at index 2, which is out of bounds\n", errout.str());
} }
void array_index_23() { void array_index_23() {

View File

@ -4786,25 +4786,23 @@ private:
ASSERT_EQUALS("[test.cpp:3]: (style, inconclusive) Technically the member function 'Fred::a' can be const.\n", errout.str()); ASSERT_EQUALS("[test.cpp:3]: (style, inconclusive) Technically the member function 'Fred::a' can be const.\n", errout.str());
// ticket #1593 // ticket #1593
checkConst("#include <vector>\n" checkConst("class A\n"
"class A\n"
"{\n" "{\n"
" std::vector<int> m_v;\n" " std::vector<int> m_v;\n"
"public:\n" "public:\n"
" A(){}\n" " A(){}\n"
" unsigned int GetVecSize() {return m_v.size();}\n" " unsigned int GetVecSize() {return m_v.size();}\n"
"};"); "};");
ASSERT_EQUALS("[test.cpp:7]: (style, inconclusive) Technically the member function 'A::GetVecSize' can be const.\n", errout.str()); ASSERT_EQUALS("[test.cpp:6]: (style, inconclusive) Technically the member function 'A::GetVecSize' can be const.\n", errout.str());
checkConst("#include <vector>\n" checkConst("class A\n"
"class A\n"
"{\n" "{\n"
" std::vector<int> m_v;\n" " std::vector<int> m_v;\n"
"public:\n" "public:\n"
" A(){}\n" " A(){}\n"
" bool GetVecEmpty() {return m_v.empty();}\n" " bool GetVecEmpty() {return m_v.empty();}\n"
"};"); "};");
ASSERT_EQUALS("[test.cpp:7]: (style, inconclusive) Technically the member function 'A::GetVecEmpty' can be const.\n", errout.str()); ASSERT_EQUALS("[test.cpp:6]: (style, inconclusive) Technically the member function 'A::GetVecEmpty' can be const.\n", errout.str());
} }
void constVirtualFunc() { void constVirtualFunc() {

View File

@ -1887,8 +1887,7 @@ private:
} }
void uninitVarStream() { void uninitVarStream() {
check("#include <fstream>\n" check("class Foo\n"
"class Foo\n"
"{\n" "{\n"
"private:\n" "private:\n"
" int foo;\n" " int foo;\n"

View File

@ -2345,8 +2345,7 @@ private:
} }
void trac1132() { void trac1132() {
check("#include <iostream>\n" check("class Lock\n"
"class Lock\n"
"{\n" "{\n"
"public:\n" "public:\n"
" Lock(int i)\n" " Lock(int i)\n"
@ -2365,7 +2364,7 @@ private:
" return 0;\n" " return 0;\n"
"}\n" "}\n"
); );
ASSERT_EQUALS("[test.cpp:16]: (error) Instance of \"Lock\" object destroyed immediately.\n", errout.str()); ASSERT_EQUALS("[test.cpp:15]: (error) Instance of \"Lock\" object destroyed immediately.\n", errout.str());
} }
void trac3693() { void trac3693() {
@ -2449,10 +2448,7 @@ private:
} }
void testMisusedScopeObjectDoesNotPickFunctor() { void testMisusedScopeObjectDoesNotPickFunctor() {
check("\n" check("class IncrementFunctor\n"
"#include <algorithm>\n"
"\n"
"class IncrementFunctor\n"
"{\n" "{\n"
"public:\n" "public:\n"
" void operator()(int &i)\n" " void operator()(int &i)\n"
@ -2545,9 +2541,7 @@ private:
} }
void trac2084() { void trac2084() {
check("#include <signal.h>\n" check("void f()\n"
"\n"
"void f()\n"
"{\n" "{\n"
" struct sigaction sa;\n" " struct sigaction sa;\n"
"\n" "\n"

View File

@ -70,9 +70,7 @@ private:
} }
void testsimple() { void testsimple() {
check("\n" check("int main()\n"
"#include <iostream>\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" unsigned int k(0);\n" " unsigned int k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -88,10 +86,8 @@ private:
"}\n"); "}\n");
ASSERT_EQUALS("", errout.str()); ASSERT_EQUALS("", errout.str());
check("\n" check("class K {};"
"#include <iostream>\n" "int main()\n"
"class K {};"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" K k(0);\n" " K k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -99,30 +95,26 @@ private:
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:7]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:5]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("struct K {};"
"struct K {};"
"void foo()\n" "void foo()\n"
"{\n" "{\n"
" K k(0);\n" " K k(0);\n"
" k++;\n" " k++;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:5]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:4]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("union K {};"
"union K {};"
"void foo()\n" "void foo()\n"
"{\n" "{\n"
" K k(0);\n" " K k(0);\n"
" k++;\n" " k++;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:5]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:4]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("class K {};"
"#include <iostream>\n" "int main()\n"
"class K {};"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" K k(1);\n" " K k(1);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -132,12 +124,10 @@ private:
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:8]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:6]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("class K {};"
"#include <iostream>\n" "int main()\n"
"class K {};"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" K k(1);\n" " K k(1);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -148,13 +138,11 @@ private:
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:10]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:8]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("class K {};"
"#include <iostream>\n" "int main()\n"
"class K {};"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" K k(0);\n" " K k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -162,12 +150,10 @@ private:
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:7]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:5]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("class K {};"
"#include <iostream>\n" "int main()\n"
"class K {};"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" K k(0);\n" " K k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -177,10 +163,8 @@ private:
"}\n"); "}\n");
ASSERT_EQUALS("", errout.str()); ASSERT_EQUALS("", errout.str());
check("\n" check("class K {};"
"#include <iostream>\n" "int main()\n"
"class K {};"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" K k(0);\n" " K k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -193,9 +177,7 @@ private:
} }
void testfor() { void testfor() {
check("\n" check("int main()\n"
"#include <iostream>\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" for ( unsigned int i=0; i <= 10; i++) {\n" " for ( unsigned int i=0; i <= 10; i++) {\n"
" std::cout << i << std::endl;\n" " std::cout << i << std::endl;\n"
@ -204,22 +186,18 @@ private:
"}\n"); "}\n");
ASSERT_EQUALS("", errout.str()); ASSERT_EQUALS("", errout.str());
check("\n" check("class K {};\n"
"#include <iostream>\n" "int main()\n"
"class K {};\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" for ( K i(0); i <= 10; i++) {\n" " for ( K i(0); i <= 10; i++) {\n"
" std::cout << i << std::endl;\n" " std::cout << i << std::endl;\n"
" }\n" " }\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:6]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:4]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("class K {};\n"
"#include <iostream>\n" "int main()\n"
"class K {};\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" for ( K i(0); i <= 10; ++i) {\n" " for ( K i(0); i <= 10; ++i) {\n"
" std::cout << i << std::endl;\n" " std::cout << i << std::endl;\n"
@ -228,21 +206,17 @@ private:
"}\n"); "}\n");
ASSERT_EQUALS("", errout.str()); ASSERT_EQUALS("", errout.str());
check("\n" check("class K {};\n"
"#include <iostream>\n" "int main()\n"
"class K {};\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" for ( K i(10); i > 1; i--) {\n" " for ( K i(10); i > 1; i--) {\n"
" std::cout << i << std::endl;\n" " std::cout << i << std::endl;\n"
" }\n" " }\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:6]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:4]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("class K {};\n"
"#include <iostream>\n"
"class K {};\n"
"int main(int argc, char *argv[])\n" "int main(int argc, char *argv[])\n"
"{\n" "{\n"
" for ( K i=10; i > 1; --i) {\n" " for ( K i=10; i > 1; --i) {\n"
@ -256,9 +230,7 @@ private:
} }
void teststream() { void teststream() {
check("\n" check("int main()\n"
"#include <iostream>\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" int k(0);\n" " int k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -268,22 +240,18 @@ private:
"}\n"); "}\n");
ASSERT_EQUALS("", errout.str()); ASSERT_EQUALS("", errout.str());
check("\n" check("class K {};\n"
"#include <iostream>\n" "int main()\n"
"class K {};\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" K k(0);\n" " K k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
" std::cout << k-- << std::endl;\n" " std::cout << k-- << std::endl;\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:8]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:6]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("class K {};\n"
"#include <iostream>\n" "int main()\n"
"class K {};\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" K k(0);\n" " K k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -295,10 +263,8 @@ private:
} }
void testvolatile() { void testvolatile() {
check("\n" check("class K {};\n"
"#include <iostream>\n" "int main()\n"
"class K {};\n"
"int main(int argc, char *argv[])\n"
"{\n" "{\n"
" volatile K k(0);\n" " volatile K k(0);\n"
" std::cout << k << std::endl;\n" " std::cout << k << std::endl;\n"
@ -307,13 +273,11 @@ private:
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
TODO_ASSERT_EQUALS("", TODO_ASSERT_EQUALS("",
"[test.cpp:8]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); "[test.cpp:6]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
} }
void testiterator() { void testiterator() {
check("\n" check("class Base {};\n"
"#include <vector>\n"
"class Base {};\n"
"int main() {\n" "int main() {\n"
" std::vector<Base*> v;\n" " std::vector<Base*> v;\n"
" v.push_back(new Base());\n" " v.push_back(new Base());\n"
@ -324,12 +288,9 @@ private:
" v.clear();\n" " v.clear();\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:8]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:6]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("int main() {\n"
"#include <iostream>\n"
"#include <vector>\n"
"int main() {\n"
" std::vector<int> v;\n" " std::vector<int> v;\n"
" std::vector<int>::iterator it;\n" " std::vector<int>::iterator it;\n"
" for( int i=0; i < 10; ++i ) v.push_back(i);\n" " for( int i=0; i < 10; ++i ) v.push_back(i);\n"
@ -341,12 +302,9 @@ private:
" }\n" " }\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:12]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:9]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("int main() {\n"
"#include <iostream>\n"
"#include <vector>\n"
"int main() {\n"
" std::vector<int> v;\n" " std::vector<int> v;\n"
" std::vector<int>::const_iterator it;\n" " std::vector<int>::const_iterator it;\n"
" for( int i=0; i < 10; ++i ) v.push_back(i);\n" " for( int i=0; i < 10; ++i ) v.push_back(i);\n"
@ -357,12 +315,9 @@ private:
" }\n" " }\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:11]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:8]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
check("\n" check("int main() {\n"
"#include <iostream>\n"
"#include <vector>\n"
"int main() {\n"
" std::vector<int> v;\n" " std::vector<int> v;\n"
" std::vector<int>::iterator it;\n" " std::vector<int>::iterator it;\n"
" for( int i=0; i < 10; ++i ) v.push_back(i);\n" " for( int i=0; i < 10; ++i ) v.push_back(i);\n"
@ -374,7 +329,7 @@ private:
" }\n" " }\n"
" return 0;\n" " return 0;\n"
"}\n"); "}\n");
ASSERT_EQUALS("[test.cpp:12]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str()); ASSERT_EQUALS("[test.cpp:9]: (performance) Prefer prefix ++/-- operators for non-primitive types.\n", errout.str());
} }

View File

@ -1857,8 +1857,7 @@ private:
"the object. Use operator= instead.\n" "the object. Use operator= instead.\n"
"[test.cpp:9]: (performance) Useless call of function \'substr\' because it returns an empty string.\n", errout.str()); "[test.cpp:9]: (performance) Useless call of function \'substr\' because it returns an empty string.\n", errout.str());
check("#include <string>\n" check("int main()\n"
"int main()\n"
"{\n" "{\n"
" std::string str = \"a1b1\";\n" " std::string str = \"a1b1\";\n"
" return str.find(str[1], 2);\n" " return str.find(str[1], 2);\n"

View File

@ -547,8 +547,7 @@ private:
} }
void testDoesNotIdentifyMethodAsFirstFunctionArgument() { void testDoesNotIdentifyMethodAsFirstFunctionArgument() {
check("#include <iostream>" check("void callback(void (*func)(int), int arg)"
"void callback(void (*func)(int), int arg)"
"{" "{"
" (*func)(arg);" " (*func)(arg);"
"}" "}"
@ -575,8 +574,7 @@ private:
} }
void testDoesNotIdentifyMethodAsMiddleFunctionArgument() { void testDoesNotIdentifyMethodAsMiddleFunctionArgument() {
check("#include <iostream>" check("void callback(char, void (*func)(int), int arg)"
"void callback(char, void (*func)(int), int arg)"
"{" "{"
" (*func)(arg);" " (*func)(arg);"
"}" "}"
@ -603,8 +601,7 @@ private:
} }
void testDoesNotIdentifyMethodAsLastFunctionArgument() { void testDoesNotIdentifyMethodAsLastFunctionArgument() {
check("#include <iostream>" check("void callback(int arg, void (*func)(int))"
"void callback(int arg, void (*func)(int))"
"{" "{"
" (*func)(arg);" " (*func)(arg);"
"}" "}"