forked from qt-creator/qt-creator
More testing.
This commit is contained in:
@@ -12,6 +12,17 @@
|
|||||||
|
|
||||||
CPLUSPLUS_USE_NAMESPACE
|
CPLUSPLUS_USE_NAMESPACE
|
||||||
|
|
||||||
|
template <template <typename, typename> class _Map, typename _T1, typename _T2>
|
||||||
|
_Map<_T2, _T1> invert(const _Map<_T1, _T2> &m)
|
||||||
|
{
|
||||||
|
_Map<_T2, _T1> i;
|
||||||
|
typename _Map<_T1, _T2>::const_iterator it = m.constBegin();
|
||||||
|
for (; it != m.constEnd(); ++it) {
|
||||||
|
i.insertMulti(it.value(), it.key());
|
||||||
|
}
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
class ClassSymbols: protected ASTVisitor,
|
class ClassSymbols: protected ASTVisitor,
|
||||||
public QMap<ClassSpecifierAST *, Class *>
|
public QMap<ClassSpecifierAST *, Class *>
|
||||||
{
|
{
|
||||||
@@ -20,6 +31,9 @@ public:
|
|||||||
: ASTVisitor(control)
|
: ASTVisitor(control)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
QMap<ClassSpecifierAST *, Class *> asMap() const
|
||||||
|
{ return *this; }
|
||||||
|
|
||||||
void operator()(AST *ast)
|
void operator()(AST *ast)
|
||||||
{ accept(ast); }
|
{ accept(ast); }
|
||||||
|
|
||||||
@@ -62,7 +76,7 @@ void tst_Lookup::base_class_defined_1()
|
|||||||
Snapshot snapshot;
|
Snapshot snapshot;
|
||||||
snapshot.insert(doc->fileName(), doc);
|
snapshot.insert(doc->fileName(), doc);
|
||||||
|
|
||||||
Document::Ptr emptyDoc = Document::create("empty");
|
Document::Ptr emptyDoc = Document::create("<empty>");
|
||||||
|
|
||||||
Class *baseClass = doc->globalSymbolAt(0)->asClass();
|
Class *baseClass = doc->globalSymbolAt(0)->asClass();
|
||||||
QVERIFY(baseClass);
|
QVERIFY(baseClass);
|
||||||
@@ -88,6 +102,12 @@ void tst_Lookup::base_class_defined_1()
|
|||||||
classSymbols(ast);
|
classSymbols(ast);
|
||||||
|
|
||||||
QCOMPARE(classSymbols.size(), 2);
|
QCOMPARE(classSymbols.size(), 2);
|
||||||
|
|
||||||
|
const QMap<Class *, ClassSpecifierAST *> classToAST =
|
||||||
|
invert(classSymbols.asMap());
|
||||||
|
|
||||||
|
QVERIFY(classToAST.value(baseClass) != 0);
|
||||||
|
QVERIFY(classToAST.value(derivedClass) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
QTEST_APPLESS_MAIN(tst_Lookup)
|
QTEST_APPLESS_MAIN(tst_Lookup)
|
||||||
|
Reference in New Issue
Block a user