|
15 | 15 | // specific language governing permissions and limitations |
16 | 16 | // under the License. |
17 | 17 |
|
18 | | -#include "arrow/testing/gtest_util.h" |
19 | 18 | #include "arrow/util/base64.h" |
20 | | - |
| 19 | +#include "arrow/testing/gtest_util.h" |
21 | 20 |
|
22 | 21 | namespace arrow { |
23 | 22 | namespace util { |
24 | 23 |
|
25 | 24 | TEST(Base64DecodeTest, ValidInputs) { |
26 | | - ASSERT_OK_AND_ASSIGN(auto empty, arrow::util::base64_decode("")); |
| 25 | + ASSERT_OK_AND_ASSIGN(auto empty, base64_decode("")); |
27 | 26 | EXPECT_EQ(empty, ""); |
28 | 27 |
|
29 | | - ASSERT_OK_AND_ASSIGN(auto two_paddings, arrow::util::base64_decode("Zg==")); |
| 28 | + ASSERT_OK_AND_ASSIGN(auto two_paddings, base64_decode("Zg==")); |
30 | 29 | EXPECT_EQ(two_paddings, "f"); |
31 | 30 |
|
32 | | - ASSERT_OK_AND_ASSIGN(auto one_padding, arrow::util::base64_decode("Zm8=")); |
| 31 | + ASSERT_OK_AND_ASSIGN(auto one_padding, base64_decode("Zm8=")); |
33 | 32 | EXPECT_EQ(one_padding, "fo"); |
34 | 33 |
|
35 | | - ASSERT_OK_AND_ASSIGN(auto no_padding, arrow::util::base64_decode("Zm9v")); |
| 34 | + ASSERT_OK_AND_ASSIGN(auto no_padding, base64_decode("Zm9v")); |
36 | 35 | EXPECT_EQ(no_padding, "foo"); |
37 | 36 |
|
38 | | - ASSERT_OK_AND_ASSIGN(auto multiblock, arrow::util::base64_decode("SGVsbG8gd29ybGQ=")); |
| 37 | + ASSERT_OK_AND_ASSIGN(auto multiblock, base64_decode("SGVsbG8gd29ybGQ=")); |
39 | 38 | EXPECT_EQ(multiblock, "Hello world"); |
40 | 39 | } |
41 | 40 |
|
42 | 41 | TEST(Base64DecodeTest, BinaryOutput) { |
43 | 42 | // 'A' maps to index 0 — same zero value used for padding slots |
44 | 43 | // verifies the 'A' bug is not present |
45 | | - ASSERT_OK_AND_ASSIGN(auto all_A, arrow::util::base64_decode("AAAA")); |
| 44 | + ASSERT_OK_AND_ASSIGN(auto all_A, base64_decode("AAAA")); |
46 | 45 | EXPECT_EQ(all_A, std::string("\x00\x00\x00", 3)); |
47 | 46 |
|
48 | 47 | // Arbitrary non-ASCII output bytes |
49 | | - ASSERT_OK_AND_ASSIGN(auto binary, arrow::util::base64_decode("AP8A")); |
| 48 | + ASSERT_OK_AND_ASSIGN(auto binary, base64_decode("AP8A")); |
50 | 49 | EXPECT_EQ(binary, std::string("\x00\xff\x00", 3)); |
51 | 50 | } |
52 | 51 |
|
53 | 52 | TEST(Base64DecodeTest, InvalidLength) { |
54 | | - ASSERT_RAISES_WITH_MESSAGE( |
55 | | - Invalid, |
56 | | - "Invalid: Invalid base64 input: length is not a multiple of 4", |
57 | | - arrow::util::base64_decode("abc")); |
| 53 | + ASSERT_RAISES_WITH_MESSAGE(Invalid, "Invalid: Invalid base64 input", |
| 54 | + base64_decode("abc")); |
58 | 55 | } |
59 | 56 |
|
60 | 57 | TEST(Base64DecodeTest, InvalidCharacters) { |
61 | | - ASSERT_RAISES(Invalid, arrow::util::base64_decode("ab$=")); |
| 58 | + ASSERT_RAISES_WITH_MESSAGE(Invalid, "Invalid: Invalid base64 input", |
| 59 | + base64_decode("ab$=")); |
62 | 60 |
|
63 | 61 | // Non-ASCII byte |
64 | 62 | std::string non_ascii = std::string("abc") + static_cast<char>(0xFF); |
65 | | - ASSERT_RAISES(Invalid, arrow::util::base64_decode(non_ascii)); |
| 63 | + ASSERT_RAISES_WITH_MESSAGE(Invalid, "Invalid: Invalid base64 input", |
| 64 | + base64_decode(non_ascii)); |
66 | 65 |
|
67 | 66 | // Corruption mid-string across multiple blocks |
68 | | - ASSERT_RAISES(Invalid, arrow::util::base64_decode("aGVs$G8gd29ybGQ=")); |
| 67 | + ASSERT_RAISES_WITH_MESSAGE(Invalid, "Invalid: Invalid base64 input", |
| 68 | + base64_decode("aGVs$G8gd29ybGQ=")); |
69 | 69 | } |
70 | 70 |
|
71 | 71 | TEST(Base64DecodeTest, InvalidPadding) { |
72 | 72 | // Padding in wrong position within block |
73 | | - ASSERT_RAISES(Invalid, arrow::util::base64_decode("ab=c")); |
| 73 | + ASSERT_RAISES_WITH_MESSAGE(Invalid, "Invalid: Invalid base64 input", |
| 74 | + base64_decode("ab=c")); |
74 | 75 |
|
75 | 76 | // 3 padding characters — exceeds maximum of 2 |
76 | | - ASSERT_RAISES(Invalid, arrow::util::base64_decode("a===")); |
| 77 | + ASSERT_RAISES_WITH_MESSAGE(Invalid, "Invalid: Invalid base64 input", |
| 78 | + base64_decode("a===")); |
77 | 79 |
|
78 | 80 | // 4 padding characters |
79 | | - ASSERT_RAISES(Invalid, arrow::util::base64_decode("====")); |
| 81 | + ASSERT_RAISES_WITH_MESSAGE(Invalid, "Invalid: Invalid base64 input", |
| 82 | + base64_decode("====")); |
80 | 83 |
|
81 | 84 | // Padding in non-final block across multiple blocks |
82 | | - ASSERT_RAISES(Invalid, arrow::util::base64_decode("Zm8=Zm8=")); |
| 85 | + ASSERT_RAISES_WITH_MESSAGE(Invalid, "Invalid: Invalid base64 input", |
| 86 | + base64_decode("Zm8=Zm8=")); |
83 | 87 | } |
84 | 88 |
|
85 | | -} |
86 | | -} |
| 89 | +} // namespace util |
| 90 | +} // namespace arrow |
0 commit comments