GCC Code Coverage Report


Directory: ./
File: src/util/str-fmt.test.cc
Date: 2025-09-01 06:19:01
Exec Total Coverage
Lines: 30 30 100.0%
Functions: 12 12 100.0%
Branches: 49 83 59.0%

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