Export of internal Abseil changes.
-- 86b1c997fac1f77b0eacfab788659b5a89a6096e by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 211654320 -- 299b70e1247df768454a76eb957a184de9706f61 by Chris Kennelly <ckennelly@google.com>: Avoid creating a misaligned reference to int. PiperOrigin-RevId: 211505883 -- c8fad4357ad0bfb3c5ad197c505509bc087072c9 by Abseil Team <absl-team@google.com>: Import of CCTZ from GitHub. PiperOrigin-RevId: 211458539 -- 0613feffcd36466c3e53a50758d7e8f17c001dce by Greg Falcon <gfalcon@google.com>: Refactor a string unit test into a template function for internal purposes. PiperOrigin-RevId: 211100748 GitOrigin-RevId: 86b1c997fac1f77b0eacfab788659b5a89a6096e Change-Id: Ic6a932b6c27c6762dcdb3b0127f1e2be782418c1
This commit is contained in:
parent
c075ad3216
commit
fb462224c0
7 changed files with 48 additions and 45 deletions
|
|
@ -543,18 +543,19 @@ static struct {
|
|||
{"abcdefghijklmnopqrstuvwxyz", "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo="},
|
||||
};
|
||||
|
||||
TEST(Base64, EscapeAndUnescape) {
|
||||
template <typename StringType>
|
||||
void TestEscapeAndUnescape() {
|
||||
// Check the short strings; this tests the math (and boundaries)
|
||||
for (const auto& tc : base64_tests) {
|
||||
std::string encoded("this junk should be ignored");
|
||||
StringType encoded("this junk should be ignored");
|
||||
absl::Base64Escape(tc.plaintext, &encoded);
|
||||
EXPECT_EQ(encoded, tc.cyphertext);
|
||||
|
||||
std::string decoded("this junk should be ignored");
|
||||
StringType decoded("this junk should be ignored");
|
||||
EXPECT_TRUE(absl::Base64Unescape(encoded, &decoded));
|
||||
EXPECT_EQ(decoded, tc.plaintext);
|
||||
|
||||
std::string websafe(tc.cyphertext);
|
||||
StringType websafe(tc.cyphertext);
|
||||
for (int c = 0; c < websafe.size(); ++c) {
|
||||
if ('+' == websafe[c]) websafe[c] = '-';
|
||||
if ('/' == websafe[c]) websafe[c] = '_';
|
||||
|
|
@ -576,7 +577,7 @@ TEST(Base64, EscapeAndUnescape) {
|
|||
|
||||
// Now try the long strings, this tests the streaming
|
||||
for (const auto& tc : absl::strings_internal::base64_strings()) {
|
||||
std::string buffer;
|
||||
StringType buffer;
|
||||
absl::WebSafeBase64Escape(tc.plaintext, &buffer);
|
||||
EXPECT_EQ(tc.cyphertext, buffer);
|
||||
}
|
||||
|
|
@ -586,7 +587,7 @@ TEST(Base64, EscapeAndUnescape) {
|
|||
absl::string_view data_set[] = {"ab-/", absl::string_view("\0bcd", 4),
|
||||
absl::string_view("abc.\0", 5)};
|
||||
for (absl::string_view bad_data : data_set) {
|
||||
std::string buf;
|
||||
StringType buf;
|
||||
EXPECT_FALSE(absl::Base64Unescape(bad_data, &buf));
|
||||
EXPECT_FALSE(absl::WebSafeBase64Unescape(bad_data, &buf));
|
||||
EXPECT_TRUE(buf.empty());
|
||||
|
|
@ -594,6 +595,10 @@ TEST(Base64, EscapeAndUnescape) {
|
|||
}
|
||||
}
|
||||
|
||||
TEST(Base64, EscapeAndUnescape) {
|
||||
TestEscapeAndUnescape<std::string>();
|
||||
}
|
||||
|
||||
TEST(Base64, DISABLED_HugeData) {
|
||||
const size_t kSize = size_t(3) * 1000 * 1000 * 1000;
|
||||
static_assert(kSize % 3 == 0, "kSize must be divisible by 3");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue