OpenVPN 3 Core Library
Loading...
Searching...
No Matches
test_string.cpp
Go to the documentation of this file.
1// OpenVPN -- An application to securely tunnel IP networks
2// over a single port, with support for SSL/TLS-based
3// session authentication and key exchange,
4// packet encryption, packet authentication, and
5// packet compression.
6//
7// Copyright (C) 2012- OpenVPN Inc.
8//
9// SPDX-License-Identifier: MPL-2.0 OR AGPL-3.0-only WITH openvpn3-openssl-exception
10//
11
12#include "test_common.hpp"
13
15
16using namespace openvpn;
17
18TEST(OvpnStringSuite, TestArgsToStringEmpty)
19{
20 const auto str = string::args_to_string(", ");
21 EXPECT_EQ(str, "");
22}
23
24TEST(OvpnStringSuite, TestArgsToStringOne)
25{
26 const auto str = string::args_to_string(", ", "a");
27 EXPECT_EQ(str, "a");
28}
29
30TEST(OvpnStringSuite, TestArgsToStringTwo)
31{
32 const auto str = string::args_to_string(", ", "a", "b");
33 EXPECT_EQ(str, "a, b");
34}
35
36TEST(OvpnStringSuite, TestArgsToStringThree)
37{
38 const auto str = string::args_to_string(", ", "a", "b", "c");
39 EXPECT_EQ(str, "a, b, c");
40}
41
42TEST(OvpnStringSuite, TestArgsToStringFour)
43{
44 const auto str = string::args_to_string(", ", "a", "b", "c", "d");
45 EXPECT_EQ(str, "a, b, c, d");
46}
47
48TEST(OvpnStringSuite, TestArgsToStringTwoMixed)
49{
50 const auto str = string::args_to_string(", ", "a", 1);
51 EXPECT_EQ(str, "a, 1");
52}
53
54TEST(OvpnStringSuite, TestArgsToStringThreeMixed)
55{
56 const auto str = string::args_to_string("", "a", 1, "b");
57 EXPECT_EQ(str, "a1b");
58}
59
60TEST(OvpnStringSuite, TestFormatSafeEmpty)
61{
62 const auto str = string::format_safe("");
63 EXPECT_TRUE(str);
64 EXPECT_EQ(*str, "");
65}
66
67TEST(OvpnStringSuite, TestFormatSafeZero)
68{
69 const auto str = string::format_safe("a");
70 EXPECT_TRUE(str);
71 EXPECT_EQ(*str, "a");
72}
73
74TEST(OvpnStringSuite, TestFormatSafeOne)
75{
76 const auto str = string::format_safe("a {}", 1);
77 EXPECT_TRUE(str);
78 EXPECT_EQ(*str, "a 1");
79}
80
81TEST(OvpnStringSuite, TestFormatSafeTwo)
82{
83 const auto str = string::format_safe("a {} {}", 1, 2);
84 EXPECT_TRUE(str);
85 EXPECT_EQ(*str, "a 1 2");
86}
87
88TEST(OvpnStringSuite, TestFormatSafeThree)
89{
90 const auto str = string::format_safe("a {} {} {}", 1, "2", 3);
91 EXPECT_TRUE(str);
92 EXPECT_EQ(*str, "a 1 2 3");
93}
94
95TEST(OvpnStringSuite, TestFormatSafeMalformed)
96{
97 const auto str = string::format_safe("a } {} {} {}", 1, "2", 3);
98 EXPECT_FALSE(str);
99}
100
101TEST(OvpnStringSuite, TestFormatSafeMalformed2)
102{
103 const auto str = string::format_safe("a {} {} {} {}", 1, "2", 3);
104 EXPECT_FALSE(str);
105}
auto args_to_string(std::string_view delim, ArgsT &&...args) -> std::string
Convert variadic arguments to a string.
Definition string.hpp:659
auto format_safe(std::string format, ArgsT &&...args) noexcept -> std::optional< std::string >
Format a string with error handling.
Definition string.hpp:681
os<< "Session Name: "<< tbc-> session_name<< '\n';os<< "Layer: "<< tbc-> layer str()<< '\n'
TEST(OvpnStringSuite, TestArgsToStringEmpty)