xref: /openbmc/libcper/tests/base64_test.cpp (revision e42fb487839b242371b0150ab5b0b89c2d232976)
1*e42fb487SThu Nguyen #include <libcper/base64.h>
2a7d2cdddSEd Tanous 
3a7d2cdddSEd Tanous #include "gtest/gtest.h"
4a7d2cdddSEd Tanous #include "gmock/gmock.h"
5a7d2cdddSEd Tanous 
TEST(Base64Encode,Good)6a7d2cdddSEd Tanous TEST(Base64Encode, Good)
7a7d2cdddSEd Tanous {
8a7d2cdddSEd Tanous 	int32_t encoded_len = 0;
9a7d2cdddSEd Tanous 	std::array<uint8_t, 1> data = { 'f' };
10a7d2cdddSEd Tanous 	char *encoded = base64_encode(data.data(), data.size(), &encoded_len);
11a7d2cdddSEd Tanous 	EXPECT_EQ(encoded_len, 4);
12a7d2cdddSEd Tanous 	ASSERT_EQ(std::string_view(encoded, encoded_len), "Zg==");
13a7d2cdddSEd Tanous 	free(encoded);
14a7d2cdddSEd Tanous }
15a7d2cdddSEd Tanous 
TEST(Base64Decode,Good)16a7d2cdddSEd Tanous TEST(Base64Decode, Good)
17a7d2cdddSEd Tanous {
18a7d2cdddSEd Tanous 	int32_t decoded_len = 0;
19a7d2cdddSEd Tanous 	std::string_view data{ "Zg==" };
20a7d2cdddSEd Tanous 	UINT8 *decoded = base64_decode(data.data(), data.size(), &decoded_len);
21a7d2cdddSEd Tanous 	EXPECT_EQ(decoded_len, 1);
22a7d2cdddSEd Tanous 	ASSERT_EQ(decoded[0], 'f');
23a7d2cdddSEd Tanous 	free(decoded);
24a7d2cdddSEd Tanous }
25