mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-26 11:52:54 +00:00
159 lines
3.9 KiB
C++
159 lines
3.9 KiB
C++
/* This file is part of KDevelop
|
|
|
|
Copyright 2007-2009 David Nolden <david.nolden.kdevelop@art-master.de>
|
|
Copyright 2011 Milian Wolff <mail@milianw.de>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License version 2 as published by the Free Software Foundation.
|
|
|
|
This library 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
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef TEST_PARSER_H
|
|
#define TEST_PARSER_H
|
|
|
|
#include <QObject>
|
|
|
|
#include "control.h"
|
|
#include "dumptree.h"
|
|
|
|
class pool;
|
|
|
|
class TestParser : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
TestParser();
|
|
|
|
private slots:
|
|
void initTestCase();
|
|
void cleanupTestCase();
|
|
void testSymbolTable();
|
|
void testTokenTable();
|
|
void testParser();
|
|
void testTemplateArguments();
|
|
void testTemplatedDTor();
|
|
void testManyComparisons();
|
|
void testParserFail();
|
|
void testPartialParseFail();
|
|
void testParseMethod();
|
|
void testForStatements();
|
|
void testIfStatements();
|
|
|
|
void testComments();
|
|
void testComments2();
|
|
void testComments3();
|
|
void testComments4();
|
|
void testComments5();
|
|
void testComments6();
|
|
void testComments7();
|
|
|
|
void testEscapedNewline();
|
|
void testEscapedNewline_data();
|
|
|
|
void testPreprocessor();
|
|
void testPreprocessorStringify();
|
|
void testStringConcatenation();
|
|
void testEmptyInclude();
|
|
|
|
void testCondition();
|
|
void testNonTemplateDeclaration();
|
|
void testInitListTrailingComma();
|
|
void testAsmVolatile();
|
|
void testIncrIdentifier();
|
|
void testParseFile();
|
|
|
|
void testQProperty_data();
|
|
void testQProperty();
|
|
|
|
void testCommentAfterFunctionCall();
|
|
void testPtrToMemberAst();
|
|
void testSwitchStatement();
|
|
|
|
void testNamedOperators_data();
|
|
void testNamedOperators();
|
|
void testOperators_data();
|
|
void testOperators();
|
|
|
|
void testTypeID_data();
|
|
void testTypeID();
|
|
|
|
void testRegister();
|
|
void inlineTemplate();
|
|
|
|
void testMultiByteCStrings();
|
|
void testMultiByteComments();
|
|
//BEGIN C99 support
|
|
void testDesignatedInitializers();
|
|
//END C99 support
|
|
|
|
void testTernaryEmptyExpression();
|
|
|
|
//BEGIN C++2011 support
|
|
void testRangeBasedFor();
|
|
void testRValueReference();
|
|
void testDefaultDeletedFunctions_data();
|
|
void testDefaultDeletedFunctions();
|
|
void testVariadicTemplates_data();
|
|
void testVariadicTemplates();
|
|
void testStaticAssert_data();
|
|
void testStaticAssert();
|
|
void testConstExpr_data();
|
|
void testConstExpr();
|
|
void testEnumClass_data();
|
|
void testEnumClass();
|
|
void testRightAngleBrackets_data();
|
|
void testRightAngleBrackets();
|
|
void testCharacterTypes_data();
|
|
void testCharacterTypes();
|
|
void testRawStrings_data();
|
|
void testRawStrings();
|
|
void testNullPtr_data();
|
|
void testNullPtr();
|
|
void testInlineNamespace();
|
|
void testDecltype_data();
|
|
void testDecltype();
|
|
void testAlternativeFunctionSyntax_data();
|
|
void testAlternativeFunctionSyntax();
|
|
void testLambda_data();
|
|
void testLambda();
|
|
void testInitList_data();
|
|
void testInitList();
|
|
void testInitListFalsePositives();
|
|
void memberVirtSpec();
|
|
void memberVirtSpec_data();
|
|
void classVirtSpec();
|
|
void classVirtSpec_data();
|
|
void testUsingAlias();
|
|
void testNoexcept();
|
|
void testReferenceBindings();
|
|
//END C++2011 Support
|
|
|
|
protected:
|
|
/**
|
|
* dump @p node and print problems of @c control
|
|
*/
|
|
void dump(AST* node);
|
|
|
|
bool hasKind(AST*, AST::NODE_KIND);
|
|
AST* getAST(AST*, AST::NODE_KIND, int num = 0);
|
|
|
|
private:
|
|
Control control;
|
|
DumpTree dumper;
|
|
|
|
ParseSession* lastSession;
|
|
|
|
TranslationUnitAST* parse(const QByteArray& unit);
|
|
};
|
|
|
|
#endif // TEST_PARSER_H
|