TestSymbolDatabase: Add some tests for the new enum handling
This commit is contained in:
parent
3dea23c99e
commit
a167a2d242
|
@ -242,6 +242,10 @@ private:
|
||||||
TEST_CASE(symboldatabase53); // #7124 (library podtype)
|
TEST_CASE(symboldatabase53); // #7124 (library podtype)
|
||||||
TEST_CASE(symboldatabase54); // #7257
|
TEST_CASE(symboldatabase54); // #7257
|
||||||
|
|
||||||
|
TEST_CASE(enum1);
|
||||||
|
TEST_CASE(enum2);
|
||||||
|
TEST_CASE(enum3);
|
||||||
|
|
||||||
TEST_CASE(isImplicitlyVirtual);
|
TEST_CASE(isImplicitlyVirtual);
|
||||||
TEST_CASE(isPure);
|
TEST_CASE(isPure);
|
||||||
|
|
||||||
|
@ -2251,6 +2255,44 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void enum1() {
|
||||||
|
GET_SYMBOL_DB("enum BOOL { FALSE, TRUE }; enum BOOL b;");
|
||||||
|
|
||||||
|
/* there is a enum scope with the name BOOL */
|
||||||
|
ASSERT(db && db->scopeList.back().type == Scope::eEnum && db->scopeList.back().className == "BOOL");
|
||||||
|
|
||||||
|
/* b is a enum variable, type is BOOL */
|
||||||
|
ASSERT(db && db->getVariableFromVarId(1)->isEnumType());
|
||||||
|
}
|
||||||
|
|
||||||
|
void enum2() {
|
||||||
|
GET_SYMBOL_DB("enum BOOL { FALSE, TRUE } b;");
|
||||||
|
|
||||||
|
/* there is a enum scope with the name BOOL */
|
||||||
|
ASSERT(db && db->scopeList.back().type == Scope::eEnum && db->scopeList.back().className == "BOOL");
|
||||||
|
|
||||||
|
/* b is a enum variable, type is BOOL */
|
||||||
|
ASSERT(db && db->getVariableFromVarId(1)->isEnumType());
|
||||||
|
}
|
||||||
|
|
||||||
|
void enum3() {
|
||||||
|
GET_SYMBOL_DB("enum ABC { A=11,B,C=A+B };");
|
||||||
|
ASSERT(db && db->scopeList.back().type == Scope::eEnum);
|
||||||
|
if (db) {
|
||||||
|
/* There is an enum A with value 11 */
|
||||||
|
const Enumerator *A = db->scopeList.back().findEnumerator("A");
|
||||||
|
ASSERT(A && A->value==11 && A->value_known);
|
||||||
|
|
||||||
|
/* There is an enum B with value 12 */
|
||||||
|
const Enumerator *B = db->scopeList.back().findEnumerator("B");
|
||||||
|
ASSERT(B && B->value==12 && B->value_known);
|
||||||
|
|
||||||
|
/* There is an enum C with value 23 */
|
||||||
|
const Enumerator *C = db->scopeList.back().findEnumerator("C");
|
||||||
|
ASSERT(C && C->value==23 && C->value_known);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void isImplicitlyVirtual() {
|
void isImplicitlyVirtual() {
|
||||||
{
|
{
|
||||||
GET_SYMBOL_DB("class Base {\n"
|
GET_SYMBOL_DB("class Base {\n"
|
||||||
|
|
Loading…
Reference in New Issue