Skip to content

Commit 697360d

Browse files
authored
refs #14226 - Token: removed need for test class friend declaration (danmar#8149)
1 parent d5d5b98 commit 697360d

File tree

2 files changed

+21
-16
lines changed

2 files changed

+21
-16
lines changed

lib/token.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ enum class TokenDebug : std::uint8_t { None, ValueFlow, ValueType };
8080
* The Token class also has other functions for management of token list, matching tokens, etc.
8181
*/
8282
class CPPCHECKLIB Token {
83-
friend class TestToken;
8483

8584
public:
8685
enum CppcheckAttributesType : std::uint8_t { LOW, HIGH };
@@ -918,6 +917,7 @@ class CPPCHECKLIB Token {
918917
return tok->link();
919918
}
920919

920+
protected:
921921
/**
922922
* Needle is build from multiple alternatives. If one of
923923
* them is equal to haystack, return value is 1. If there

test/testtoken.cpp

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ class TestToken : public TestFixture {
3636
TestToken() : TestFixture("TestToken") {}
3737

3838
private:
39+
class TokenTest final : public Token
40+
{
41+
friend class TestToken;
42+
};
43+
3944
const TokenList list{settingsDefault, Standards::Language::C};
4045

4146
std::vector<std::string> arithmeticalOps;
@@ -165,77 +170,77 @@ class TestToken : public TestFixture {
165170
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
166171
Token one(list, std::move(tokensFrontBack));
167172
one.str("one");
168-
ASSERT_EQUALS(1, Token::multiCompare(&one, "one|two", 0));
173+
ASSERT_EQUALS(1, TokenTest::multiCompare(&one, "one|two", 0));
169174
}
170175

171176
{
172177
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
173178
Token two(list, std::move(tokensFrontBack));
174179
two.str("two");
175-
ASSERT_EQUALS(1, Token::multiCompare(&two, "one|two", 0));
176-
ASSERT_EQUALS(1, Token::multiCompare(&two, "verybig|two|", 0));
180+
ASSERT_EQUALS(1, TokenTest::multiCompare(&two, "one|two", 0));
181+
ASSERT_EQUALS(1, TokenTest::multiCompare(&two, "verybig|two|", 0));
177182
}
178183

179184
// Test for empty string found
180185
{
181186
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
182187
Token notfound(list, std::move(tokensFrontBack));
183188
notfound.str("notfound");
184-
ASSERT_EQUALS(0, Token::multiCompare(&notfound, "one|two|", 0));
189+
ASSERT_EQUALS(0, TokenTest::multiCompare(&notfound, "one|two|", 0));
185190

186191
// Test for not found
187-
ASSERT_EQUALS(-1, Token::multiCompare(&notfound, "one|two", 0));
192+
ASSERT_EQUALS(-1, TokenTest::multiCompare(&notfound, "one|two", 0));
188193
}
189194

190195
{
191196
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
192197
Token s(list, std::move(tokensFrontBack));
193198
s.str("s");
194-
ASSERT_EQUALS(-1, Token::multiCompare(&s, "verybig|two", 0));
199+
ASSERT_EQUALS(-1, TokenTest::multiCompare(&s, "verybig|two", 0));
195200
}
196201

197202
{
198203
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
199204
Token ne(list, std::move(tokensFrontBack));
200205
ne.str("ne");
201-
ASSERT_EQUALS(-1, Token::multiCompare(&ne, "one|two", 0));
206+
ASSERT_EQUALS(-1, TokenTest::multiCompare(&ne, "one|two", 0));
202207
}
203208

204209
{
205210
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
206211
Token a(list, std::move(tokensFrontBack));
207212
a.str("a");
208-
ASSERT_EQUALS(-1, Token::multiCompare(&a, "abc|def", 0));
213+
ASSERT_EQUALS(-1, TokenTest::multiCompare(&a, "abc|def", 0));
209214
}
210215

211216
{
212217
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
213218
Token abcd(list, std::move(tokensFrontBack));
214219
abcd.str("abcd");
215-
ASSERT_EQUALS(-1, Token::multiCompare(&abcd, "abc|def", 0));
220+
ASSERT_EQUALS(-1, TokenTest::multiCompare(&abcd, "abc|def", 0));
216221
}
217222

218223
{
219224
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
220225
Token def(list, std::move(tokensFrontBack));
221226
def.str("default");
222-
ASSERT_EQUALS(-1, Token::multiCompare(&def, "abc|def", 0));
227+
ASSERT_EQUALS(-1, TokenTest::multiCompare(&def, "abc|def", 0));
223228
}
224229

225230
// %op%
226231
{
227232
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
228233
Token plus(list, std::move(tokensFrontBack));
229234
plus.str("+");
230-
ASSERT_EQUALS(1, Token::multiCompare(&plus, "one|%op%", 0));
231-
ASSERT_EQUALS(1, Token::multiCompare(&plus, "%op%|two", 0));
235+
ASSERT_EQUALS(1, TokenTest::multiCompare(&plus, "one|%op%", 0));
236+
ASSERT_EQUALS(1, TokenTest::multiCompare(&plus, "%op%|two", 0));
232237
}
233238
{
234239
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
235240
Token x(list, std::move(tokensFrontBack));
236241
x.str("x");
237-
ASSERT_EQUALS(-1, Token::multiCompare(&x, "one|%op%", 0));
238-
ASSERT_EQUALS(-1, Token::multiCompare(&x, "%op%|two", 0));
242+
ASSERT_EQUALS(-1, TokenTest::multiCompare(&x, "one|%op%", 0));
243+
ASSERT_EQUALS(-1, TokenTest::multiCompare(&x, "%op%|two", 0));
239244
}
240245

241246
}
@@ -314,7 +319,7 @@ class TestToken : public TestFixture {
314319
auto tokensFrontBack = std::make_shared<TokensFrontBack>();
315320
Token tok(list, std::move(tokensFrontBack));
316321
tok.str("||");
317-
ASSERT_EQUALS(true, Token::multiCompare(&tok, "+|%or%|%oror%", 0) >= 0);
322+
ASSERT_EQUALS(true, TokenTest::multiCompare(&tok, "+|%or%|%oror%", 0) >= 0);
318323
}
319324

320325
void charTypes() const {

0 commit comments

Comments
 (0)