Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split test_token to avoid compiler note #392

Merged
merged 1 commit into from Feb 27, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
26 changes: 25 additions & 1 deletion rcl/test/rcl/test_lexer.cpp
Expand Up @@ -49,14 +49,17 @@ class CLASSNAME (TestLexerFixture, RMW_IMPLEMENTATION) : public ::testing::Test
EXPECT_STREQ(expected_text, actual_text.c_str()); \
} while (false)

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token)
TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_different_endings)
{
// Things get recognized as tokens whether input ends or non token characters come after them
EXPECT_LEX(RCL_LEXEME_TOKEN, "foo", "foo");
EXPECT_LEX(RCL_LEXEME_TOKEN, "foo", "foo:");
EXPECT_LEX(RCL_LEXEME_TOKEN, "foo_", "foo_");
EXPECT_LEX(RCL_LEXEME_TOKEN, "foo_", "foo_:");
}

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_start_char)
{
// Check full range for starting character
EXPECT_LEX(RCL_LEXEME_TOKEN, "a", "a");
EXPECT_LEX(RCL_LEXEME_TOKEN, "b", "b");
Expand Down Expand Up @@ -111,13 +114,19 @@ TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token)
EXPECT_LEX(RCL_LEXEME_TOKEN, "Y", "Y");
EXPECT_LEX(RCL_LEXEME_TOKEN, "Z", "Z");
EXPECT_LEX(RCL_LEXEME_TOKEN, "_", "_");
}

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_adjacent_ascii)
{
// Check banned characters adjacent to allowed ones in ASCII
EXPECT_LEX(RCL_LEXEME_NONE, "@", "@");
EXPECT_LEX(RCL_LEXEME_NONE, "[", "[");
EXPECT_LEX(RCL_LEXEME_NONE, "`", "`");
EXPECT_LEX(RCL_LEXEME_NONE, "{", "{");
}

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_cannot_start_with_digits)
{
// Tokens cannot start with digits
EXPECT_LEX(RCL_LEXEME_NONE, "0", "0");
EXPECT_LEX(RCL_LEXEME_NONE, "1", "1");
Expand All @@ -129,7 +138,10 @@ TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token)
EXPECT_LEX(RCL_LEXEME_NONE, "7", "7");
EXPECT_LEX(RCL_LEXEME_NONE, "8", "8");
EXPECT_LEX(RCL_LEXEME_NONE, "9", "9");
}

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_underscores)
{
// Tokens may contain underscores
EXPECT_LEX(RCL_LEXEME_TOKEN, "_abcd", "_abcd");
EXPECT_LEX(RCL_LEXEME_TOKEN, "abcd_", "abcd_");
Expand All @@ -142,7 +154,10 @@ TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token)
EXPECT_LEX(RCL_LEXEME_TOKEN, "A_", "A__bcd");
EXPECT_LEX(RCL_LEXEME_NONE, "__a", "__a");
EXPECT_LEX(RCL_LEXEME_NONE, "__A", "__A");
}

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_contain_digits)
{
// Tokens may contain digits
EXPECT_LEX(RCL_LEXEME_TOKEN, "_0_", "_0_");
EXPECT_LEX(RCL_LEXEME_TOKEN, "_1_", "_1_");
Expand All @@ -164,7 +179,10 @@ TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token)
EXPECT_LEX(RCL_LEXEME_TOKEN, "a7a", "a7a");
EXPECT_LEX(RCL_LEXEME_TOKEN, "a8a", "a8a");
EXPECT_LEX(RCL_LEXEME_TOKEN, "a9a", "a9a");
}

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_end_with_digits)
{
// Tokens may end with digits
EXPECT_LEX(RCL_LEXEME_TOKEN, "_0", "_0");
EXPECT_LEX(RCL_LEXEME_TOKEN, "_1", "_1");
Expand All @@ -186,7 +204,10 @@ TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token)
EXPECT_LEX(RCL_LEXEME_TOKEN, "a7", "a7");
EXPECT_LEX(RCL_LEXEME_TOKEN, "a8", "a8");
EXPECT_LEX(RCL_LEXEME_TOKEN, "a9", "a9");
}

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_close_to_url_scheme)
{
// Things that almost look like a url scheme but are actually tokens
EXPECT_LEX(RCL_LEXEME_TOKEN, "ro", "ro");
EXPECT_LEX(RCL_LEXEME_TOKEN, "ros", "ros");
Expand All @@ -210,7 +231,10 @@ TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token)
EXPECT_LEX(RCL_LEXEME_TOKEN, "rostopic", "rostopic:=");
EXPECT_LEX(RCL_LEXEME_TOKEN, "rostopic", "rostopic:/");
EXPECT_LEX(RCL_LEXEME_TOKEN, "rostopic", "rostopic:/a");
}

TEST_F(CLASSNAME(TestLexerFixture, RMW_IMPLEMENTATION), test_token_upper_case)
{
// Tokens may contain uppercase characters
EXPECT_LEX(RCL_LEXEME_TOKEN, "ABC", "ABC");
EXPECT_LEX(RCL_LEXEME_TOKEN, "_DEF", "_DEF");
Expand Down