| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #include "na64util/str-fmt.hh" | ||
| 2 | |||
| 3 | #include <gtest/gtest.h> | ||
| 4 | |||
| 5 | namespace na64dp { | ||
| 6 | |||
| 7 | 8 | TEST(StrUtilsQuotedTokens, splitsOrdinaryTokens) { | |
| 8 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
2 | auto v = util::tokenize_quoted_expression( "one two" ); |
| 9 |
3/5✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
2 | ASSERT_EQ( v.size(), 2 ); |
| 10 |
2/4✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
|
2 | ASSERT_FALSE( v[0].empty() ); |
| 11 |
2/3✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
2 | EXPECT_EQ( v[0], "one" ); |
| 12 |
2/4✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
|
2 | ASSERT_FALSE( v[1].empty() ); |
| 13 |
2/3✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
2 | EXPECT_EQ( v[1], "two" ); |
| 14 | 2 | } | |
| 15 | |||
| 16 | 8 | TEST(StrUtilsQuotedTokens, splitsCommaEscapedTokens) { | |
| 17 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
2 | auto v = util::tokenize_quoted_expression( "\"some another\" three" ); |
| 18 |
3/5✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
2 | ASSERT_EQ( v.size(), 2 ); |
| 19 |
2/4✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
|
2 | ASSERT_FALSE( v[0].empty() ); |
| 20 |
2/3✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
2 | EXPECT_EQ( v[0], "some another" ); |
| 21 |
2/4✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 23 taken 1 times.
✗ Branch 24 not taken.
|
2 | ASSERT_FALSE( v[1].empty() ); |
| 22 |
2/3✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
2 | EXPECT_EQ( v[1], "three" ); |
| 23 | 2 | } | |
| 24 | |||
| 25 | 8 | TEST(StrUtilsQuotedTokens, handlesEmptyAndShortTokens) { | |
| 26 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
2 | auto v = util::tokenize_quoted_expression( "\"\" 1 _ \"\"" ); |
| 27 |
3/5✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
✓ Branch 20 taken 1 times.
✗ Branch 21 not taken.
|
2 | ASSERT_EQ( v.size(), 4 ); |
| 28 |
1/2✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
2 | EXPECT_TRUE( v[0].empty() ); |
| 29 |
2/3✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
2 | EXPECT_EQ( v[1], "1" ); |
| 30 |
2/3✓ Branch 2 taken 1 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 times.
|
2 | EXPECT_EQ( v[2], "_" ); |
| 31 |
1/2✗ Branch 4 not taken.
✓ Branch 5 taken 1 times.
|
2 | EXPECT_TRUE( v[3].empty() ); |
| 32 | 2 | } | |
| 33 | |||
| 34 | 8 | TEST(StrUtilsQuotedTokens, errorOnUnbalancedQuotes) { | |
| 35 |
6/12✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
|
6 | EXPECT_THROW( util::tokenize_quoted_expression( "\"" ) |
| 36 | 2 | , std::runtime_error ); | |
| 37 |
6/12✓ Branch 2 taken 1 times.
✗ Branch 3 not taken.
✓ Branch 5 taken 1 times.
✓ Branch 7 taken 1 times.
✗ Branch 8 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 13 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 1 times.
✓ Branch 35 taken 1 times.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
|
6 | EXPECT_THROW( util::tokenize_quoted_expression( "\"one two\" blah \"some three" ) |
| 38 | 2 | , std::runtime_error ); | |
| 39 | 2 | } | |
| 40 | |||
| 41 | } | ||
| 42 | |||
| 43 |