ValueType: Added additional unit test (#4185)
Removed unnecessary library export Backported from LCppC.
This commit is contained in:
parent
d20ea41325
commit
898a3a25a1
|
@ -1601,7 +1601,7 @@ const Library::SmartPointer* Library::detectSmartPointer(const Token* tok) const
|
||||||
return &it->second;
|
return &it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
CPPCHECKLIB const Library::Container * getLibraryContainer(const Token * tok)
|
const Library::Container * getLibraryContainer(const Token * tok)
|
||||||
{
|
{
|
||||||
if (!tok)
|
if (!tok)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
|
@ -465,7 +465,8 @@ private:
|
||||||
|
|
||||||
TEST_CASE(executableScopeWithUnknownFunction);
|
TEST_CASE(executableScopeWithUnknownFunction);
|
||||||
|
|
||||||
TEST_CASE(valuetype);
|
TEST_CASE(valueType1);
|
||||||
|
TEST_CASE(valueType2);
|
||||||
|
|
||||||
TEST_CASE(variadic1); // #7453
|
TEST_CASE(variadic1); // #7453
|
||||||
TEST_CASE(variadic2); // #7649
|
TEST_CASE(variadic2); // #7649
|
||||||
|
@ -7331,7 +7332,7 @@ private:
|
||||||
return tok->valueType() ? tok->valueType()->str() : std::string();
|
return tok->valueType() ? tok->valueType()->str() : std::string();
|
||||||
}
|
}
|
||||||
|
|
||||||
void valuetype() {
|
void valueType1() {
|
||||||
// stringification
|
// stringification
|
||||||
ASSERT_EQUALS("", ValueType().str());
|
ASSERT_EQUALS("", ValueType().str());
|
||||||
|
|
||||||
|
@ -7784,6 +7785,49 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void valueType2() {
|
||||||
|
GET_SYMBOL_DB("int i;\n"
|
||||||
|
"bool b;\n"
|
||||||
|
"Unknown u;\n"
|
||||||
|
"std::string s;\n"
|
||||||
|
"std::vector<int> v;\n"
|
||||||
|
"std::map<int, void*>::const_iterator it;\n"
|
||||||
|
"void* p;\n"
|
||||||
|
"\n"
|
||||||
|
"void f() {\n"
|
||||||
|
" func(i, b, u, s, v, it, p);\n"
|
||||||
|
"}");
|
||||||
|
|
||||||
|
const Token* tok = tokenizer.tokens();
|
||||||
|
|
||||||
|
for (int i = 0; i < 2; i++) {
|
||||||
|
tok = Token::findsimplematch(tok, "i");
|
||||||
|
ASSERT(tok && tok->valueType());
|
||||||
|
ASSERT_EQUALS("signed int", tok->valueType()->str());
|
||||||
|
|
||||||
|
tok = Token::findsimplematch(tok, "b");
|
||||||
|
ASSERT(tok && tok->valueType());
|
||||||
|
ASSERT_EQUALS("bool", tok->valueType()->str());
|
||||||
|
|
||||||
|
tok = Token::findsimplematch(tok, "u");
|
||||||
|
ASSERT(tok && !tok->valueType());
|
||||||
|
|
||||||
|
tok = Token::findsimplematch(tok, "s");
|
||||||
|
ASSERT(tok && tok->valueType());
|
||||||
|
ASSERT_EQUALS("container(std :: string|wstring|u16string|u32string)", tok->valueType()->str());
|
||||||
|
ASSERT(tok->valueType()->container && tok->valueType()->container->stdStringLike);
|
||||||
|
|
||||||
|
tok = Token::findsimplematch(tok, "v");
|
||||||
|
ASSERT(tok && tok->valueType());
|
||||||
|
ASSERT_EQUALS("container(std :: vector <)", tok->valueType()->str());
|
||||||
|
ASSERT(tok->valueType()->container && !tok->valueType()->container->stdStringLike);
|
||||||
|
|
||||||
|
tok = Token::findsimplematch(tok, "it");
|
||||||
|
ASSERT(tok && tok->valueType());
|
||||||
|
ASSERT_EQUALS("iterator(std :: map|unordered_map <)", tok->valueType()->str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void variadic1() { // #7453
|
void variadic1() { // #7453
|
||||||
{
|
{
|
||||||
GET_SYMBOL_DB("CBase* create(const char *c1, ...);\n"
|
GET_SYMBOL_DB("CBase* create(const char *c1, ...);\n"
|
||||||
|
|
Loading…
Reference in New Issue