diff --git a/Makefile b/Makefile index b941e439e..e427fb0f1 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ SRCS=CheckBufferOverrun.cpp CheckClass.cpp CheckHeaders.cpp CheckMemoryLeak.cpp CheckOther.cpp CommonCheck.cpp FileLister.cpp preprocessor.cpp tokenize.cpp OBJS=$(SRCS:%.cpp=%.o) -TESTS=testbufferoverrun.o testcharvar.o testconstructors.o testdivision.o testincompletestatement.o testmemleak.o testpreprocessor.o testtokenize.o testunusedvar.o +TESTS=testbufferoverrun.o testcharvar.o testconstructors.o testdivision.o testincompletestatement.o testmemleak.o testpreprocessor.o testtokenize.o testunusedprivfunc.o testunusedvar.o BIN = ${DESTDIR}/usr/bin %.o: %.cpp diff --git a/testunusedprivfunc.cpp b/testunusedprivfunc.cpp new file mode 100644 index 000000000..12d11b6ec --- /dev/null +++ b/testunusedprivfunc.cpp @@ -0,0 +1,74 @@ +/* + * c++check - c/c++ syntax checking + * Copyright (C) 2007 Daniel Marjamäki + * + * 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 + +extern std::ostringstream errout; +extern bool ShowAll; + +class TestUnusedPrivateFunction : public TestFixture +{ +public: + TestUnusedPrivateFunction() : TestFixture("TestUnusedPrivateFunction") + { } + +private: + void run() + { + TEST_CASE( test1 ); + } + + + void check( const char code[] ) + { + // Tokenize.. + tokens = tokens_back = NULL; + std::istringstream istr(code); + TokenizeCode( istr ); + + // Clear the error buffer.. + errout.str(""); + + // Check for unused private functions.. + CheckUnusedPrivateFunctions(); + + DeallocateTokens(); + } + + + + void test1() + { + check( "class Fred\n" + "{\n" + "private:\n" + " unsigned int f()\n" + " { }\n" + "};\n" ); + // Todo: This should be detected. + ASSERT_EQUALS( std::string(""), errout.str() ); + } +}; + +REGISTER_TEST( TestUnusedPrivateFunction ) +