]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/third_party/prometheus-cpp/pull/tests/internal/base64_test.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / third_party / prometheus-cpp / pull / tests / internal / base64_test.cc
1 #include "detail/base64.h"
2
3 #include <gtest/gtest.h>
4
5 #include <string>
6
7 namespace prometheus {
8 namespace {
9
10 struct TestVector {
11 const std::string decoded;
12 const std::string encoded;
13 };
14
15 const TestVector testVector[] = {
16 {"", ""},
17 {"f", "Zg=="},
18 {"fo", "Zm8="},
19 {"foo", "Zm9v"},
20 {"foob", "Zm9vYg=="},
21 {"fooba", "Zm9vYmE="},
22 {"foobar", "Zm9vYmFy"},
23 };
24
25 const unsigned nVectors = sizeof(testVector) / sizeof(testVector[0]);
26
27 using namespace testing;
28
29 TEST(Base64Test, decodeTest) {
30 for (unsigned i = 0; i < nVectors; ++i) {
31 std::string decoded = detail::base64_decode(testVector[i].encoded);
32 EXPECT_EQ(testVector[i].decoded, decoded);
33 }
34 }
35
36 TEST(Base64Test, rejectInvalidSymbols) {
37 EXPECT_ANY_THROW(detail::base64_decode("...."));
38 }
39
40 TEST(Base64Test, rejectInvalidInputSize) {
41 EXPECT_ANY_THROW(detail::base64_decode("ABC"));
42 }
43
44 TEST(Base64Test, rejectInvalidPadding) {
45 EXPECT_ANY_THROW(detail::base64_decode("A==="));
46 }
47
48 } // namespace
49 } // namespace prometheus